feat: refs #8277 add isBooked parameter to EntryControl for enhanced filtering
gitea/salix-front/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Jorge Penadés 2025-03-27 14:48:09 +01:00
parent d69211acaa
commit ec328935c0
1 changed files with 15 additions and 34 deletions

View File

@ -27,6 +27,7 @@ const dataKey = 'entryControl';
const url = 'Entries/control';
const arrayData = useArrayData(dataKey);
const daysAgo = ref();
const isBooked = ref();
const dmsData = ref();
const table = useTemplateRef('table');
const companies = ref([]);
@ -203,7 +204,10 @@ const columns = computed(() => [
// },
]);
onBeforeMount(() => (daysAgo.value = arrayData.store.userParams.daysAgo || DEFAULTDAYS));
onBeforeMount(() => {
daysAgo.value = arrayData.store.userParams.daysAgo || DEFAULTDAYS;
isBooked.value = arrayData.store.userParams.isBooked || false;
});
function filterByDaysAgo(val) {
if (!val) val = DEFAULTDAYS;
@ -214,15 +218,11 @@ function filterByDaysAgo(val) {
}
async function preAccount() {
let selectedAgri;
const entries = selectedRows.value;
for (const i in entries) {
const { supplierFk, companyFk, isAgricultural } = entries[i];
const { supplierFk, companyFk } = entries[i];
const nextEntry = entries[+i + 1];
// Is It agricultural?
if (!selectedAgri && isAgricultural) selectedAgri = entries[i];
// Has It gestDoc?
if (!selectedGestDoc && entries[i].gestDocFk) selectedGestDoc = entries[i];
// Is It same supplier and company?
@ -230,9 +230,10 @@ async function preAccount() {
else if (nextEntry.supplierFk !== supplierFk || nextEntry.companyFk !== companyFk)
return notify('Entries must have the same supplier and company', 'negative');
}
// Is It agricultural?
const selectedAgri = entries.at(0);
// If It's agricultural, get the supplierRef
if (selectedAgri) {
if (selectedAgri.isAgricultural) {
const year = new Date(selectedAgri.landed).getFullYear();
supplierRef = (
await axios.get('InvoiceIns/getMaxRef', {
@ -266,38 +267,18 @@ async function uploadFile() {
reference: invoiceNumber,
};
dmsDialog.value.show();
// Actualizo el gestDocFk de la entrada?
}
async function createInvoice(isAgricultural) {
const {
supplierFk,
landed,
shipped,
companyFk,
currencyFk,
gestDocFk: docFk,
} = selectedRows.value.at(0);
const dateLanded = new Date(landed);
const lastDay = new Date(dateLanded.getFullYear(), dateLanded.getMonth() + 1, 0);
const issued = isAgricultural ? lastDay : shipped;
const siiTrascendencyInvoiceInFk = isAgricultural ? 2 : 1;
let err;
try {
// Create invoice
await axios.post('InvoiceIns', {
supplierFk,
await axios.post(`Entries/preAccount`, {
ids: selectedRows.value.map((entry) => entry.id),
supplierRef,
issued,
companyFk,
docFk,
currencyFk,
siiTrascendencyInvoiceInFk,
isAgricultural,
});
// create tax, due-day and intrastat
// update entries
} catch (e) {
throw e;
} finally {
@ -354,7 +335,7 @@ async function createInvoice(isAgricultural) {
redirect="Entry"
:order="['landed DESC']"
:right-search="false"
:user-params="{ daysAgo }"
:user-params="{ daysAgo, isBooked }"
:row-click="false"
:table="{ selection: 'multiple' }"
>