-
+
-
-
- {{ item.longName }}
-
-
-
+
+
+ {{ item?.longName ?? item.name }}
+
+
+
+
diff --git a/src/pages/Ticket/Negative/TicketLackTable.vue b/src/pages/Ticket/Negative/TicketLackTable.vue
index 4d34c8636..4cc3283ce 100644
--- a/src/pages/Ticket/Negative/TicketLackTable.vue
+++ b/src/pages/Ticket/Negative/TicketLackTable.vue
@@ -23,7 +23,7 @@ watch(
(v) => {
filterLack.value.where = v;
tableRef.value.reload(filterLack);
- }
+ },
);
const filterLack = ref({
@@ -78,8 +78,38 @@ const saveChange = async (field, { rowIndex, row }) => {
};
const entityId = computed(() => route.params.id);
const item = ref({});
-
+const rowColor = (row) => {
+ if (!row.hasToIgnore) return 'negative';
+ return 'transparent';
+};
+// const textRowColor = (row) => {
+// if (row.hasToIgnore) return 'black';
+// return 'white';
+// };
const columns = computed(() => [
+ {
+ align: 'left',
+ label: t('negative.detail.isBasket'),
+ name: 'isBasket',
+ cardVisible: true,
+ create: true,
+ component: 'checkbox',
+ attrs: ({ row }) => {
+ return {
+ 'toggle-indeterminate': true,
+ };
+ },
+ columnClass: 'shrink',
+ },
+ {
+ align: 'left',
+ label: t('negative.detail.hasSubstitution'),
+ name: 'hasSubstitution',
+ cardVisible: true,
+ create: true,
+ component: 'checkbox',
+ columnClass: 'shrink',
+ },
{
name: 'status',
align: 'left',
@@ -139,19 +169,6 @@ const columns = computed(() => [
align: 'left',
sortable: true,
-
- // columnFilter: {
- // columnField: {
- // component: 'select',
- // event: getInputEvents,
- // attrs: {
- // event: (v) => console.error(v),
- // options: editableStates.value,
- // 'option-value': 'id',
- // 'option-label': 'name',
- // // },
- // },
- // },
},
{
name: 'zoneName',
@@ -177,13 +194,7 @@ const columns = computed(() => [
type: 'number',
},
]);
-const itemLackForm = ref();
-const reload = async (data) => {
- // window.location.reload();
- console.error(data);
-};
-defineExpose({ reload });
const emit = defineEmits(['update:selection']);
const tableRef = ref(null);
@@ -291,8 +302,10 @@ function onTicketLackFetched(data) {
-
{{ row.ticketFk }}
+
+
+ {{ row.ticketFk }}
+
diff --git a/src/pages/Ticket/Negative/components/ChangeItemDialog.vue b/src/pages/Ticket/Negative/components/ChangeItemDialog.vue
index 8414e5fdc..cc3c7352c 100644
--- a/src/pages/Ticket/Negative/components/ChangeItemDialog.vue
+++ b/src/pages/Ticket/Negative/components/ChangeItemDialog.vue
@@ -3,10 +3,8 @@ import { ref } from 'vue';
import { useI18n } from 'vue-i18n';
import axios from 'axios';
import VnSelect from 'src/components/common/VnSelect.vue';
-import FetchData from 'components/FetchData.vue';
const emit = defineEmits(['update-item']);
-const editableItems = ref([]);
const { t } = useI18n();
const showChangeItemDialog = ref(false);
const newItem = ref(null);
@@ -16,31 +14,29 @@ const $props = defineProps({
default: () => [],
},
});
+
const updateItem = async () => {
try {
showChangeItemDialog.value = true;
- const rowsToUpdate = $props.selectedRows.map(({ ticketFk }) =>
- axios.post(`Tickets/state`, {
- ticketFk,
- code: newItem.value,
- })
+ const rowsToUpdate = $props.selectedRows.map(({ saleFk }) =>
+ axios.post(`Sales/${saleFk}/updateConcept`, {
+ newConcept: newItem.value,
+ }),
);
- await Promise.all(rowsToUpdate);
- emit('update-item');
+ await Promise.allSettled(rowsToUpdate);
+
+ emit('update-item', newItem.value);
} catch (err) {
+ console.error('Error updating item:', err);
return err;
}
};
- (editableItems = data)"
- auto-load
- />
+ {{ showChangeItemDialog }}
{{ t('negative.detail.modal.changeItem.title') }}
{
option-label="name"
option-value="id"
v-model="newItem"
- @update:model-value="updateItem(row)"
>
@@ -75,7 +70,9 @@ const updateItem = async () => {
}
.grid-style-transition {
- transition: transform 0.28s, background-color 0.28s;
+ transition:
+ transform 0.28s,
+ background-color 0.28s;
}
#true {
diff --git a/src/pages/Ticket/Negative/components/ChangeQuantityDialog.vue b/src/pages/Ticket/Negative/components/ChangeQuantityDialog.vue
index 5432039fc..f97c83e2e 100644
--- a/src/pages/Ticket/Negative/components/ChangeQuantityDialog.vue
+++ b/src/pages/Ticket/Negative/components/ChangeQuantityDialog.vue
@@ -15,16 +15,17 @@ const $props = defineProps({
});
const emit = defineEmits(['update-quantity']);
const updateQuantity = async () => {
- showChangeQuantityDialog.value = true;
- const rowsToUpdate = $props.selectedRows.map(({ saleFk }) =>
- axios.post(`Sales/${saleFk}/updateQuantity`, {
- quantity: +newQuantity.value,
- })
- );
-
try {
- await Promise.all(rowsToUpdate);
- emit('update-quantity');
+ showChangeQuantityDialog.value = true;
+ const rowsToUpdate = $props.selectedRows.map(({ saleFk }) =>
+ axios.post(`Sales/${saleFk}/updateQuantity`, {
+ quantity: +newQuantity.value,
+ }),
+ );
+
+ const results = await Promise.allSettled(rowsToUpdate);
+ console.log(results);
+ emit('update-quantity', newQuantity.value);
} catch (err) {
return err;
}
@@ -63,7 +64,9 @@ const updateQuantity = async () => {
}
.grid-style-transition {
- transition: transform 0.28s, background-color 0.28s;
+ transition:
+ transform 0.28s,
+ background-color 0.28s;
}
#true {
diff --git a/src/pages/Ticket/Negative/components/ChangeStateDialog.vue b/src/pages/Ticket/Negative/components/ChangeStateDialog.vue
index 51370238b..b56aa7276 100644
--- a/src/pages/Ticket/Negative/components/ChangeStateDialog.vue
+++ b/src/pages/Ticket/Negative/components/ChangeStateDialog.vue
@@ -23,10 +23,11 @@ const updateState = async () => {
axios.post(`Tickets/state`, {
ticketFk,
code: newState.value,
- })
+ }),
);
- await Promise.all(rowsToUpdate);
- emit('update-state');
+ const results = await Promise.allSettled(rowsToUpdate);
+ console.log(results);
+ emit('update-state', newState.value);
} catch (err) {
return err;
}
@@ -71,7 +72,9 @@ const updateState = async () => {
}
.grid-style-transition {
- transition: transform 0.28s, background-color 0.28s;
+ transition:
+ transform 0.28s,
+ background-color 0.28s;
}
#true {
diff --git a/src/pages/Ticket/locale/en.yml b/src/pages/Ticket/locale/en.yml
index cf0dca04c..95870ab95 100644
--- a/src/pages/Ticket/locale/en.yml
+++ b/src/pages/Ticket/locale/en.yml
@@ -238,16 +238,18 @@ negative:
isRookie: 'Is rookie'
turno: 'Turn line'
showFree: Show Free lines
+ isBasket: 'Basket'
+ hasSubstitution: 'Has substitution'
modal:
+ changeItem:
+ title: Update item reference
+ placeholder: New item
changeState:
title: Update tickets state
placeholder: New state
changeQuantity:
title: Update tickets quantity
placeholder: New quantity
- changeItem:
- title: Update tickets item
- placeholder: New item
split:
title: Are you sure you want to split selected tickets?
subTitle: Confirm split action
diff --git a/src/pages/Ticket/locale/es.yml b/src/pages/Ticket/locale/es.yml
index 493c6c6cb..cb18a4c57 100644
--- a/src/pages/Ticket/locale/es.yml
+++ b/src/pages/Ticket/locale/es.yml
@@ -239,7 +239,7 @@ negative:
totalNegative: 'Total negativos'
days: Rango de dias
buttonsUpdate:
- itemProposal: artículo
+ item: artículo
state: Estado
quantity: Cantidad
modalOrigin:
@@ -266,7 +266,12 @@ negative:
isRookie: 'Cliente nuevo'
turno: 'Linea turno'
showFree: Solo estado libre
+ isBasket: 'Cesta'
+ hasSubstitution: 'Tiene sustitución'
modal:
+ changeItem:
+ title: Actualizar referencia artículo
+ placeholder: Nuevo articulo
changeState:
title: Actualizar estado
placeholder: Nuevo estado