diff --git a/src/css/app.scss b/src/css/app.scss
index b742dae2f..e7be2ddf2 100644
--- a/src/css/app.scss
+++ b/src/css/app.scss
@@ -67,3 +67,13 @@ body.body--dark {
.q-field.required .q-field__label:after {
content: ' *';
}
+
+input[type='number'] {
+ -moz-appearance: textfield;
+}
+input::-webkit-outer-spin-button,
+input::-webkit-inner-spin-button {
+ appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+}
diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js
index 1a7a4c27e..eb257e0c9 100644
--- a/src/i18n/en/index.js
+++ b/src/i18n/en/index.js
@@ -266,6 +266,7 @@ export default {
buys: 'Buys',
notes: 'Notes',
log: 'Log',
+ create: 'Create',
},
list: {
newEntry: 'New entry',
diff --git a/src/i18n/es/index.js b/src/i18n/es/index.js
index 83de42ee0..5141fff4e 100644
--- a/src/i18n/es/index.js
+++ b/src/i18n/es/index.js
@@ -265,6 +265,7 @@ export default {
buys: 'Compras',
notes: 'Notas',
log: 'Historial',
+ create: 'Crear',
},
list: {
newEntry: 'Nueva entrada',
diff --git a/src/pages/Entry/Card/EntryBasicData.vue b/src/pages/Entry/Card/EntryBasicData.vue
index a5565fbf6..9dc59ec21 100644
--- a/src/pages/Entry/Card/EntryBasicData.vue
+++ b/src/pages/Entry/Card/EntryBasicData.vue
@@ -163,8 +163,9 @@ const currenciesOptions = ref([]);
:label="t('entry.basicData.observation')"
type="textarea"
v-model="data.observation"
+ :maxlength="45"
+ counter
fill-input
- autogrow
/>
diff --git a/src/pages/Entry/Card/EntryBuys.vue b/src/pages/Entry/Card/EntryBuys.vue
index 5eee14d29..c4427c09a 100644
--- a/src/pages/Entry/Card/EntryBuys.vue
+++ b/src/pages/Entry/Card/EntryBuys.vue
@@ -256,6 +256,33 @@ const deleteBuys = async () => {
const importBuys = () => {
router.push({ name: 'EntryBuysImport' });
};
+
+const toggleGroupingMode = async (buy, mode) => {
+ try {
+ const grouping = 1;
+ const packing = 2;
+ const groupingMode = mode === 'grouping' ? grouping : packing;
+
+ const newGroupingMode = buy.groupingMode === groupingMode ? 0 : groupingMode;
+
+ const params = {
+ groupingMode: newGroupingMode,
+ };
+
+ await axios.patch(`Buys/${buy.id}`, params);
+ buy.groupingMode = newGroupingMode;
+ } catch (err) {
+ console.error('Error toggling grouping mode');
+ }
+};
+
+const showLockIcon = (groupingMode, mode) => {
+ if (mode === 'packing') {
+ return groupingMode === 2 ? 'lock' : 'lock_open';
+ } else {
+ return groupingMode === 1 ? 'lock' : 'lock_open';
+ }
+};
@@ -309,6 +336,25 @@ const importBuys = () => {
v-model="props.row[col.field]"
v-on="tableColumnComponents[col.name].event(props)"
>
+
+
+
@@ -381,6 +427,7 @@ const importBuys = () => {
+
diff --git a/src/pages/Entry/Card/EntryCard.vue b/src/pages/Entry/Card/EntryCard.vue
index f6399cc0b..fe4d73f99 100644
--- a/src/pages/Entry/Card/EntryCard.vue
+++ b/src/pages/Entry/Card/EntryCard.vue
@@ -16,6 +16,7 @@ const stateStore = useStateStore();
diff --git a/src/pages/Entry/Card/EntryDescriptor.vue b/src/pages/Entry/Card/EntryDescriptor.vue
index b1658ccd3..28c4c0a78 100644
--- a/src/pages/Entry/Card/EntryDescriptor.vue
+++ b/src/pages/Entry/Card/EntryDescriptor.vue
@@ -111,13 +111,6 @@ const showEntryReport = () => {
{{ t('Show entry report') }}
-
-
-
- {{ t('Go to module index') }}
-
-
-
{
:label="t('entry.notes.observationType')"
v-model="row.observationTypeFk"
:options="entryObservationsOptions"
+ :disable="!!row.id"
option-label="description"
option-value="id"
hide-selected
diff --git a/src/pages/Entry/EntryCreate.vue b/src/pages/Entry/EntryCreate.vue
index d4eb8a3ef..3063845b0 100644
--- a/src/pages/Entry/EntryCreate.vue
+++ b/src/pages/Entry/EntryCreate.vue
@@ -1,7 +1,7 @@
@@ -48,12 +55,14 @@ const companiesOptions = ref([]);
@on-fetch="(data) => (companiesOptions = data)"
auto-load
/>
-
-
-
-
+
{{ formatFn(tag.value) }}
-
+
@@ -158,8 +162,9 @@ const suppliersOptions = ref([]);
@@ -167,8 +172,9 @@ const suppliersOptions = ref([]);
diff --git a/src/pages/Entry/EntryMain.vue b/src/pages/Entry/EntryMain.vue
index 8fa17a899..40f885d30 100644
--- a/src/pages/Entry/EntryMain.vue
+++ b/src/pages/Entry/EntryMain.vue
@@ -14,6 +14,7 @@ const stateStore = useStateStore();