WIP
This commit is contained in:
parent
47a5abf1e3
commit
509a7870a9
|
@ -37,7 +37,7 @@ const { t } = useI18n();
|
|||
>
|
||||
<div class="column" style="margin-bottom: auto">
|
||||
<div class="text-subtitle2 ellipsis-2-lines">
|
||||
{{ item.item }}
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<div
|
||||
class="row justify-between text-uppercase text-subtitle1 text-grey-7"
|
||||
|
@ -76,7 +76,7 @@ const { t } = useI18n();
|
|||
</div>
|
||||
<div class="row justify-between items-cente q-gutter-x-xs">
|
||||
<QBadge
|
||||
:label="`x${item.grouping}`"
|
||||
:label="`x${item?.prices[0]?.grouping}`"
|
||||
color="grey-4"
|
||||
class="col-2 justify-end text-body2"
|
||||
>
|
||||
|
|
|
@ -92,7 +92,7 @@
|
|||
@click="selectedCategory = cat.id"
|
||||
data-cy="catalogCategoryButton"
|
||||
>
|
||||
<img :src="`statics/category/${cat.code}.svg`" />
|
||||
<img :src="`statics/category/${cat.icon}.svg`" />
|
||||
<QTooltip>{{ cat.name }}</QTooltip>
|
||||
</QBtn>
|
||||
</div>
|
||||
|
@ -577,38 +577,26 @@ const getItems = async () => {
|
|||
if (!basketOrderId.value || !isSomeFilterSelected.value) return;
|
||||
loading.value = true;
|
||||
|
||||
const res = await jApi.execQuery(
|
||||
`DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
||||
CREATE TEMPORARY TABLE tmp.item
|
||||
(INDEX (itemFk))
|
||||
ENGINE = MEMORY
|
||||
SELECT i.id itemFk
|
||||
FROM vn.item i
|
||||
JOIN vn.itemType t ON t.id = i.typeFk
|
||||
WHERE (${queryFilter.value});
|
||||
CALL myOrder_calcCatalogFull(#orderId);
|
||||
SELECT i.id, i.longName item, i.subName,
|
||||
i.tag5, i.value5, i.tag6, i.value6,
|
||||
i.tag7, i.value7, i.tag8, i.value8,
|
||||
i.relevancy, i.size, i.category, b.minQuantity,
|
||||
k.name ink, p.name producer, o.name origin,
|
||||
b.available, b.price, b.grouping,
|
||||
i.image, im.updated
|
||||
FROM tmp.ticketCalculateItem b
|
||||
JOIN vn.item i ON i.id = b.itemFk
|
||||
LEFT JOIN vn.ink k ON k.id = i.inkFk
|
||||
LEFT JOIN vn.producer p ON p.id = i.producerFk
|
||||
LEFT JOIN vn.origin o ON o.id = i.originFk
|
||||
LEFT JOIN image im ON im.collectionFk = 'catalog'
|
||||
AND im.name = i.image
|
||||
WHERE b.available > 0
|
||||
ORDER BY ${selectedOrderBy.value}
|
||||
LIMIT 5000;
|
||||
DROP TEMPORARY TABLE tmp.item;
|
||||
CALL vn.ticketCalculatePurge();`,
|
||||
{ orderId: basketOrderId.value }
|
||||
);
|
||||
items.value = res.results[3].data;
|
||||
const { data } = await api.get('Orders/catalogFilter', {
|
||||
params: {
|
||||
orderFk: basketOrderId.value,
|
||||
orderBy: JSON.stringify({
|
||||
field: 'relevancy DESC, name',
|
||||
way: 'ASC',
|
||||
isTag: false
|
||||
}),
|
||||
filter: {
|
||||
where: {
|
||||
and: [
|
||||
{ typeFk: selectedType.value },
|
||||
{ categoryFk: selectedCategory.value }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
items.value = data;
|
||||
await onItemsFetched();
|
||||
loading.value = false;
|
||||
} catch (error) {
|
||||
|
@ -623,7 +611,6 @@ const getOrder = async () => {
|
|||
try {
|
||||
if (!basketOrderId.value) return;
|
||||
|
||||
order.value = data;
|
||||
const filter = {
|
||||
include: [
|
||||
{
|
||||
|
@ -645,6 +632,8 @@ const getOrder = async () => {
|
|||
orderFk: basketOrderId.value
|
||||
}
|
||||
});
|
||||
|
||||
order.value = data;
|
||||
} catch (error) {
|
||||
console.error('Error getting order:', error);
|
||||
}
|
||||
|
@ -652,13 +641,25 @@ const getOrder = async () => {
|
|||
|
||||
const getCategories = async () => {
|
||||
try {
|
||||
categories.value = await jApi.query(
|
||||
`SELECT c.id, l.name, c.color, c.code
|
||||
FROM vn.itemCategory c
|
||||
JOIN vn.itemCategoryL10n l ON l.id = c.id
|
||||
WHERE c.display
|
||||
ORDER BY display`
|
||||
);
|
||||
const { data } = await api.get('itemCategories', {
|
||||
params: {
|
||||
filter: JSON.stringify({
|
||||
order: 'display ASC',
|
||||
include: {
|
||||
relation: 'itemTypes',
|
||||
scope: {
|
||||
fields: ['code', 'name']
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
categories.value = data.map(category => {
|
||||
return {
|
||||
...category,
|
||||
icon: category.icon.split('-')[1]
|
||||
};
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error getting categories:', error);
|
||||
}
|
||||
|
@ -667,23 +668,15 @@ const getCategories = async () => {
|
|||
const getItemFamilies = async () => {
|
||||
try {
|
||||
if (!selectedCategory.value || !basketOrderId.value) return;
|
||||
const res = await jApi.execQuery(
|
||||
`CALL myOrder_getAvailable(#orderId);
|
||||
SELECT DISTINCT t.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.itemTypeL10n l ON l.id = t.id
|
||||
WHERE t.order >= 0
|
||||
AND t.categoryFk = #category
|
||||
ORDER BY t.order, l.name ASC;
|
||||
DROP TEMPORARY TABLE tmp.itemAvailable`,
|
||||
|
||||
const { data } = await api.get(
|
||||
`Orders/${basketOrderId.value}/getItemTypeAvailable`,
|
||||
{
|
||||
category: selectedCategory.value,
|
||||
orderId: basketOrderId.value
|
||||
params: { itemCategoryId: selectedCategory.value }
|
||||
}
|
||||
);
|
||||
itemFamilies.value = res.results[1].data;
|
||||
|
||||
itemFamilies.value = data;
|
||||
} catch (error) {
|
||||
console.error('Error getting available items:', error);
|
||||
}
|
||||
|
@ -706,7 +699,19 @@ const getItemColors = async () => {
|
|||
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);
|
||||
} catch (error) {
|
||||
console.error('Error getting available items:', error);
|
||||
}
|
||||
|
@ -815,19 +820,30 @@ const onCategoryChange = () => {
|
|||
|
||||
const getItemTags = async itemFk => {
|
||||
try {
|
||||
const tags = await jApi.query(
|
||||
`SELECT l.name, it.value
|
||||
FROM vn.itemTag it
|
||||
JOIN vn.tag t ON t.id = it.tagFk
|
||||
JOIN vn.tagL10n l ON l.id = t.id
|
||||
WHERE it.itemFk = #itemFk
|
||||
AND priority >= 0
|
||||
ORDER BY it.priority`,
|
||||
{
|
||||
itemFk
|
||||
const { data } = await api.get('ItemTags', {
|
||||
params: {
|
||||
filter: JSON.stringify({
|
||||
where: {
|
||||
itemFk
|
||||
},
|
||||
include: [
|
||||
{
|
||||
relation: 'tag',
|
||||
scope: {
|
||||
fields: ['name']
|
||||
}
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
);
|
||||
return tags;
|
||||
});
|
||||
|
||||
return data.map(tag => {
|
||||
return {
|
||||
name: tag?.tag?.name,
|
||||
value: tag.value
|
||||
};
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error getting available items:', error);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue