refactor: migrate ConfirmView to Salix
gitea/hedera-web/pipeline/pr-beta This commit looks good Details

This commit is contained in:
taro 2025-04-23 01:14:51 -03:00
parent 9c0ec3e29d
commit 6d8432f095
1 changed files with 107 additions and 37 deletions

View File

@ -10,9 +10,10 @@ import useNotify from 'src/composables/useNotify.js';
import { currency } from 'src/lib/filters.js';
import { tpvStore } from 'stores/tpv';
import { useQuasar } from 'quasar';
import { onUserId } from 'src/utils/onUserId';
const $q = useQuasar();
const jApi = inject('jApi');
const api = inject('api');
const { notify } = useNotify();
const { t } = useI18n();
const appStore = useAppStore();
@ -75,35 +76,89 @@ const paymentOptionsArray = computed(() => {
);
});
const getOrder = async () => {
const getOrder = async (clientFk) => {
try {
const { results } = await jApi.execQuery(
`CALL myOrder_getTax(#id);
SELECT o.id, o.sent, o.notes, o.companyFk,
ag.description agency, v.code method,
ad.nickname, ad.postalCode, ad.city, ad.street,
t.*, c.credit, myClient_getDebt(NULL) debt
FROM myOrder o
JOIN vn.agencyMode ag ON ag.id = o.agencyModeFk
LEFT JOIN myAddress ad ON ad.id = o.addressFk
JOIN vn.deliveryMethod v ON v.id = o.deliveryMethodFk
JOIN myClient c
JOIN (
SELECT
IFNULL(SUM(taxableBase), 0) taxableBase,
IFNULL(SUM(tax), 0) tax
FROM tmp.orderAmount
) t
WHERE o.id = #id;
DROP TEMPORARY TABLE
tmp.orderAmount,
tmp.orderTax;`,
{ id: orderId.value }
const { data: { credit: userCredit } } = await api.get(
`clients/${clientFk}`,
{
params: {
filter: {
fields: ['credit'],
}
}
}
);
const orderData = results[1]?.data[0];
const { data: orderTaxes } = await api.get(`Orders/${orderId.value}/getTaxes`);
const filter = {
where: {
clientFk,
isConfirmed: false,
source_app: 'WEB',
},
include: [
{
relation: 'address',
scope: {
fields: ['nickname', 'city', 'postalCode', 'street'],
}
},
{
relation: 'agencyMode',
scope: {
fields: ['description'],
}
},
{
relation: 'deliveryMethod',
scope: {
fields: ['code'],
}
},
],
fields: [
'id',
'landed',
'delivery_method_id',
'taxableBase',
'addressFk',
'agencyModeFk',
'companyFk',
'note',
]
};
const { data: salixOrder } = await api.get(`Orders/${orderId.value}`, {
params: {
filter: JSON.stringify(filter)
}
});
const { data: salixDebt } = await api.post(
'applications/myClient_getDebt/execute-func',
{
schema: 'hedera',
params: ['NULL'],
}
);
const orderData = {
id: salixOrder.id,
notes: salixOrder.note,
companyFk: salixOrder.companyFk,
agency: salixOrder.agencyMode.description,
method: salixOrder.deliveryMethod.code,
nickname: salixOrder.address.nickname,
postalCode: salixOrder.address.postalCode,
city: salixOrder.address.city,
street: salixOrder.address.street,
taxableBase: orderTaxes[0].taxableBase,
tax: orderTaxes[0].tax,
credit: userCredit,
debt: salixDebt,
};
const { sent, ...restOfData } = orderData;
const total = orderData.taxableBase + orderData.tax || 0;
const totalDebt = orderData.debt + total;
exceededCredit.value = totalDebt - orderData.credit;
@ -118,10 +173,10 @@ const getOrder = async () => {
}
const formattedData = {
landed: new Date(sent),
landed: new Date(salixOrder.landed),
total,
debt: orderData.debt || 0,
...restOfData
...orderData
};
order.value = formattedData;
@ -151,15 +206,21 @@ const getOrder = async () => {
const getTransferAccounts = async () => {
try {
const data = await jApi.query(`SELECT name, iban FROM mainAccountBank`);
transferAccounts.value = data;
const filter = {
include: [
{ relation: 'account', scope: { include: [ 'bankEntity' ]} } ,
],
};
const { data: mainAccountData } = await api.get('MainAccounts', {
params: { filter: JSON.stringify(filter) },
});
transferAccounts.value = mainAccountData;
} catch (error) {
console.error(error);
}
};
const fetchData = async () => {
await getOrder();
await getTransferAccounts();
};
@ -170,9 +231,15 @@ const modifyOrder = () => {
const confirmOrder = async () => {
try {
loading.value = true;
await jApi.execQuery('CALL myOrder_confirm(#id)', {
id: orderId.value
});
await api.post(
'applications/myOrder_confirm/execute-proc',
{
schema: 'hedera',
params: [
orderId.value,
],
},
);
appStore.unloadOrder();
$q.dialog({
message: t('orderConfirmed'),
@ -206,6 +273,9 @@ onBeforeMount(() => {
onMounted(async () => {
orderId.value = route.params.id || basketOrderId.value;
onUserId(getOrder);
await fetchData();
});
</script>
@ -294,12 +364,12 @@ onMounted(async () => {
</div>
<QList>
<QItem
v-for="(account, index) in transferAccounts"
v-for="(transferAccount, index) in transferAccounts"
:key="index"
>
<QItemSection>
<div>{{ account.name }}</div>
<div>{{ account.iban }}</div>
<div>{{ transferAccount.account.bankEntity.name }}</div>
<div>{{ transferAccount.account.iban }}</div>
</QItemSection>
</QItem>
</QList>