Catalog view #142
|
@ -45,6 +45,8 @@ async function fetch({
|
|||
});
|
||||
}
|
||||
|
||||
params.filter = params.filter || {};
|
||||
|
||||
if (params.filter?.where || exprFilter) {
|
||||
params.filter.where = { ...params.filter.where, ...exprFilter };
|
||||
}
|
||||
|
|
|
@ -210,7 +210,7 @@
|
|||
/>
|
||||
<div class="column">
|
||||
<div class="text-subtitle2">
|
||||
{{ selectedItem.item }}
|
||||
{{ selectedItem.name }}
|
||||
</div>
|
||||
<span
|
||||
class="text-subtitle2 text-grey-7 text-uppercase"
|
||||
|
@ -326,6 +326,7 @@ import { storeToRefs } from 'pinia';
|
|||
import { formatDateTitle, currency } from 'src/lib/filters.js';
|
||||
|
||||
import useNotify from 'src/composables/useNotify.js';
|
||||
import debounce from 'src/utils/debouncer.js';
|
||||
import { fetch } from 'src/composables/serviceUtils';
|
||||
|
||||
const jApi = inject('jApi');
|
||||
jsegarra
commented
Mantenemos jApi? Mantenemos jApi?
wbuezas
commented
Si porque queda la siguiente llamada por migrar:
No la migré todavía porque no puedo testear el guest user por los problemas de acl que estuvimos hablando. Por esto digo que ese tema es bloqueante. Si porque queda la siguiente llamada por migrar:
` const resultSet = await jApi.execQuery(
'CALL myOrder_configureForGuest(@orderId); SELECT @orderId;'
);`
No la migré todavía porque no puedo testear el guest user por los problemas de acl que estuvimos hablando. Por esto digo que ese tema es bloqueante.
|
||||
const api = inject('api');
|
||||
|
@ -627,28 +628,33 @@ const getFilters = async () => {
|
|||
await Promise.allSettled(promises);
|
||||
};
|
||||
|
||||
const getItemExprBuilder = (param, value) => {
|
||||
if (param === 'orderFk' || param === 'orderBy') return;
|
||||
else return { [param]: value };
|
||||
};
|
||||
|
||||
const getItems = async () => {
|
||||
try {
|
||||
if (!basketOrderId.value || !isSomeFilterSelected.value) return;
|
||||
loading.value = true;
|
||||
|
||||
const { data } = await api.get('Orders/catalogFilter', {
|
||||
params: {
|
||||
orderFk: basketOrderId.value,
|
||||
orderBy: JSON.stringify({
|
||||
field: selectedOrderBy.value.field,
|
||||
way: selectedOrderBy.value.way,
|
||||
isTag: selectedOrderBy.value.isTag
|
||||
}),
|
||||
filter: {
|
||||
where: {
|
||||
and: [
|
||||
{ typeFk: selectedType.value },
|
||||
{ categoryFk: selectedCategory.value }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
const params = {
|
||||
orderFk: basketOrderId.value,
|
||||
orderBy: JSON.stringify({
|
||||
field: selectedOrderBy.value.field,
|
||||
way: selectedOrderBy.value.way,
|
||||
isTag: selectedOrderBy.value.isTag
|
||||
}),
|
||||
typeFk: selectedType.value,
|
||||
categoryFk: selectedCategory.value,
|
||||
inkFk: selectedColor.value,
|
||||
producerFk: selectedProducer.value,
|
||||
originFk: selectedOrigin.value
|
||||
};
|
||||
const { data } = await fetch({
|
||||
url: 'Orders/catalogFilter',
|
||||
params,
|
||||
exprBuilder: getItemExprBuilder
|
||||
});
|
||||
|
||||
items.value = data;
|
||||
|
@ -740,35 +746,17 @@ const getItemFamilies = async () => {
|
|||
const getItemColors = async () => {
|
||||
try {
|
||||
if (!selectedCategory.value || !basketOrderId.value) return;
|
||||
const res = await jApi.execQuery(
|
||||
`CALL myOrder_getAvailable(#orderId);
|
||||
SELECT DISTINCT l.id, l.name
|
||||
FROM vn.item i
|
||||
JOIN vn.itemType t ON t.id = i.typeFk
|
||||
JOIN tmp.itemAvailable a ON a.id = i.id
|
||||
JOIN vn.inkL10n l ON l.id = i.inkFk
|
||||
WHERE (${queryFilter.value})
|
||||
ORDER BY name ASC;
|
||||
DROP TEMPORARY TABLE tmp.itemAvailable;`,
|
||||
{
|
||||
orderId: basketOrderId.value
|
||||
}
|
||||
);
|
||||
|
||||
// const { data } = await api.get('Inks', {
|
||||
// params: {
|
||||
// filter: JSON.stringify({
|
||||
// where: {
|
||||
// 't.categoryFk': selectedCategory.value
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// });
|
||||
// console.log('ink data: ', data);
|
||||
itemColors.value = res.results[1].data;
|
||||
// console.log('itemColors: ', itemColors.value);
|
||||
const { data } = await api.get('Orders/getItemsColorsAvailable', {
|
||||
params: {
|
||||
orderId: basketOrderId.value,
|
||||
whereFilter: queryFilter.value
|
||||
}
|
||||
});
|
||||
|
||||
itemColors.value = data;
|
||||
} catch (error) {
|
||||
console.error('Error getting available items:', error);
|
||||
console.error('Error getting items colors:', error);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -785,59 +773,45 @@ const onItemsFetched = async () => {
|
|||
|
||||
const getProducers = async () => {
|
||||
try {
|
||||
const res = await jApi.execQuery(
|
||||
`CALL myOrder_getAvailable(#orderId);
|
||||
SELECT DISTINCT p.id, p.name
|
||||
FROM vn.item i
|
||||
JOIN vn.itemType t ON t.id = i.typeFk
|
||||
JOIN tmp.itemAvailable a ON a.id = i.id
|
||||
JOIN vn.producer p ON p.id = i.producerFk
|
||||
WHERE (${queryFilter.value})
|
||||
ORDER BY name ASC;
|
||||
DROP TEMPORARY TABLE tmp.itemAvailable;`,
|
||||
{ orderId: basketOrderId.value }
|
||||
);
|
||||
itemProducers.value = res.results[1].data;
|
||||
const { data } = await api.get('Orders/getItemsProducersAvailable', {
|
||||
params: {
|
||||
orderId: basketOrderId.value,
|
||||
whereFilter: queryFilter.value
|
||||
}
|
||||
});
|
||||
itemProducers.value = data;
|
||||
} catch (error) {
|
||||
console.error('Error getting productors:', error);
|
||||
console.error('Error getting producers:', error);
|
||||
}
|
||||
};
|
||||
|
||||
const getOrigins = async () => {
|
||||
try {
|
||||
const res = await jApi.execQuery(
|
||||
`CALL myOrder_getAvailable(#orderId);
|
||||
SELECT DISTINCT o.id, l.name, o.code
|
||||
FROM vn.item i
|
||||
JOIN vn.itemType t ON t.id = i.typeFk
|
||||
JOIN tmp.itemAvailable a ON a.id = i.id
|
||||
JOIN vn.origin o ON o.id = i.originFk
|
||||
JOIN vn.originL10n l ON l.id = o.id
|
||||
WHERE (${queryFilter.value})
|
||||
ORDER BY name ASC;
|
||||
DROP TEMPORARY TABLE tmp.itemAvailable;`,
|
||||
{ orderId: basketOrderId.value }
|
||||
);
|
||||
itemOrigins.value = res.results[1].data;
|
||||
const { data } = await api.get('Orders/getItemsOriginsAvailable', {
|
||||
params: {
|
||||
orderId: basketOrderId.value,
|
||||
whereFilter: queryFilter.value
|
||||
}
|
||||
});
|
||||
itemOrigins.value = data;
|
||||
} catch (error) {
|
||||
console.error('Error getting productors:', error);
|
||||
console.error('Error getting origins:', error);
|
||||
}
|
||||
};
|
||||
|
||||
const getSubcategories = async () => {
|
||||
try {
|
||||
const res = await jApi.execQuery(
|
||||
`CALL myOrder_getAvailable(#orderId);
|
||||
SELECT DISTINCT i.category
|
||||
jsegarra
commented
Buscando este bloque me he encontrado una coincidencia /home/jsegarra/Projects/salix/modules/ticket/back/models/sale.js Buscando este bloque me he encontrado una coincidencia /home/jsegarra/Projects/salix/modules/ticket/back/models/sale.js
Dejo anotado que se parecen pero el archivo propuesto tiene mas lógica que no aplica aqui.
|
||||
FROM vn.item i
|
||||
JOIN vn.itemType t ON t.id = i.typeFk
|
||||
JOIN tmp.itemAvailable a ON a.id = i.id
|
||||
WHERE (${queryFilter.value})
|
||||
ORDER BY category ASC;
|
||||
DROP TEMPORARY TABLE tmp.itemAvailable;`,
|
||||
{ orderId: basketOrderId.value }
|
||||
const { data } = await api.get(
|
||||
'Orders/getItemsSubcategoriesAvailable',
|
||||
{
|
||||
params: {
|
||||
orderId: basketOrderId.value,
|
||||
whereFilter: queryFilter.value
|
||||
}
|
||||
}
|
||||
);
|
||||
const filtered = res.results[1].data.filter(item => item.category);
|
||||
|
||||
const filtered = data.filter(item => item.category);
|
||||
itemSubcategories.value = filtered.map(i => i.category);
|
||||
} catch (error) {
|
||||
console.error('Error getting subcategories:', error);
|
||||
|
@ -906,23 +880,13 @@ const getItemTags = async itemFk => {
|
|||
|
||||
const calcItem = async itemId => {
|
||||
try {
|
||||
const res = await jApi.execQuery(
|
||||
`CALL myOrder_calcCatalogFromItem(#orderId, #itemId);
|
||||
SELECT l.warehouseFk, w.name warehouse, p.grouping,
|
||||
p.price, p.priceKg, p.rate, l.available
|
||||
FROM tmp.ticketLot l
|
||||
JOIN tmp.ticketComponentPrice p ON p.warehouseFk = l.warehouseFk
|
||||
JOIN vn.warehouse w ON w.id = p.warehouseFk
|
||||
ORDER BY warehouseFk, grouping;
|
||||
DROP TEMPORARY TABLE
|
||||
tmp.ticketCalculateItem,
|
||||
tmp.ticketComponentPrice,
|
||||
tmp.ticketComponent,
|
||||
tmp.ticketLot,
|
||||
tmp.zoneGetShipped;`,
|
||||
{ orderId: basketOrderId.value, itemId }
|
||||
);
|
||||
return res.results[1].data;
|
||||
const { data } = await api.get('Orders/getCalcFromItem', {
|
||||
jsegarra
commented
Que te parece el nombre de calcCatalogFromItem ya que el procedimiento es el mismo Que te parece el nombre de calcCatalogFromItem ya que el procedimiento es el mismo
wbuezas
commented
Aplicado. Commit: Aplicado.
Commit: https://gitea.verdnatura.es/verdnatura/hedera-web/commit/43173272bd8973956bc103ad07a3ea0dad97a09b
|
||||
params: {
|
||||
orderId: basketOrderId.value,
|
||||
itemId
|
||||
}
|
||||
});
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('Error getting items:', error);
|
||||
}
|
||||
|
@ -962,10 +926,15 @@ const resetAmounts = () => {
|
|||
|
||||
const addItemToOrder = async params => {
|
||||
try {
|
||||
await jApi.execQuery(
|
||||
`CALL myOrder_addItem(#orderId, #warehouse, #item, #amount);`,
|
||||
params
|
||||
);
|
||||
await api.post('applications/myOrder_addItem/execute-proc', {
|
||||
schema: 'hedera',
|
||||
params: [
|
||||
params.orderId,
|
||||
params.warehouse,
|
||||
params.item,
|
||||
params.amount
|
||||
]
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error adding item to basket:', error);
|
||||
throw error;
|
||||
|
@ -993,7 +962,7 @@ const onConfirmClick = async params => {
|
|||
if (amountSum > 0) {
|
||||
await Promise.all(addItemPromises);
|
||||
notify(
|
||||
`${t('added')} ${amountSum} ${selectedItem.value.item}`,
|
||||
`${t('added')} ${amountSum} ${selectedItem.value.name}`,
|
||||
'positive'
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Comentario: esta la etiqeuta script despues de template? que raro
Modificado.
Commit:
a227bc34fa