diff --git a/src/components/ui/VnNotes.vue b/src/components/ui/VnNotes.vue
index f02551575..fac74837f 100644
--- a/src/components/ui/VnNotes.vue
+++ b/src/components/ui/VnNotes.vue
@@ -1,11 +1,11 @@
-
+
-
+
-
- {{ `${note.worker.firstName} ${note.worker.lastName}` }}
-
-
+
+
{{ toDateHour(note.created) }}
@@ -115,6 +116,10 @@ async function insert() {
diff --git a/src/components/ui/VnSubToolbar.vue b/src/components/ui/VnSubToolbar.vue
new file mode 100644
index 000000000..81a1820f1
--- /dev/null
+++ b/src/components/ui/VnSubToolbar.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ui/VnUserLink.vue b/src/components/ui/VnUserLink.vue
new file mode 100644
index 000000000..33836550a
--- /dev/null
+++ b/src/components/ui/VnUserLink.vue
@@ -0,0 +1,21 @@
+
+
+
+
+ {{ $props.defaultName ? $props.name ?? t('globals.system') : $props.name }}
+
+
+
+
+
diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js
index 9f0be6b1d..9f66a0e89 100644
--- a/src/composables/useArrayData.js
+++ b/src/composables/useArrayData.js
@@ -58,7 +58,7 @@ export function useArrayData(key, userOptions) {
}
}
- async function fetch({ append = false }) {
+ async function fetch({ append = false, updateRouter = true }) {
if (!store.url) return;
cancelRequest();
@@ -90,7 +90,7 @@ export function useArrayData(key, userOptions) {
Object.assign(params, userParams);
store.isLoading = true;
-
+ store.currentFilter = params;
const response = await axios.get(store.url, {
signal: canceller.signal,
params,
@@ -100,15 +100,12 @@ export function useArrayData(key, userOptions) {
hasMoreData.value = response.data.length === limit;
- if (append === true) {
+ if (append) {
if (!store.data) store.data = [];
for (const row of response.data) store.data.push(row);
- }
-
- if (append === false) {
+ } else {
store.data = response.data;
-
- updateStateParams();
+ updateRouter && updateStateParams();
}
store.isLoading = false;
@@ -156,7 +153,9 @@ export function useArrayData(key, userOptions) {
delete store.userParams[param];
delete params[param];
if (store.filter?.where) {
- delete store.filter.where[Object.keys(exprBuilder ? exprBuilder(param) : param)[0]];
+ delete store.filter.where[
+ Object.keys(exprBuilder ? exprBuilder(param) : param)[0]
+ ];
if (Object.keys(store.filter.where).length === 0) {
delete store.filter.where;
}
diff --git a/src/composables/useUserConfig.js b/src/composables/useUserConfig.js
index 692943978..e05d7fb5c 100644
--- a/src/composables/useUserConfig.js
+++ b/src/composables/useUserConfig.js
@@ -16,7 +16,7 @@ export function useUserConfig() {
return data;
} catch (error) {
- notify('globals.errors.userConfig', 'negative');
+ notify('errors.userConfig', 'negative');
console.error('Error fetching user config:', error);
}
}
diff --git a/src/css/app.scss b/src/css/app.scss
index f0c26d482..bcc75ab38 100644
--- a/src/css/app.scss
+++ b/src/css/app.scss
@@ -17,9 +17,9 @@ a {
// Removes chrome autofill background
input:-webkit-autofill,
select:-webkit-autofill {
- color: $input-text-color !important;
+ color: var(--vn-text) ;
font-family: $typography-font-family;
- -webkit-text-fill-color: $input-text-color !important;
+ -webkit-text-fill-color: var(--vn-text) ;
-webkit-background-clip: text !important;
background-clip: text !important;
}
diff --git a/src/i18n/en/index.js b/src/i18n/en/index.js
index d6c569618..1b3c1298c 100644
--- a/src/i18n/en/index.js
+++ b/src/i18n/en/index.js
@@ -62,7 +62,8 @@ export default {
selectRows: 'Select all { numberRows } row(s)',
allRows: 'All { numberRows } row(s)',
markAll: 'Mark all',
- noResults: 'No results'
+ noResults: 'No results',
+ system: 'System',
},
errors: {
statusUnauthorized: 'Access denied',
@@ -109,6 +110,7 @@ export default {
customer: {
pageTitles: {
customers: 'Customers',
+ create: 'Create',
list: 'List',
webPayments: 'Web Payments',
extendedList: 'Extended list',
@@ -944,6 +946,7 @@ export default {
components: {
topbar: {},
userPanel: {
+ copyToken: 'Token copied to clipboard',
settings: 'Settings',
logOut: 'Log Out',
},
diff --git a/src/i18n/es/index.js b/src/i18n/es/index.js
index 6fd60bfd9..9758baefd 100644
--- a/src/i18n/es/index.js
+++ b/src/i18n/es/index.js
@@ -62,7 +62,8 @@ export default {
selectRows: 'Seleccionar las { numberRows } filas(s)',
allRows: 'Todo { numberRows } filas(s)',
markAll: 'Marcar todo',
- noResults: 'Sin resultados'
+ noResults: 'Sin resultados',
+ system: 'Sistema',
},
errors: {
statusUnauthorized: 'Acceso denegado',
@@ -109,6 +110,7 @@ export default {
customer: {
pageTitles: {
customers: 'Clientes',
+ create: 'Crear',
list: 'Listado',
webPayments: 'Pagos Web',
extendedList: 'Listado extendido',
@@ -856,7 +858,7 @@ export default {
payDeadline: 'Plazo de pago',
payDay: 'Día de pago',
account: 'Cuenta',
- fiscalData: 'Data fiscal',
+ fiscalData: 'Datos fiscales',
sageTaxType: 'Tipo de impuesto Sage',
sageTransactionType: 'Tipo de transacción Sage',
sageWithholding: 'Retención sage',
@@ -943,6 +945,7 @@ export default {
components: {
topbar: {},
userPanel: {
+ copyToken: 'Token copiado al portapapeles',
settings: 'Configuración',
logOut: 'Cerrar sesión',
},
diff --git a/src/i18n/index.js b/src/i18n/index.js
index 7344be49a..a375812df 100644
--- a/src/i18n/index.js
+++ b/src/i18n/index.js
@@ -1,6 +1,8 @@
import en from './en';
import es from './es';
-
+export const localeEquivalence = {
+ 'en':'en-GB'
+}
export default {
en: en,
es: es,
diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue
index 9c076d98c..021ee685a 100644
--- a/src/layouts/MainLayout.vue
+++ b/src/layouts/MainLayout.vue
@@ -1,7 +1,6 @@
diff --git a/src/layouts/OutLayout.vue b/src/layouts/OutLayout.vue
index f21e6e568..8e9ab3e41 100644
--- a/src/layouts/OutLayout.vue
+++ b/src/layouts/OutLayout.vue
@@ -26,6 +26,7 @@ const userLocale = computed({
}
},
});
+
const darkMode = computed({
get() {
return Dark.isActive;
diff --git a/src/pages/Claim/Card/ClaimAction.vue b/src/pages/Claim/Card/ClaimAction.vue
index 44575f1d6..e92e65fc7 100644
--- a/src/pages/Claim/Card/ClaimAction.vue
+++ b/src/pages/Claim/Card/ClaimAction.vue
@@ -127,11 +127,14 @@ async function updateDestination(claimDestinationFk, row, options = {}) {
}
async function regularizeClaim() {
- const query = `Claims/${claimId}/regularizeClaim`;
-
- await axios.post(query);
+ await axios.post(`Claims/${claimId}/regularizeClaim`);
+ await claimRef.value.fetch();
+ await arrayData.fetch({ append: false });
+ quasar.notify({
+ message: t('globals.dataSaved'),
+ type: 'positive',
+ });
if (claim.value.responsibility >= Math.ceil(DEFAULT_MAX_RESPONSABILITY) / 2) {
- await claimRef.value.fetch();
quasar
.dialog({
component: VnConfirm,
@@ -141,29 +144,19 @@ async function regularizeClaim() {
},
})
.onOk(async () => await onUpdateGreugeAccept());
- } else {
- quasar.notify({
- message: t('globals.dataSaved'),
- type: 'positive',
- });
}
- await arrayData.fetch({ append: false });
-}
-
-async function updateGreuge(greuges) {
- const { data } = await axios.post(`Greuges`, greuges);
- quasar.notify({
- message: t('globals.dataSaved'),
- type: 'positive',
- });
- return data;
}
async function onUpdateGreugeAccept() {
- const greugeTypeFreightId = await getGreugeTypeId();
- const freightPickUpPrice = await getGreugeConfig();
+ const greugeTypeFreightId = (
+ await axios.get(`GreugeTypes/findOne`, {
+ filter: { where: { code: 'freightPickUp' } },
+ })
+ ).data.id;
+ const freightPickUpPrice = (await axios.get(`GreugeConfigs/findOne`)).data
+ .freightPickUpPrice;
- await updateGreuge({
+ await axios.post(`Greuges`, {
clientFk: claim.value.clientFk,
description: `${t('ClaimGreugeDescription')} ${claimId}`.toUpperCase(),
amount: freightPickUpPrice,
@@ -176,19 +169,6 @@ async function onUpdateGreugeAccept() {
});
}
-async function getGreugeTypeId() {
- const params = { filter: { where: { code: 'freightPickUp' } } };
- const query = `GreugeTypes/findOne`;
- const { data } = await axios.get(query, { params });
- return data.id;
-}
-
-async function getGreugeConfig() {
- const query = `GreugeConfigs/findOne`;
- const { data } = await axios.get(query);
- return data.freightPickUpPrice;
-}
-
async function save(data) {
const query = `Claims/${claimId}/updateClaimAction`;
await axios.patch(query, data);
@@ -302,6 +282,8 @@ async function importToNewRefundTicket() {
selection="multiple"
v-model:selected="selectedRows"
:grid="$q.screen.lt.md"
+ :pagination="{ rowsPerPage: 0 }"
+ :hide-bottom="true"
>
@@ -355,7 +337,23 @@ async function importToNewRefundTicket() {
- {{ column.value.description }}
+
+ updateDestination(
+ value,
+ props.row
+ )
+ "
+ />
{{ column.value }}
@@ -437,25 +435,6 @@ async function importToNewRefundTicket() {
-
diff --git a/src/pages/Order/Card/OrderCard.vue b/src/pages/Order/Card/OrderCard.vue
index 4163e22a4..7ac083c37 100644
--- a/src/pages/Order/Card/OrderCard.vue
+++ b/src/pages/Order/Card/OrderCard.vue
@@ -2,6 +2,7 @@
import LeftMenu from 'components/LeftMenu.vue';
import { useStateStore } from 'stores/useStateStore';
import OrderDescriptor from 'pages/Order/Card/OrderDescriptor.vue';
+import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
const stateStore = useStateStore();
@@ -15,9 +16,8 @@ const stateStore = useStateStore();
-
-
-
+
+
diff --git a/src/pages/Order/Card/OrderCatalogFilter.vue b/src/pages/Order/Card/OrderCatalogFilter.vue
index 0859e14a6..c325a9b05 100644
--- a/src/pages/Order/Card/OrderCatalogFilter.vue
+++ b/src/pages/Order/Card/OrderCatalogFilter.vue
@@ -1,11 +1,14 @@
-
-
-
-
-
(clientList = data)"
:filter="{ fields: ['id', 'name', 'defaultAddressFk'] }"
auto-load
/>
-
-
-
-
- fetchAddressList(client.defaultAddressFk)
- "
- >
-
-
-
-
- {{ `${scope.opt.id}: ${scope.opt.name}` }}
-
-
-
-
-
-
-
- fetchAgencyList(data.landed, data.addressFk)
- "
- >
-
-
-
-
- {{
- `${scope.opt.nickname}: ${scope.opt.street},${scope.opt.city}`
- }}
-
-
-
-
-
-
-
-
-
- fetchAgencyList(data.landed, data.addressFk)
- "
- />
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ fetchAddressList(client.defaultAddressFk)
+ "
+ >
+
+
+
+
+ {{ `${scope.opt.id}: ${scope.opt.name}` }}
+
+
+
+
+
+
+
+ fetchAgencyList(data.landed, data.addressFk)
+ "
+ >
+
+
+
+
+ {{
+ `${scope.opt.nickname}: ${scope.opt.street},${scope.opt.city}`
+ }}
+
+
+
+
+
+
+
+
+
+ fetchAgencyList(data.landed, data.addressFk)
+ "
+ />
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/Order/Card/OrderSummary.vue b/src/pages/Order/Card/OrderSummary.vue
index 0ddae2d16..9b26891a1 100644
--- a/src/pages/Order/Card/OrderSummary.vue
+++ b/src/pages/Order/Card/OrderSummary.vue
@@ -56,148 +56,161 @@ const detailsColumns = ref([
-
-
- {{ t('order.summary.basket') }} #{{ entity?.id }} -
- {{ entity?.client?.name }} ({{ entity?.clientFk }})
-
-
-
-
-
-
-
- {{ dashIfEmpty(entity?.address?.nickname) }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ dashIfEmpty(entity?.address?.phone) }}
-
-
-
-
-
-
-
-
-
-
-
- {{ entity?.note }}
-
-
-
-
-
- {{ t('order.summary.subtotal') }}
-
-
- {{ toCurrency(entity?.subTotal) }}
-
-
-
-
- {{ t('order.summary.vat') }}
-
-
- {{ toCurrency(entity?.VAT) }}
-
-
-
-
- {{ t('order.summary.total') }}
-
-
- {{ toCurrency(entity?.total) }}
-
-
-
-
-
-
-
-
- {{ t('order.summary.item') }}
- {{ t('order.summary.description') }}
- {{ t('order.summary.quantity') }}
- {{ t('order.summary.price') }}
- {{ t('order.summary.amount') }}
-
-
-
-
-
- {{ props.row.item?.id }}
-
-
-
- {{ props.row.item.name }}
-
- {{ props.row.item.subName }}
-
-
-
-
-
- {{ props.row.quantity }}
-
-
- {{ props.row.price }}
-
-
- {{ toCurrency(props.row?.quantity * props.row?.price) }}
-
-
-
-
-
-
-
+
+
+
+
+ {{ t('order.summary.basket') }} #{{ entity?.id }} -
+ {{ entity?.client?.name }} ({{ entity?.clientFk }})
+
+
+
+
+
+
+
+ {{ dashIfEmpty(entity?.address?.nickname) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dashIfEmpty(entity?.address?.phone) }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ entity?.note }}
+
+
+
+
+
+ {{ t('order.summary.subtotal') }}
+
+
+ {{
+ toCurrency(entity?.subTotal)
+ }}
+
+
+
+
+ {{ t('order.summary.vat') }}
+
+
+ {{ toCurrency(entity?.VAT) }}
+
+
+
+
+ {{ t('order.summary.total') }}
+
+
+ {{ toCurrency(entity?.total) }}
+
+
+
+
+
+
+
+
+ {{ t('order.summary.item') }}
+ {{ t('order.summary.description') }}
+ {{ t('order.summary.quantity') }}
+ {{ t('order.summary.price') }}
+ {{ t('order.summary.amount') }}
+
+
+
+
+
+ {{ props.row.item?.id }}
+
+
+
+ {{ props.row.item.name }}
+
+ {{ props.row.item.subName }}
+
+
+
+
+
+ {{ props.row.quantity }}
+
+
+ {{ props.row.price }}
+
+
+ {{
+ toCurrency(props.row?.quantity * props.row?.price)
+ }}
+
+
+
+
+
+
+
+