-
-
-
-
- #{{ scope.opt?.id }}
- {{ scope.opt?.nickname }}
-
-
-
-
-
O
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{{ scope.opt?.id }} -
+ {{ scope.opt?.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ `${
+ !scope.opt?.isActive
+ ? t('inactive')
+ : ''
+ } `
+ }}
+ {{
+ scope.opt?.nickname
+ }}
+
+ , {{ scope.opt?.street }},
+ {{ scope.opt?.city }},
+ {{
+ scope.opt?.province?.name
+ }}
+ -
+ {{
+ scope.opt?.agencyMode
+ ?.name
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.opt?.code }} -
+ {{ scope.opt?.description }}
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
-en:
- searchInvoice: Search issued invoice
- fileDenied: Browser denied file download...
- fileAllowed: Successful download of CSV file
- youCanSearchByInvoiceReference: You can search by invoice reference
- createInvoice: Make invoice
- Create manual invoice: Create manual invoice
-es:
- searchInvoice: Buscar factura emitida
- fileDenied: El navegador denegó la descarga de archivos...
- fileAllowed: Descarga exitosa de archivo CSV
- youCanSearchByInvoiceReference: Puedes buscar por referencia de la factura
- createInvoice: Crear factura
- Create manual invoice: Crear factura manual
+ en:
+ invoiceId: Invoice ID
+ youCanSearchByInvoiceReference: You can search by invoice reference
+ createManualInvoice: Create Manual Invoice
+ inactive: (Inactive)
+
+ es:
+ invoiceId: ID de factura
+ youCanSearchByInvoiceReference: Puedes buscar por referencia de la factura
+ createManualInvoice: Crear factura manual
+ inactive: (Inactivo)
diff --git a/src/pages/InvoiceOut/locale/en.yml b/src/pages/InvoiceOut/locale/en.yml
index 5ad92ed09..8cefe8bdc 100644
--- a/src/pages/InvoiceOut/locale/en.yml
+++ b/src/pages/InvoiceOut/locale/en.yml
@@ -2,6 +2,7 @@ invoiceOutModule:
customer: Client
amount: Amount
company: Company
+ address: Address
invoiceOutList:
tableVisibleColumns:
id: ID
@@ -15,11 +16,11 @@ invoiceOutList:
DownloadPdf: Download PDF
InvoiceOutSummary: Summary
negativeBases:
- country: Country
- clientId: Client ID
- base: Base
- ticketId: Ticket
- active: Active
- hasToInvoice: Has to invoice
- verifiedData: Verified data
- commercial: Commercial
\ No newline at end of file
+ country: Country
+ clientId: Client ID
+ base: Base
+ ticketId: Ticket
+ active: Active
+ hasToInvoice: Has to invoice
+ verifiedData: Verified data
+ commercial: Commercial
diff --git a/src/pages/InvoiceOut/locale/es.yml b/src/pages/InvoiceOut/locale/es.yml
index 192f5b26f..106168a5d 100644
--- a/src/pages/InvoiceOut/locale/es.yml
+++ b/src/pages/InvoiceOut/locale/es.yml
@@ -4,13 +4,14 @@ invoiceOutModule:
customer: Cliente
amount: Importe
company: Empresa
+ address: Consignatario
invoiceOutList:
tableVisibleColumns:
id: ID
ref: Referencia
issued: Fecha emisión
created: F. creación
- dueDate: F. máxima
+ dueDate: Fecha vencimiento
invoiceOutSerial: Serial
ticket: Ticket
taxArea: Area
diff --git a/src/pages/Item/Card/ItemBotanical.vue b/src/pages/Item/Card/ItemBotanical.vue
index c4b561772..57774f75e 100644
--- a/src/pages/Item/Card/ItemBotanical.vue
+++ b/src/pages/Item/Card/ItemBotanical.vue
@@ -1,5 +1,5 @@
@@ -98,7 +112,7 @@ watch(
/>
-
+
diff --git a/src/pages/Order/Card/OrderCatalogFilter.vue b/src/pages/Order/Card/OrderCatalogFilter.vue
index 6202a6f90..1dd569fb5 100644
--- a/src/pages/Order/Card/OrderCatalogFilter.vue
+++ b/src/pages/Order/Card/OrderCatalogFilter.vue
@@ -178,6 +178,7 @@ function addOrder(value, field, params) {
? resetCategory(params, searchFn)
: removeTagGroupParam(params, searchFn, valIndex)
"
+ data-cy="catalogFilterCustomTag"
>
{{
@@ -211,6 +212,7 @@ function addOrder(value, field, params) {
:name="category.icon"
class="category-icon"
@click="selectCategory(params, category, searchFn)"
+ data-cy="catalogFilterCategory"
>
{{ t(category.name) }}
@@ -234,6 +236,7 @@ function addOrder(value, field, params) {
sort-by="name ASC"
:disable="!params.categoryFk"
@update:model-value="searchFn()"
+ data-cy="catalogFilterType"
>
@@ -285,6 +288,7 @@ function addOrder(value, field, params) {
:is-clearable="false"
v-model="searchByTag"
@keyup.enter="(val) => onSearchByTag(val, params)"
+ data-cy="catalogFilterValueInput"
>
@@ -297,6 +301,7 @@ function addOrder(value, field, params) {
color="primary"
size="md"
dense
+ data-cy="catalogFilterValueDialogBtn"
/>
-import toCurrency from '../../../filters/toCurrency';
-import { ref } from 'vue';
+import toCurrency from 'src/filters/toCurrency';
+import { inject, ref } from 'vue';
import { useI18n } from 'vue-i18n';
import axios from 'axios';
import { useRoute } from 'vue-router';
import useNotify from 'composables/useNotify';
import { useArrayData } from 'composables/useArrayData';
+import VnInputNumber from 'src/components/common/VnInputNumber.vue';
const { t } = useI18n();
const { notify } = useNotify();
const emit = defineEmits(['added']);
const route = useRoute();
const props = defineProps({
- prices: {
+ item: {
type: Array,
required: true,
},
});
-
-const fields = ref((props.prices || []).map((item) => ({ ...item, quantity: 0 })));
+const onItemSaved = inject('onItemSaved');
+const prices = ref((props.item.prices || []).map((item) => ({ ...item, quantity: 0 })));
const descriptorData = useArrayData('orderData');
const isLoading = ref(false);
const addToOrder = async () => {
if (isLoading.value) return;
isLoading.value = true;
- const items = (fields.value || []).filter((item) => Number(item.quantity) > 0);
+ const items = (prices.value || []).filter((item) => Number(item.quantity) > 0);
await axios.post('/OrderRows/addToOrder', {
items,
orderFk: Number(route.params.id),
});
notify(t('globals.dataSaved'), 'positive');
- emit('added');
- descriptorData.fetch({});
+ await descriptorData.fetch({});
+ onItemSaved({ ...props, items, saved: true });
+ emit('added', items);
isLoading.value = false;
};
const canAddToOrder = () => {
- return (fields.value || []).some((item) => Number(item.quantity) > 0);
+ let canAddToOrder = (prices.value || []).some((price) => Number(price.quantity) > 0);
+ if (canAddToOrder) {
+ const excedQuantity = prices.value.reduce(
+ (acc, { quantity }) => acc + quantity,
+ 0
+ );
+ if (excedQuantity > props.item.available) {
+ canAddToOrder = false;
+ }
+ }
+ return canAddToOrder;
};
@@ -44,30 +56,33 @@ const canAddToOrder = () => {
-
+
- {{ item.warehouse }}
+ {{ price.warehouse }}
|
{
- item.quantity += item.grouping;
+ price.quantity -= price.grouping;
+ }
+ "
+ @click.exact="
+ () => {
+ price.quantity += price.grouping;
}
"
>
- {{ item.grouping }}
+ {{ price.grouping }}
- x {{ toCurrency(item.price) }}
+ x {{ toCurrency(price.price) }}
|
-
|
diff --git a/src/pages/Order/Card/OrderCreateDialog.vue b/src/pages/Order/Card/OrderCreateDialog.vue
index 3f6cc914b..c78b04d7f 100644
--- a/src/pages/Order/Card/OrderCreateDialog.vue
+++ b/src/pages/Order/Card/OrderCreateDialog.vue
@@ -1,6 +1,6 @@
(bankEntitiesOptions = data)"
+ @on-fetch="
+ (data) => {
+ (bankEntitiesOptions = data), (filteredBankEntitiesOptions = data);
+ }
+ "
auto-load
/>
{
findBankFk(value, row)"
:required="true"
>
@@ -109,7 +134,9 @@ const setWireTransfer = async () => {
bankEntityFilter(val, update)"
option-label="bic"
option-value="id"
hide-selected
diff --git a/src/pages/Supplier/Card/SupplierConsumption.vue b/src/pages/Supplier/Card/SupplierConsumption.vue
index fe1cec260..6e2ea14bf 100644
--- a/src/pages/Supplier/Card/SupplierConsumption.vue
+++ b/src/pages/Supplier/Card/SupplierConsumption.vue
@@ -8,7 +8,7 @@ import SendEmailDialog from 'components/common/SendEmailDialog.vue';
import SupplierConsumptionFilter from './SupplierConsumptionFilter.vue';
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
-import { toDate } from 'src/filters';
+import { dateRange, toDate } from 'src/filters';
import { dashIfEmpty } from 'src/filters';
import { usePrintService } from 'composables/usePrintService';
import useNotify from 'src/composables/useNotify.js';
@@ -35,14 +35,17 @@ const store = arrayData.store;
onUnmounted(() => state.unset('SupplierConsumption'));
const dateRanges = computed(() => {
- const { from, to } = arrayData.store?.userParams || {};
+ let { from, to } = arrayData.store?.userParams || {};
return { from, to };
});
-const reportParams = computed(() => ({
- recipientId: Number(route.params.id),
- ...dateRanges.value,
-}));
+const reportParams = computed(() => {
+ return {
+ recipientId: Number(route.params.id),
+ to: dateRange(dateRanges.value.to)[1],
+ from: dateRange(dateRanges.value.from)[1],
+ };
+});
async function getSupplierConsumptionData() {
await arrayData.fetch({ append: false });
diff --git a/src/pages/Supplier/Card/SupplierFiscalData.vue b/src/pages/Supplier/Card/SupplierFiscalData.vue
index 547842960..1a79be8bc 100644
--- a/src/pages/Supplier/Card/SupplierFiscalData.vue
+++ b/src/pages/Supplier/Card/SupplierFiscalData.vue
@@ -9,6 +9,7 @@ import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue';
import VnSelect from 'src/components/common/VnSelect.vue';
import VnLocation from 'src/components/common/VnLocation.vue';
+import VnAccountNumber from 'src/components/common/VnAccountNumber.vue';
const route = useRoute();
const { t } = useI18n();
@@ -100,10 +101,13 @@ function handleLocation(data, location) {
/>
-
[
-en:
- Search suppliers: Search suppliers
-es:
+ es:
Search suppliers: Buscar proveedores
+ Create Supplier: Crear proveedor
diff --git a/src/pages/Ticket/Card/BasicData/TicketBasicData.vue b/src/pages/Ticket/Card/BasicData/TicketBasicData.vue
index ab96a6e75..e1f4e1bb1 100644
--- a/src/pages/Ticket/Card/BasicData/TicketBasicData.vue
+++ b/src/pages/Ticket/Card/BasicData/TicketBasicData.vue
@@ -1,5 +1,5 @@
-
+
@@ -72,6 +74,7 @@ defineExpose({ transferSales });
color="primary"
class="full-width q-my-lg"
@click="transferSales()"
+ data-cy="ticketTransferNewTicketBtn"
/>
diff --git a/src/pages/Ticket/TicketAdvance.vue b/src/pages/Ticket/TicketAdvance.vue
index 8de602b37..71e3926ac 100644
--- a/src/pages/Ticket/TicketAdvance.vue
+++ b/src/pages/Ticket/TicketAdvance.vue
@@ -215,7 +215,7 @@ const requestComponentUpdate = async (ticket, isWithoutNegatives) => {
if (!newLanded) {
notify(t('advanceTickets.noDeliveryZone'), 'negative');
- return;
+ throw new Error(t('advanceTickets.noDeliveryZone'));
}
ticket.landed = newLanded.landed;
@@ -299,10 +299,10 @@ const splitTickets = async () => {
const { query, params } = await requestComponentUpdate(ticket, true);
await axios.post(query, params);
progressAdd(ticket.futureId);
- } catch (error) {
+ } catch (e) {
splitErrors.value.push({
id: ticket.futureId,
- reason: error.response?.data?.error?.message,
+ reason: e.message || e.response?.data?.error?.message,
});
progressAdd(ticket.futureId);
}
diff --git a/src/pages/Ticket/TicketList.vue b/src/pages/Ticket/TicketList.vue
index 6f6c556ca..eb03a4927 100644
--- a/src/pages/Ticket/TicketList.vue
+++ b/src/pages/Ticket/TicketList.vue
@@ -1,6 +1,6 @@
+
+
+ (disabilityGradesOptions = data)"
+ auto-load
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+es:
+ familySituation: Situación familiar
+ disabilityGrades: Discapacidad
+ geographicMobilityDate: Movilidad geografica
+ childPension: Pensión hijos
+ spousePension: Pensión cónyuge
+ isDependend: Ayuda / Movilidad reducida
+ spouseNif: NIF cónyuge
+ hasHousingPaymentBefore: Pagos vivienda anterior 2011
+ hasHousingPaymentAfter: Pagos vivienda posterior 2011
+ hasExtendedWorking: Prolongación actividad laboral
+ isDescendant: Descen/Ascen
+ disabilityGradeFk: Discapacidad
+ birthed: Año nacimiento
+ adoptionYear: Año adopción
+ isJointCustody: Computo por entero
+ Relatives: Relacionados
+en:
+ familySituation: Family Situation
+ disabilityGrades: Disability Grades
+ geographicMobilityDate: Geographic Mobility Date
+ childPension: Child Pension
+ spousePension: Spouse Pension
+ isDependend: Dependent Suport / Reduced Mobility
+ spouseNif: Spouse NIF (Tax ID)
+ hasHousingPaymentBefore: Housing Payments Before 2011
+ hasHousingPaymentAfter: Housing Payments After 2011
+ hasExtendedWorking: Extended Work Activity
+ isDescendant: Descendant/Ascendant
+ disabilityGradeFk: Disability Grade
+ birthed: Birth Year
+ adoptionYear: Adoption Year
+ isJointCustody: Joint custody
+ Relatives: Relatives
+
diff --git a/src/pages/Zone/Card/ZoneEventExclusionForm.vue b/src/pages/Zone/Card/ZoneEventExclusionForm.vue
index 4b54f6743..0882036c1 100644
--- a/src/pages/Zone/Card/ZoneEventExclusionForm.vue
+++ b/src/pages/Zone/Card/ZoneEventExclusionForm.vue
@@ -1,5 +1,5 @@