diff --git a/CHANGELOG.md b/CHANGELOG.md
index e110e4cd6..6908d764a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,167 @@
+# Version 24.52 - 2024-01-07
+
+### Added 🆕
+
+- chore: refs #8197 remove console log by:alexm
+- chore: refs #8197 replace name by:alexm
+- chore: refs #8197 unnecessary file by:alexm
+- feat: #8110 apply mixin in quasar components by:Javier Segarra
+- feat(Account & AccountRole): refs #8197 add VnCardMain by:alexm
+- feat: addDptoLink by:Jtubau
+- feat: added restore ticket function in ticket descriptor menu by:Jon
+- feat: add support service wip by:jorgep
+- feat: focus menu searchbar by:jorgep
+- feat: make additional data object by:jorgep
+- feat: message to grant access by:jorgep
+- feat: refs #6583 add default param by:jorgep
+- feat: refs #6583 add destination opt filter by:jorgep
+- feat: refs #6583 add icon by:jorgep
+- feat: refs #6583 add locale by:jorgep
+- feat: refs #7072 added test to computed fn total by:Jtubau
+- feat: refs #7235 update invoice out global form to fetch config based on serial type by:jgallego
+- feat: refs #7301 add exclude inventory supplier from list by:pablone
+- feat: refs #7301 enhance VnDateBadge styling and improve ItemLastEntries component by:pablone
+- feat: refs #7882 Added distribution point by:guillermo
+- feat: refs #7882 Added longitude & latitude by:guillermo
+- feat: refs #7936 add autocomplete on tab fn by:jorgep
+- feat: refs #7936 add company filter by:jorgep
+- feat: refs #7936 add currency check before fetching by:jorgep
+- feat: refs #7936 add dueDated field by:jorgep
+- feat: refs #7936 add number validation to VnInputNumber & new daysAgo filter in InvoiceInFilter by:jorgep
+- feat: refs #7936 add optionCaption by:jorgep
+- feat: refs #7936 add row click navigation to InvoiceInSerial by:jorgep
+- feat: refs #7936 add unit tests by:jorgep
+- feat: refs #7936 add useAccountShortToStandard composable by:jorgep
+- feat: refs #7936 calculate exchange & update taxable base by:jorgep
+- feat: refs #7936 enhance downloadFile function to support opening in a new tab by:jorgep
+- feat: refs #7936 enhance getTotal fn & add unit tests by:jorgep
+- feat: refs #7936 enhance vn-select by:jorgep
+- feat: refs #7936 improve optionLabel logic in InvoiceInVat component for better handling of numeric values by:jorgep
+- feat: refs #7936 limit decimal places by:jorgep
+- feat: refs #7936 make fields required by:jorgep
+- feat: refs #7936 show country code & isVies fields by:jorgep
+- feat: refs #7936 show id & value by:jorgep
+- feat: refs #7936 simplify optionLabel wip by:jorgep
+- feat: refs #7936 update 'isVies' label to use global translation key by:jorgep
+- feat: refs #7936 update option labels in InvoiceIn components for better clarity by:jorgep
+- feat: refs #7936 use default invoice data by:jorgep
+- feat: refs #8001 change request by:robert
+- feat: refs #8001 ticketExpeditionGrafana by:robert
+- feat: refs #8194 created VnSelectWorker component and use it in Lilium by:Jon
+- feat: refs #8197 better leftMenu and VnCardMain improvements by:alexm
+- feat: refs #8197 default leftMenu by:alexm
+- feat: refs #8197 default sectionName by:alexm
+- feat: refs #8197 keepData in VnSection by:alexm
+- feat: refs #8197 vnTableFilter by:alexm
+- feat: refs #8197 working rightMenu by:alexm
+- feat: remove re-fetch when add element by:Javier Segarra
+- feat: remove search after category by:Javier Segarra
+- feat: requested changes in item module by:Jon
+- feat: update quantity by:Javier Segarra
+- feat(VnPaginate): refs #8197 hold data when change to Card by:alexm
+
+### Changed 📦
+
+- perf: #6896 REMOVE COMMENTS by:Javier Segarra
+- perf: qFormMixin by:Javier Segarra
+- perf: qFormMixin improvement by:Javier Segarra
+- perf: refs #8194 select worker component by:Jon
+- perf: refs #8197 perf by:alexm
+- perf: remove comments by:Javier Segarra
+- perf: remove unused variables (origin/warmfix_noUsedVars) by:Javier Segarra
+- refactor: added again search emit by:Jon
+- refactor: add useCau composable by:jorgep
+- refactor: deleted log by:Jon
+- refactor: deleted onUnmounted code by:Jon
+- refactor: deleted useless hidden tag by:Jon
+- refactor: deleted warnings and corrected itemTag by:Jon
+- refactor: drop logic by:jorgep
+- refactor: ignore params when searching by id on searchbar (origin/VnSearchbar-SearchRemoveParams) by:Jon
+- refactor: log error by:Jon
+- refactor: refs #7936 locale by:jorgep
+- refactor: refs #7936 simplify getTotal fn by:jorgep
+- refactor: refs #7936 update label capitalization and replace invoice type options by:jorgep
+- refactor: refs #8194 deleted unnecessary label by:Jon
+- refactor: refs #8194 modified select worker template by:Jon
+- refactor: refs #8194 modified select worker to allow no one filter from monitor ticket by:Jon
+- refactor: refs #8194 moved translation to the correct place by:Jon
+- refactor: refs #8194 requested changes by:Jon
+- refactor: refs #8194 structure changes in component and related files by:Jon
+- refactor: refs #8197 adapt AccountAcls to VnCardMain by:alexm
+- refactor: refs #8197 adapt AccountAlias by:alexm
+- refactor: refs #8197 adapt Ticket to VnCardMain by:alexm
+- refactor: refs #8197 backward compatible (8197-VnCardMain_backwardCompatibility) by:alexm
+- refactor: refs #8197 rename VnSectionMain to VnModule and VnCardMain to VnSection by:alexm
+- refactor: refs #8288 changed invoice out spanish translation by:provira
+- refactor: use locale keys by:jorgep
+- refactor: use teleport to avoid qdrawer overlapping by:Jon
+- refactor: use VnSelectWorker by:Jon
+
+### Fixed 🛠️
+
+- fix: account by:carlossa
+- fix: account create by:carlossa
+- fix: accountList create by:carlossa
+- fix(AccountList): use $refs by:alexm
+- fix: add data-key by:alexm
+- fix: addLocales by:Jtubau
+- fix: dated field by:Jon
+- fix: e2e by:jorgep
+- fix: fix department filter by:carlossa
+- fix: fixed translations by:Javier Segarra
+- fix: fixed translations by:provira
+- fix: get total from api by:Javier Segarra
+- fix: handle non-object options by:jorgep
+- fix: monitorPayMethodFilter by:carlossa
+- fix: orderBy priority by:Javier Segarra
+- fix: prevent null by:jorgep
+- fix: redirection vnTable VnTableFilter by:alexm
+- fix: refs #6389 fix filter trad by:carlossa
+- fix: refs #6389 fix front, filters, itp by:carlossa
+- fix: refs #6389 front add packing filter by:carlossa
+- fix: refs #6389 front by:carlossa
+- fix: refs #6389 front filters by:carlossa
+- fix: refs #6389 ipt by:carlossa
+- fix: refs #6389 packing by:carlossa
+- fix: refs #6583 update checkbox for filtering by destination in TicketAdvanceFilter by:jorgep
+- fix: refs #7031 add test e2e by:carlossa
+- fix: refs #7031 fix zoneTest by:carlossa
+- fix: refs #7301 unnecessary console logs from ItemLastEntries.vue by:pablone
+- fix: refs #7936 changes by:jorgep
+- fix: refs #7936 decimal places & locale by:jorgep
+- fix: refs #7936 descriptor & dueday by:jorgep
+- fix: refs #7936 exclude disabled els on tab by:jorgep
+- fix: refs #7936 format tax calculation to two decimal places by:jorgep
+- fix: refs #7936 improve error handling by:jorgep
+- fix: refs #7936 redirection by:jorgep
+- fix: refs #7936 rollback by:jorgep
+- fix: refs #7936 serial by:jorgep
+- fix: refs #7936 tabulation wip by:jorgep
+- fix: refs #7936 test by:jorgep
+- fix: refs #8114 clean by:carlossa
+- fix: refs #8114 fix agencyList by:carlossa
+- fix: refs #8114 fix lifeCycle hooks by:carlossa
+- fix: refs #8114 fix pr by:carlossa
+- fix: refs #8114 fix removeAddress by:carlossa
+- fix: refs #8114 orderList by:carlossa
+- fix: refs #8114 remove logs by:carlossa
+- fix: refs #8197 mapKey (origin/8197-perf_vnTableInside, 8197-perf_vnTableInside) by:alexm
+- fix: refs #8197 redirection (8197-perf_redirection) by:alexm
+- fix: refs #8197 staticParams and redirect by:alexm
+- fix: refs #8197 vnPaginate onFetch emit by:alexm
+- fix: refs #8197 vnPaginate when change :id by:alexm
+- fix: refs #8197 vnTableFilter in vnTable by:alexm
+- fix: refs #8315 ticketBoxing test by:alexm
+- fix: remove url by:carlossa
+- fix: rollback by:jorgep
+- fix: test by:jorgep
+- fix(VnDmsList): refs #8197 add mapKey by:alexm
+- revert: refs #8197 arrayData changes by:alexm
+- test: refs #8197 fix e2e by:alexm
+- test: refs #8315 fix claimDevelopment fixtures by:alexm
+- test: refs #8315 fix clientList by:alexm
+- test: refs #8315 fix VnSelect in e2e by:alexm
+
# Version 24.50 - 2024-12-10
### Added 🆕
diff --git a/package.json b/package.json
index b5e62af11..c638b6c32 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "salix-front",
- "version": "25.02.0",
+ "version": "25.04.0",
"description": "Salix frontend",
"productName": "Salix",
"author": "Verdnatura",
diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue
index 7886d0567..07992f616 100644
--- a/src/components/VnTable/VnTable.vue
+++ b/src/components/VnTable/VnTable.vue
@@ -59,8 +59,8 @@ const $props = defineProps({
default: true,
},
bottom: {
- type: Object,
- default: null,
+ type: Boolean,
+ default: false,
},
cardClass: {
type: String,
@@ -314,7 +314,7 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) {
show-if-above
>
-
+
-
-
-
- createAsDialog
- ? (showForm = !showForm)
- : handleOnDataSaved(create)
- "
- class="cursor-pointer fill-icon"
- color="primary"
- icon="add_circle"
- size="md"
- round
- flat
- shortcut="+"
- :disabled="!disabledAttr"
- />
-
- {{ createForm.title }}
-
-
-
+
+
+ createAsDialog
+ ? (showForm = !showForm)
+ : handleOnDataSaved(create)
+ "
+ class="cursor-pointer fill-icon"
+ color="primary"
+ icon="add_circle"
+ size="md"
+ round
+ flat
+ shortcut="+"
+ :disabled="!disabledAttr"
+ />
+
+ {{ createForm.title }}
+
+
diff --git a/src/components/common/VnBtnSelect.vue b/src/components/common/VnBtnSelect.vue
index b0616a6b2..3d96a55a6 100644
--- a/src/components/common/VnBtnSelect.vue
+++ b/src/components/common/VnBtnSelect.vue
@@ -14,6 +14,7 @@ defineProps({
hide-dropdown-icon
focus-on-mount
@update:model-value="promise"
+ data-cy="vnBtnSelect_select"
/>
diff --git a/src/components/common/VnDateBadge.vue b/src/components/common/VnDateBadge.vue
index fd6c9e8a4..83d39937a 100644
--- a/src/components/common/VnDateBadge.vue
+++ b/src/components/common/VnDateBadge.vue
@@ -11,9 +11,9 @@ function getBadgeAttrs(date) {
let timeDiff = today - timeTicket;
- if (timeDiff == 0) return { color: 'warning', 'text-color': 'black' };
- if (timeDiff < 0) return { color: 'success', 'text-color': 'black' };
- return { color: 'transparent', 'text-color': 'white' };
+ if (timeDiff == 0) return { color: 'warning', class: 'black-text-color' };
+ if (timeDiff < 0) return { color: 'success', class: 'black-text-color' };
+ return { color: 'transparent', class: 'normal-text-color' };
}
function formatShippedDate(date) {
@@ -29,3 +29,11 @@ function formatShippedDate(date) {
{{ formatShippedDate(date) }}
+
diff --git a/src/components/common/VnDmsList.vue b/src/components/common/VnDmsList.vue
index 52dd6ef79..ed3cadc6b 100644
--- a/src/components/common/VnDmsList.vue
+++ b/src/components/common/VnDmsList.vue
@@ -297,7 +297,7 @@ defineExpose({
ref="dmsRef"
:data-key="$props.model"
:url="$props.model"
- :filter="dmsFilter"
+ :user-filter="dmsFilter"
:order="['dmsFk DESC']"
:auto-load="true"
@on-fetch="setData"
diff --git a/src/components/common/VnModule.vue b/src/components/common/VnModule.vue
index 505b3a8b5..038ee1d60 100644
--- a/src/components/common/VnModule.vue
+++ b/src/components/common/VnModule.vue
@@ -20,16 +20,15 @@ const hasContent = ref();
let observer;
onMounted(() => {
- if (teleportRef.value) {
- const checkContent = () => {
- hasContent.value = teleportRef.value.innerHTML.trim() !== '';
- };
+ if (!teleportRef.value) return;
+ const checkContent = () => {
+ hasContent.value = teleportRef.value?.innerHTML?.trim() !== '';
+ };
- observer = new MutationObserver(checkContent);
- observer.observe(teleportRef.value, { childList: true, subtree: true });
+ observer = new MutationObserver(checkContent);
+ observer.observe(teleportRef.value, { childList: true, subtree: true });
- checkContent();
- }
+ checkContent();
});
diff --git a/src/components/common/VnSection.vue b/src/components/common/VnSection.vue
index e69e586b5..edd8d3dfa 100644
--- a/src/components/common/VnSection.vue
+++ b/src/components/common/VnSection.vue
@@ -4,11 +4,12 @@ import VnSearchbar from 'components/ui/VnSearchbar.vue';
import VnTableFilter from '../VnTable/VnTableFilter.vue';
import { onBeforeMount, computed } from 'vue';
import { useArrayData } from 'src/composables/useArrayData';
+import { useRoute } from 'vue-router';
const $props = defineProps({
section: {
type: String,
- required: true,
+ default: null,
},
dataKey: {
type: String,
@@ -38,14 +39,28 @@ const $props = defineProps({
type: Boolean,
default: true,
},
+ keepData: {
+ type: Boolean,
+ default: true,
+ },
});
-const sectionValue = computed(() => $props.section ?? $props.dataKey);
+const route = useRoute();
let arrayData;
+const sectionValue = computed(() => $props.section ?? $props.dataKey);
+const isMainSection = computed(() => {
+ const isSame = sectionValue.value == route.name;
+ if (!isSame && arrayData) {
+ arrayData.reset(['userParams', 'userFilter']);
+ }
+ return isSame;
+});
+
onBeforeMount(() => {
if ($props.dataKey)
arrayData = useArrayData($props.dataKey, {
searchUrl: 'table',
+ keepData: $props.keepData,
...$props.arrayDataProps,
navigate: $props.redirect,
});
@@ -74,6 +89,6 @@ onBeforeMount(() => {
-
+
diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue
index 8aa725b4a..58b7667d2 100644
--- a/src/components/common/VnSelect.vue
+++ b/src/components/common/VnSelect.vue
@@ -166,7 +166,11 @@ onMounted(() => {
const arrayDataKey =
$props.dataKey ?? ($props.url?.length > 0 ? $props.url : $attrs.name ?? $attrs.label);
-const arrayData = useArrayData(arrayDataKey, { url: $props.url, searchUrl: false });
+const arrayData = useArrayData(arrayDataKey, {
+ url: $props.url,
+ searchUrl: false,
+ mapKey: $attrs['map-key'],
+});
function findKeyInOptions() {
if (!$props.options) return;
diff --git a/src/components/ui/VnFilterPanel.vue b/src/components/ui/VnFilterPanel.vue
index 2be508f9f..46c43356f 100644
--- a/src/components/ui/VnFilterPanel.vue
+++ b/src/components/ui/VnFilterPanel.vue
@@ -202,7 +202,11 @@ const getLocale = (label) => {
style="position: fixed; z-index: 1; right: 0; bottom: 0"
icon="search"
@click="search()"
- >
+ >
+
+ {{ t('globals.search') }}
+
+
diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue
index e308ea9bb..1690a94ba 100644
--- a/src/components/ui/VnNotes.vue
+++ b/src/components/ui/VnNotes.vue
@@ -110,7 +110,7 @@ onBeforeRouteLeave((to, from, next) => {
:url="$props.url"
order="created DESC"
:limit="0"
- :filter="$props.filter"
+ :user-filter="$props.filter"
auto-load
ref="vnPaginateRef"
class="show"
diff --git a/src/components/ui/VnPaginate.vue b/src/components/ui/VnPaginate.vue
index a2ccd5d92..0111366f5 100644
--- a/src/components/ui/VnPaginate.vue
+++ b/src/components/ui/VnPaginate.vue
@@ -111,6 +111,7 @@ onMounted(async () => {
});
onBeforeUnmount(() => {
+ if (!store.keepData) arrayData.reset(['data']);
arrayData.resetPagination();
});
diff --git a/src/components/ui/VnSearchbar.vue b/src/components/ui/VnSearchbar.vue
index 4e284d8e4..a2d3b9ee1 100644
--- a/src/components/ui/VnSearchbar.vue
+++ b/src/components/ui/VnSearchbar.vue
@@ -126,6 +126,7 @@ async function search() {
delete filter.params.search;
}
await arrayData.applyFilter(filter);
+ searchText.value = undefined;
}
diff --git a/src/components/ui/VnSms.vue b/src/components/ui/VnSms.vue
index bf6e0695e..8b25ba5da 100644
--- a/src/components/ui/VnSms.vue
+++ b/src/components/ui/VnSms.vue
@@ -54,6 +54,7 @@ function formatNumber(number) {
:offset="100"
:limit="5"
auto-load
+ map-key="smsFk"
>
{
>
- {{ t('Delete') }}
+ {{ t('globals.delete') }}
diff --git a/src/pages/Customer/Card/CustomerConsumption.vue b/src/pages/Customer/Card/CustomerConsumption.vue
index 35f366e47..640e37ed3 100644
--- a/src/pages/Customer/Card/CustomerConsumption.vue
+++ b/src/pages/Customer/Card/CustomerConsumption.vue
@@ -2,7 +2,7 @@
import { ref, computed, onBeforeMount } from 'vue';
import axios from 'axios';
import { useI18n } from 'vue-i18n';
-import { toDate } from 'src/filters/index';
+import { dateRange, toDate } from 'src/filters/index';
import { useRoute } from 'vue-router';
import VnTable from 'components/VnTable/VnTable.vue';
@@ -104,18 +104,12 @@ function getParams() {
};
}
const userParams = computed(() => {
- const minDate = Date.vnNew();
- minDate.setHours(0, 0, 0, 0);
- minDate.setMonth(minDate.getMonth() - 2);
-
- const maxDate = Date.vnNew();
- maxDate.setHours(23, 59, 59, 59);
-
- return {
- campaign: campaignList.value[0]?.id,
- from: minDate,
- to: maxDate,
+ const campaign = campaignList.value[0]?.id;
+ const userParams = {
+ campaign,
+ ...updateDateParams(campaign, { from: Date.vnNew(), to: Date.vnNew() }),
};
+ return userParams;
});
const openReportPdf = () => {
openReport(`Clients/${route.params.id}/campaign-metrics-pdf`, getParams());
@@ -134,6 +128,23 @@ const sendCampaignMetricsEmail = ({ address }) => {
...getParams(),
});
};
+
+const updateDateParams = (value, params) => {
+ if (!value) {
+ params.from = null;
+ params.to = null;
+ return;
+ }
+ const campaign = campaignList.value.find((c) => c.id === value);
+ if (!campaign) return;
+
+ const { dated, previousDays, scopeDays } = campaign;
+ const _date = new Date(dated);
+ const [from, to] = dateRange(_date);
+ params.from = new Date(from.setDate(from.getDate() - previousDays)).toISOString();
+ params.to = new Date(to.setDate(to.getDate() + scopeDays)).toISOString();
+ return params;
+};
@@ -144,7 +155,6 @@ const sendCampaignMetricsEmail = ({ address }) => {
:order="['itemTypeFk', 'itemName', 'itemSize', 'description']"
:columns="columns"
search-url="consumption"
- :filter="filter"
:user-params="userParams"
:default-remove="false"
:default-reset="false"
@@ -201,6 +211,7 @@ const sendCampaignMetricsEmail = ({ address }) => {
class="q-px-sm q-pt-none fit"
dense
option-label="code"
+ @update:model-value="(data) => updateDateParams(data, params)"
>
diff --git a/src/pages/Customer/Card/CustomerMandates.vue b/src/pages/Customer/Card/CustomerMandates.vue
index 248515b4a..66cb44bc2 100644
--- a/src/pages/Customer/Card/CustomerMandates.vue
+++ b/src/pages/Customer/Card/CustomerMandates.vue
@@ -63,9 +63,10 @@ const columns = computed(() => [
{
-
-
+
+
{
:label="t('entry.summary.travelAgency')"
:value="entry.travel.agency?.name"
/>
-
+
{
:label="t('entry.summary.travelDelivered')"
:value="entry.travel.isDelivered"
/>
-
+
{
es:
Date: Fecha
params:
- dated: Date
+ dated: Fecha
workerFk: Trabajador
diff --git a/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue b/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue
index 1c4091169..e529ea6cd 100644
--- a/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue
+++ b/src/pages/InvoiceIn/Card/InvoiceInIntrastat.vue
@@ -161,7 +161,7 @@ const columns = computed(() => [
[
columnField: { component: null },
format: (row) => toDate(row.dued),
},
+ {
+ align: 'left',
+ name: 'customsAgentFk',
+ label: t('invoiceOutList.tableVisibleColumns.customsAgent'),
+ cardVisible: true,
+ format: (row, dashIfEmpty) => dashIfEmpty(row.customsAgentName),
+ },
{
align: 'right',
name: 'tableActions',
@@ -346,7 +353,7 @@ watchEffect(selectedRows);
-
+
{
switch (param) {
@@ -49,10 +40,6 @@ const where = {
itemFk: route.params.id,
};
-if (hideInventory.value) {
- where.supplierFk = { neq: inventorySupplierFk };
-}
-
const arrayData = useArrayData('ItemLastEntries', {
url: 'Items/lastEntriesFilter',
order: ['landed DESC', 'buyFk DESC'],
@@ -110,7 +97,7 @@ const columns = computed(() => [
format: (val) => dashIfEmpty(val),
},
{
- label: t('shelvings.packing'),
+ label: 'Packing',
name: 'packing',
field: 'packing',
align: 'center',
@@ -182,15 +169,11 @@ const updateFilter = async () => {
const userFilter = arrayData.store.userFilter.where;
userFilter.landed = filter;
- if (hideInventory.value) userFilter.supplierFk = { neq: inventorySupplierFk };
- else delete userFilter.supplierFk;
await fetchItemLastEntries();
};
onMounted(async () => {
- await getInventorySupplier();
-
const _from = Date.vnNew();
_from.setDate(_from.getDate() - 75);
from.value = getDate(_from, 'from');
@@ -200,12 +183,16 @@ onMounted(async () => {
updateFilter();
- watch([from, to, hideInventory], ([nFrom, nTo], [oFrom, oTo]) => {
+ watch([from, to], ([nFrom, nTo], [oFrom, oTo]) => {
if (nFrom && nFrom != oFrom) nFrom = getDate(new Date(nFrom), 'from');
if (nTo && nTo != oTo) nTo = getDate(new Date(nTo), 'to');
updateFilter();
});
});
+
+function getBadgeClass(groupingMode, expectedGrouping) {
+ return groupingMode === expectedGrouping ? 'accent-badge' : 'simple-badge';
+}
@@ -224,13 +211,6 @@ onMounted(async () => {
class="q-mr-lg"
data-cy="to"
/>
-
@@ -249,6 +229,11 @@ onMounted(async () => {
/>
+
+
+ {{ row.warehouse }}
+
+
@@ -262,32 +247,37 @@ onMounted(async () => {
+
+
+ {{ value }}
+ {{ t('lastEntries.grouping') }}/Packing
+
+
+
+
+ {{ row.printedStickers }}
+
+
{{ dashIfEmpty(row.packing) }}
- {{ t('lastEntries.packing') }}
+ Packing
-
-
- {{ value }}
-
- {{ t('lastEntries.grouping') }}/{{ t('lastEntries.packing') }}
-
-
{{ dashIfEmpty(row.grouping) }}
{{ t('lastEntries.grouping') }}
@@ -315,13 +305,16 @@ onMounted(async () => {
-
-
+
- {{ row.supplier }}
+ >
+
+ {{ row.supplier }}
+
@@ -349,4 +342,13 @@ onMounted(async () => {
background-color: red;
}
}
+.accent-badge {
+ background-color: var(--vn-label-color);
+ color: var(--vn-text-color-contrast);
+}
+.simple-badge {
+ background-color: transparent;
+ color: var(--vn-text-color);
+ font-size: 14px;
+}
diff --git a/src/pages/Item/Card/ItemTags.vue b/src/pages/Item/Card/ItemTags.vue
index fbb0e01a7..93d4b9a71 100644
--- a/src/pages/Item/Card/ItemTags.vue
+++ b/src/pages/Item/Card/ItemTags.vue
@@ -128,7 +128,7 @@ const submitTags = async (data) => {
[
name: 'itemFk',
...defaultColumnAttrs,
isId: true,
- cardVisible: true,
columnField: {
component: 'input',
type: 'number',
@@ -65,14 +64,12 @@ const columns = computed(() => [
name: 'name',
...defaultColumnAttrs,
create: true,
- cardVisible: true,
},
{
label: t('item.fixedPrice.groupingPrice'),
field: 'rate2',
name: 'rate2',
...defaultColumnAttrs,
- cardVisible: true,
component: 'input',
type: 'number',
},
@@ -81,7 +78,6 @@ const columns = computed(() => [
field: 'rate3',
name: 'rate3',
...defaultColumnAttrs,
- cardVisible: true,
component: 'input',
type: 'number',
},
@@ -91,7 +87,6 @@ const columns = computed(() => [
field: 'minPrice',
name: 'minPrice',
...defaultColumnAttrs,
- cardVisible: true,
component: 'input',
type: 'number',
},
@@ -100,7 +95,6 @@ const columns = computed(() => [
field: 'started',
name: 'started',
format: ({ started }) => toDate(started),
- cardVisible: true,
...defaultColumnAttrs,
columnField: {
component: 'date',
@@ -116,7 +110,6 @@ const columns = computed(() => [
field: 'ended',
name: 'ended',
...defaultColumnAttrs,
- cardVisible: true,
columnField: {
component: 'date',
class: 'shrink',
@@ -251,11 +244,14 @@ const upsertPrice = async (props, resetMinPrice = false) => {
}
if (!changes.updates && !changes.creates) return;
const data = await upsertFixedPrice(row);
- tableRef.value.CrudModelRef.formData[props.rowIndex] = data;
+ Object.assign(tableRef.value.CrudModelRef.formData[props.rowIndex], data);
+ notify(t('globals.dataSaved'), 'positive');
+ tableRef.value.reload();
};
async function upsertFixedPrice(row) {
const { data } = await axios.patch('FixedPrices/upsertFixedPrice', row);
+ data.hasMinPrice = data.hasMinPrice ? 1 : 0;
return data;
}
@@ -395,18 +391,12 @@ function handleOnDataSave({ CrudModelRef }) {
- data.forEach((item) => {
- item.hasMinPrice = `${item.hasMinPrice !== 0}`;
- })
- "
:default-remove="false"
:default-reset="false"
:default-save="false"
data-key="ItemFixedPrices"
url="FixedPrices/filter"
- :order="['itemFk DESC', 'name DESC']"
+ :order="['name DESC', 'itemFk DESC']"
save-url="FixedPrices/crud"
ref="tableRef"
dense
@@ -498,14 +488,15 @@ function handleOnDataSave({ CrudModelRef }) {
diff --git a/src/pages/Item/ItemList.vue b/src/pages/Item/ItemList.vue
index 4aa3b13fe..5119b5177 100644
--- a/src/pages/Item/ItemList.vue
+++ b/src/pages/Item/ItemList.vue
@@ -376,6 +376,8 @@ const columns = computed(() => [
es:
New item: Nuevo artículo
+ Create Item: Crear artículo
+ You can search by id: Puedes buscar por id
Preview: Vista previa
Regularize stock: Regularizar stock
diff --git a/src/pages/Item/ItemRequestFilter.vue b/src/pages/Item/ItemRequestFilter.vue
index 4e8ae0d42..f23cadcad 100644
--- a/src/pages/Item/ItemRequestFilter.vue
+++ b/src/pages/Item/ItemRequestFilter.vue
@@ -201,6 +201,7 @@ en:
to: To
mine: For me
state: State
+ daysOnward: Days onward
myTeam: My team
dateFiltersTooltip: Cannot choose a range of dates and days onward at the same time
denied: Denied
@@ -218,6 +219,7 @@ es:
to: Hasta
mine: Para mi
state: Estado
+ daysOnward: Días en adelante
myTeam: Mi equipo
dateFiltersTooltip: No se puede seleccionar un rango de fechas y días en adelante a la vez
denied: Denegada
diff --git a/src/pages/Order/Card/OrderFilter.vue b/src/pages/Order/Card/OrderFilter.vue
index dc86600ac..fcd1ef2e4 100644
--- a/src/pages/Order/Card/OrderFilter.vue
+++ b/src/pages/Order/Card/OrderFilter.vue
@@ -128,6 +128,7 @@ en:
from: From
to: To
orderFk: Order
+ workerFk: Worker
sourceApp: Application
myTeam: My Team
isConfirmed: Is Confirmed
@@ -151,6 +152,7 @@ es:
from: Desde
to: Hasta
orderFk: Cesta
+ workerFk: Trabajador
sourceApp: Aplicación
myTeam: Mi Equipo
isConfirmed: Confirmado
diff --git a/src/pages/Order/Card/OrderSummary.vue b/src/pages/Order/Card/OrderSummary.vue
index b8016abac..ad06dfe43 100644
--- a/src/pages/Order/Card/OrderSummary.vue
+++ b/src/pages/Order/Card/OrderSummary.vue
@@ -221,7 +221,7 @@ async function handleConfirm() {
-
+
{{ props.row.quantity }}
diff --git a/src/pages/Route/Card/RouteAutonomousFilter.vue b/src/pages/Route/Card/RouteAutonomousFilter.vue
index 3d08e1355..0b807b7b3 100644
--- a/src/pages/Route/Card/RouteAutonomousFilter.vue
+++ b/src/pages/Route/Card/RouteAutonomousFilter.vue
@@ -225,8 +225,8 @@ es:
params:
agencyModeFk: Agencia ruta
m3: m³
- from: Desde
- to: Hasta
+ From: Desde
+ To: Hasta
date: Fecha
agencyFk: Agencia Acuerdo
packages: Bultos
diff --git a/src/pages/Route/Card/RouteFilter.vue b/src/pages/Route/Card/RouteFilter.vue
index 6f65313d3..72bfed1da 100644
--- a/src/pages/Route/Card/RouteFilter.vue
+++ b/src/pages/Route/Card/RouteFilter.vue
@@ -161,6 +161,7 @@ en:
warehouseFk: Warehouse
description: Description
m3: m³
+ scopeDays: Days Onward
vehicleFk: Vehicle
agencyModeFk: Agency
workerFk: Worker
@@ -172,6 +173,7 @@ es:
warehouseFk: Almacén
description: Descripción
m3: m³
+ scopeDays: Días en adelante
vehicleFk: Vehículo
agencyModeFk: Agencia
workerFk: Trabajador
diff --git a/src/pages/Route/RouteAutonomous.vue b/src/pages/Route/RouteAutonomous.vue
index e45af30c7..ca51b0fdb 100644
--- a/src/pages/Route/RouteAutonomous.vue
+++ b/src/pages/Route/RouteAutonomous.vue
@@ -271,6 +271,8 @@ es:
Date: Fecha
Agency route: Agencia Ruta
Agency agreement: Agencia Acuerdo
+ From: Desde
+ To: Hasta
Packages: Bultos
Price: Precio
Received: Recibida
diff --git a/src/pages/Supplier/Card/SupplierConsumptionFilter.vue b/src/pages/Supplier/Card/SupplierConsumptionFilter.vue
index 401bde8fa..390f7d9ff 100644
--- a/src/pages/Supplier/Card/SupplierConsumptionFilter.vue
+++ b/src/pages/Supplier/Card/SupplierConsumptionFilter.vue
@@ -134,6 +134,7 @@ defineProps({
en:
params:
+ supplierFk: Supplier
search: General search
itemId: Item id
buyerId: Buyer
@@ -143,6 +144,7 @@ en:
to: To
es:
params:
+ supplierFk: Proveedor
search: Búsqueda general
itemId: Id Artículo
buyerId: Comprador
diff --git a/src/pages/Supplier/Card/SupplierSummary.vue b/src/pages/Supplier/Card/SupplierSummary.vue
index a467006a3..5892811e6 100644
--- a/src/pages/Supplier/Card/SupplierSummary.vue
+++ b/src/pages/Supplier/Card/SupplierSummary.vue
@@ -149,7 +149,7 @@ const getUrl = (section) => `#/supplier/${entityId.value}/${section}`;
-
+
{
}
}
"
+ :redirect="false"
order="created DESC"
>
diff --git a/src/pages/Ticket/Card/TicketPurchaseRequest.vue b/src/pages/Ticket/Card/TicketPurchaseRequest.vue
index 3b9d6a25b..4e77c7277 100644
--- a/src/pages/Ticket/Card/TicketPurchaseRequest.vue
+++ b/src/pages/Ticket/Card/TicketPurchaseRequest.vue
@@ -275,4 +275,5 @@ onMounted(() => (stateStore.rightDrawer = false));
New: Nueva
Denied: Denegada
Accepted: Aceptada
+ Create request: Crear petición de compra
diff --git a/src/pages/Ticket/Card/TicketSale.vue b/src/pages/Ticket/Card/TicketSale.vue
index 703a00a0e..8aa785c74 100644
--- a/src/pages/Ticket/Card/TicketSale.vue
+++ b/src/pages/Ticket/Card/TicketSale.vue
@@ -54,6 +54,7 @@ const transfer = ref({
});
const tableRef = ref([]);
const canProceed = ref();
+const isLoading = ref(false);
watch(
() => route.params.id,
@@ -213,6 +214,9 @@ const updateQuantity = async ({ quantity, id }) => {
};
const addSale = async (sale) => {
+ if (isLoading.value) return;
+
+ isLoading.value = true;
const params = {
barcode: sale.itemFk,
quantity: sale.quantity,
@@ -233,7 +237,7 @@ const addSale = async (sale) => {
sale.item = newSale.item;
notify('globals.dataSaved', 'positive');
- window.location.reload();
+ arrayData.fetch({});
};
const updateConcept = async (sale) => {
@@ -464,6 +468,7 @@ const addRow = (original = null) => {
};
const endNewRow = (row) => {
+ if (!row) return;
if (row.itemFk && row.quantity) {
row.isNew = false;
}
diff --git a/src/pages/Ticket/TicketFilter.vue b/src/pages/Ticket/TicketFilter.vue
index bde27f30e..9c8b9f1a3 100644
--- a/src/pages/Ticket/TicketFilter.vue
+++ b/src/pages/Ticket/TicketFilter.vue
@@ -298,14 +298,19 @@ en:
to: To
salesPersonFk: Salesperson
stateFk: State
+ groupedStates: Grouped State
refFk: Invoice Ref.
+ scopeDays: Days onward
+ nickname: Nickname
myTeam: My team
pending: Pending
hasInvoice: Invoiced
hasRoute: Routed
+ problems: With problems
provinceFk: Province
agencyModeFk: Agency
warehouseFk: Warehouse
+ collectionFk: Collection
FREE: Free
ON_PREPARATION: On preparation
PACKED: Packed
@@ -320,11 +325,19 @@ es:
to: Hasta
salesPersonFk: Comercial
stateFk: Estado
+ groupedStates: Estado agrupado
refFk: Ref. Factura
+ scopeDays: Días en adelante
+ nickname: Nombre mostrado
myTeam: Mi equipo
pending: Pendiente
hasInvoice: Facturado
hasRoute: Enrutado
+ problems: Con problemas
+ provinceFk: Provincia
+ agencyModeFk: Agencia
+ warehouseFk: Almacén
+ collectionFk: Colección
Customer ID: ID Cliente
Order ID: ID Pedido
From: Desde
diff --git a/src/pages/Travel/ExtraCommunity.vue b/src/pages/Travel/ExtraCommunity.vue
index 898342deb..7d7c5f07d 100644
--- a/src/pages/Travel/ExtraCommunity.vue
+++ b/src/pages/Travel/ExtraCommunity.vue
@@ -718,13 +718,14 @@ en:
landed: W. landed
requiresInspection: Requires inspection
BIP: Boder Inspection Point
-
+ notes: Notes
es:
searchExtraCommunity: Buscar por envío extra comunitario
kg: KG Bloq.
physicKg: KG físico
shipped: F. envío
landed: F. llegada
+ notes: Notas
Open as PDF: Abrir como PDF
requiresInspection: Requiere inspección
BIP: Punto de Inspección Fronteriza
diff --git a/src/pages/Travel/TravelList.vue b/src/pages/Travel/TravelList.vue
index 4d2912bf7..67fdb3254 100644
--- a/src/pages/Travel/TravelList.vue
+++ b/src/pages/Travel/TravelList.vue
@@ -286,6 +286,7 @@ es:
Search travel: Buscar envio
Clone: Clonar
Add entry: Añadir Entrada
+ Create Travels: Crear envíos