PR-CUSTOMER #186

Merged
jsegarra merged 105 commits from :PR-CUSTOMER into dev 2024-04-19 15:55:53 +00:00
17 changed files with 96 additions and 59 deletions
Showing only changes of commit 86199d8197 - Show all commits

View File

@ -1,6 +1,6 @@
<script setup>
import VnAvatar from 'src/components/ui/VnAvatar.vue';
import { toDateHour } from 'src/filters';
import { toDateHourMinSec } from 'src/filters';
import { ref } from 'vue';
import axios from 'axios';
import { useI18n } from 'vue-i18n';
@ -51,7 +51,7 @@ async function insert() {
/>
<slot name="actions">
{{ toDateHour(note.created) }}
{{ toDateHourMinSec(note.created) }}
</slot>
</QItem>
</QCardSection>

View File

@ -1,7 +1,8 @@
import toLowerCase from './toLowerCase';
import toDate from './toDate';
import toDateString from './toDateString';
import toDateHour from './toDateHour';
import toDateHourMin from './toDateHourMin';
import toDateHourMinSec from './toDateHourMinSec';
import toRelativeDate from './toRelativeDate';
import toCurrency from './toCurrency';
import toPercentage from './toPercentage';
@ -16,7 +17,8 @@ export {
toDate,
toHour,
toDateString,
toDateHour,
toDateHourMin,
toDateHourMinSec,
toRelativeDate,
toCurrency,
toPercentage,

View File

@ -0,0 +1,11 @@
export default function toDateHourMin(date) {
jsegarra marked this conversation as resolved
Review

Duda, cuando actualicemos con dev seguirá siendo útil?

Duda, cuando actualicemos con dev seguirá siendo útil?
Review

En el archivo date.js están las nuevas utils que hacen esto así que supongo que ya no sería útil

En el archivo `date.js` están las nuevas utils que hacen esto así que supongo que ya no sería útil
Review

CustomerBalance CustomerCreditOpinion y CustomerCredit usan toDateHourMin

CustomerBalance CustomerCreditOpinion y CustomerCredit usan toDateHourMin
const dateHour = new Date(date).toLocaleDateString('es-ES', {
timeZone: 'Europe/Madrid',
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
});
return dateHour;
}

View File

@ -1,4 +1,4 @@
export default function toDateHour(date) {
export default function toDateHourMinSec(date) {
Review

Duda, cuando actualicemos con dev seguirá siendo útil?

Duda, cuando actualicemos con dev seguirá siendo útil?
Review

En el archivo date.js están las nuevas utils que hacen esto así que supongo que ya no sería útil

En el archivo `date.js` están las nuevas utils que hacen esto así que supongo que ya no sería útil
Review

Todavia no, porque hay otras ocurrencias que lo usan, CustomerWebPayment y CustomerCreditContractsInsurance

Lo anoto para eliminar en nuestro lado VnNotes y OrderSummary

Todavia no, porque hay otras ocurrencias que lo usan, CustomerWebPayment y CustomerCreditContractsInsurance Lo anoto para eliminar en nuestro lado VnNotes y OrderSummary
const dateHour = new Date(date).toLocaleDateString('es-ES', {
timeZone: 'Europe/Madrid',
year: 'numeric',

View File

@ -10,6 +10,7 @@ const { t } = useI18n();
const route = useRoute();
const router = useRouter();
const client = ref(null);
const provincesLocation = ref([]);
const addressFilter = {
@ -51,6 +52,10 @@ const setProvince = (provinceFk) => {
return result[0]?.name || '';
};
const isDefaultAddress = (address) => {
return client?.value?.defaultAddressFk === address.id ? 1 : 0;
};
const toCustomerAddressCreate = () => {
router.push({ name: 'CustomerAddressCreate' });
};
@ -67,6 +72,11 @@ const toCustomerAddressEdit = (addressId) => {
</script>
<template>
<FetchData
@on-fetch="(data) => (client = data)"
auto-load
:url="`Clients/${route.params.id}`"
/>
<FetchData
@on-fetch="(data) => (provincesLocation = data)"
auto-load
@ -88,11 +98,21 @@ const toCustomerAddressEdit = (addressId) => {
:class="{
'address-card': true,
'q-mb-md': index < rows.length - 1,
'item-disabled': !item.isActive,
}"
@click="toCustomerAddressEdit(item.id)"
>
<div class="q-ml-xs q-mr-md flex items-center">
<QIcon name="star" size="md" color="primary" />
<QIcon

Los consignatarios se ordenan poniendo el predeterminado (star filled) el primero y el resto despues, mirar orden en salix.
La estrella tiene un evento click que sirve para marcar como predeterminado otro de los consignatarios, mirar funcionamiento en salix.

Los consignatarios se ordenan poniendo el predeterminado (star filled) el primero y el resto despues, mirar orden en salix. La estrella tiene un evento click que sirve para marcar como predeterminado otro de los consignatarios, mirar funcionamiento en salix.

Corregido: 980904a382

Corregido: 980904a382

@cfonseca El funcionamiento que reportaba Javi, está OK.

Sin embargo, falta revisar el layout de address/:id/edit:

  1. Hay una label que no coincide
  2. El grid no está igual,

Ver imagen de chat

@cfonseca El funcionamiento que reportaba Javi, está OK. Sin embargo, falta revisar el layout de address/:id/edit: 1. Hay una label que no coincide 2. El grid no está igual, Ver imagen de chat

Corregido: 7eca27b8af

Corregido: 7eca27b8af

Mmm...falta revisar VnLocation porque no está cargando el valor.

Si quieres nos juntamos en post-daily y lo vemos.

Mmm...falta revisar VnLocation porque no está cargando el valor. Si quieres nos juntamos en post-daily y lo vemos.

He hecho la prueba y se actualiza el campo correctamente. También carga el valor correctamente

He hecho la prueba y se actualiza el campo correctamente. También carga el valor correctamente
:style="{
'font-variation-settings': `'FILL' ${isDefaultAddress(
item
)}`,
}"
color="primary"
name="star"
size="md"
/>
</div>
<div>
<div class="text-weight-bold q-mb-sm">
@ -161,6 +181,10 @@ const toCustomerAddressEdit = (addressId) => {
background-color: var(--vn-light-gray);
}
}
.item-disabled {
opacity: 0.6;
}
</style>
<i18n>

View File

@ -6,7 +6,7 @@ import { useRoute } from 'vue-router';
import axios from 'axios';
import { QCheckbox, QBtn, useQuasar, QField, QPopupEdit } from 'quasar';
import { toCurrency, toDate, toDateHour } from 'src/filters';
import { toCurrency, toDate, toDateHourMinSec } from 'src/filters';
import { useState } from 'src/composables/useState';
import { useStateStore } from 'stores/useStateStore';
import { useValidator } from 'src/composables/useValidator';
@ -106,7 +106,7 @@ const columns = computed(() => [
{
align: 'left',
field: 'created',
format: (value) => toDateHour(value),
format: (value) => toDateHourMinSec(value),
label: t('Creation date'),
name: 'creationDate',
},
@ -256,13 +256,13 @@ const saveFieldValue = async (event) => {
</div>
<div v-else>
<QBtn
:label="props.value"
flat
rounded
class="dotted-border-btn"
no-caps
/>
<QField dense readonly>
<template #control>
<div class="self-center full-width no-outline">
{{ props.row.description }}
</div>
</template>
</QField>
<QPopupEdit
jsegarra marked this conversation as resolved Outdated

Revisar, si este es el componente que acordamos en la UX/UI.
Hablar con @buezas porque ha hecho un cambio en la parte de travel/extra-community y el tipo de componente quasar que se está usando aquí no es el mismo

Revisar, si este es el componente que acordamos en la UX/UI. Hablar con @buezas porque ha hecho un cambio en la parte de travel/extra-community y el tipo de componente quasar que se está usando aquí no es el mismo

Corregido: 86199d8197

Corregido: 86199d8197
:key="props.col.name"
label-cancel="Close"

View File

@ -5,7 +5,7 @@ import { useRoute, useRouter } from 'vue-router';
import { QBtn } from 'quasar';
import { toCurrency, toDateHour } from 'src/filters';
import { toCurrency, toDateHourMin } from 'src/filters';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
@ -55,7 +55,7 @@ const columns = computed(() => [
field: 'created',
label: t('Since'),
name: 'created',
format: (value) => toDateHour(value),
format: (value) => toDateHourMin(value),
jsegarra marked this conversation as resolved Outdated

Revisar, porque en Salix, se muestra dd/mm/yyy HH:MM

Revisar, porque en Salix, se muestra dd/mm/yyy HH:MM

Corregido: 86199d8197

Corregido: 86199d8197

Duda, cuando actualicemos con dev no tendremos conflicto?

Duda, cuando actualicemos con dev no tendremos conflicto?
},
{
align: 'left',

View File

@ -57,20 +57,15 @@ const setData = (entity) => (data.value = useCardDescription(entity.name, entity
/>
</template>
</VnLv>
<VnLv
:label="t('customer.card.credit')"
:value="toCurrency(entity.credit)"
class="col-11"
/>
<VnLv :label="t('customer.card.credit')" :value="toCurrency(entity.credit)" />
<VnLv
:label="t('customer.card.risk')"
:value="toCurrency(entity.debt)"
class="col-11"
:info="t('customer.summary.descriptorInfo')"
/>
<VnLv
:label="t('customer.card.securedCredit')"
:value="toCurrency(entity.creditInsurance)"
:info="t('customer.summary.descriptorInfo')"
/>
<VnLv :label="t('customer.card.payMethod')" :value="entity.payMethod.name" />
<VnLv :label="t('customer.card.debt')" :value="toCurrency(entity.debt)" />

View File

@ -6,7 +6,7 @@ import { useRoute, useRouter } from 'vue-router';
import { QBadge, QBtn, QCheckbox } from 'quasar';
import { downloadFile } from 'src/composables/downloadFile';
import { toDateHour } from 'src/filters';
import { toDateHourMinSec } from 'src/filters';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
@ -163,7 +163,7 @@ const columns = computed(() => [
field: (value) => value.dms.created,
label: t('Created'),
name: 'created',
format: (value) => toDateHour(value),
format: (value) => toDateHourMinSec(value),
jsegarra marked this conversation as resolved Outdated

Duda, cuando actualicemos con dev no tendremos conflicto?

Duda, cuando actualicemos con dev no tendremos conflicto?

Se reemplazo toDateHourMinSec por las nuevas utils ubicadas en date.js

Commit: 3cb045936b

Se reemplazo `toDateHourMinSec` por las nuevas utils ubicadas en `date.js` Commit: https://gitea.verdnatura.es/verdnatura/salix-front/commit/3cb045936b2d17001fedd87219c904162d29fba4
},
{
align: 'right',

View File

@ -80,9 +80,7 @@ const onPostcodeCreated = async ({ code, provinceFk, townFk, countryFk }, formDa
>
<template #append>
<QIcon name="info" class="cursor-info">
<QTooltip>{{
t('Only letters, numbers and spaces can be used')
}}</QTooltip>
<QTooltip>{{ t('onlyLetters') }}</QTooltip>
</QIcon>
</template>
</VnInput>
@ -117,7 +115,18 @@ const onPostcodeCreated = async ({ code, provinceFk, townFk, countryFk }, formDa
option-label="vat"
option-value="id"
v-model="data.sageTransactionTypeFk"
/>
>
<template #option="scope">
<QItem v-bind="scope.itemProps">
<QItemSection>
<QItemLabel>{{ scope.opt.name }}</QItemLabel>
<QItemLabel caption>
{{ `${scope.opt.id}: ${scope.opt.transaction}` }}
</QItemLabel>
</QItemSection>
</QItem>
</template>
</VnSelectFilter>
</div>
</VnRow>
@ -234,11 +243,7 @@ const onPostcodeCreated = async ({ code, provinceFk, townFk, countryFk }, formDa
<QCheckbox :label="t('Vies')" v-model="data.isVies" />
<QIcon name="info" class="cursor-info q-ml-sm" size="sm">
<QTooltip>
{{
t(
'When activating it, do not enter the country code in the ID field'
)
}}
{{ t('whenActivatingIt') }}
</QTooltip>
</QIcon>
</div>
@ -267,11 +272,7 @@ const onPostcodeCreated = async ({ code, provinceFk, townFk, countryFk }, formDa
/>

el modelo se llama address. Reemplazar todos los textos y rutas donde aparezca consignee y poner address
En salix esta así http://localhost:5000/#!/client/1101/address/create

el modelo se llama address. Reemplazar todos los textos y rutas donde aparezca consignee y poner address En salix esta así http://localhost:5000/#!/client/1101/address/create

Corregido: ab20ec1738

Corregido: ab20ec1738

Yo lo he visto OK

Yo lo he visto OK
<QIcon class="cursor-info q-ml-sm" name="info" size="sm">
<QTooltip>
{{
t(
"In order to invoice, this field is not contulted, but the consignee's ET. When modifiying this field if the invoice by address option is not checked, the change will be automatically propagated to all addresses, otherwise the user will be asked if he wants to propagate it or not"
)
}}
{{ t('inOrderToInvoice') }}
</QTooltip>
</QIcon>
</div>
@ -304,7 +305,6 @@ const onPostcodeCreated = async ({ code, provinceFk, townFk, countryFk }, formDa
<i18n>
es:
Social name: Razón social
Only letters, numbers and spaces can be used: Sólo se pueden usar letras, números y espacios
Tax number: NIF / CIF
Street: Dirección fiscal
Sage tax type: Tipo de impuesto Sage
@ -317,12 +317,17 @@ es:
Frozen: Congelado
Has to invoice: Factura
Vies: Vies
When activating it, do not enter the country code in the ID field: Al activarlo, no informar el código del país en el campo nif.
Notify by email: Notificar vía e-mail
jsegarra marked this conversation as resolved Outdated

Uff, en el limite. Si no es muy costoso (en tiempo), aplicar el mismo cambio que más abajo

Uff, en el limite. Si no es muy costoso (en tiempo), aplicar el mismo cambio que más abajo

Corregido: 86199d8197

Corregido: 86199d8197
Invoice by address: Facturar por consignatario
Is equalizated: Recargo de equivalencia
In order to invoice, this field is not contulted, but the consignee's ET. When modifiying this field if the invoice by address option is not checked, the change will be automatically propagated to all addresses, otherwise the user will be asked if he wants to propagate it or not: Para facturar no se consulta este campo, sino el RE de consignatario. Al modificar este campo si no esta marcada la casilla Facturar por consignatario, se propagará automaticamente el cambio a todos lo consignatarios, en caso contrario preguntará al usuario si quiere o no propagar.
Verified data: Datos comprobados
Incoterms authorization: Autorización incoterms
jsegarra marked this conversation as resolved Outdated

Reemplazar la key de la traduccion por una palabra camelCase, tipo "inOrderToInvoice".

El exto en inglés deberá estar en la etiqueta en

Reemplazar la key de la traduccion por una palabra camelCase, tipo "inOrderToInvoice". El exto en inglés deberá estar en la etiqueta en

Corregido: 86199d8197

Corregido: 86199d8197
Electronic invoice: Factura electrónica
onlyLetters: Sólo se pueden usar letras, números y espacios
whenActivatingIt: Al activarlo, no informar el código del país en el campo nif
inOrderToInvoice: Para facturar no se consulta este campo, sino el RE de consignatario. Al modificar este campo si no esta marcada la casilla Facturar por consignatario, se propagará automaticamente el cambio a todos lo consignatarios, en caso contrario preguntará al usuario si quiere o no propagar
en:
onlyLetters: Only letters, numbers and spaces can be used
whenActivatingIt: When activating it, do not enter the country code in the ID field
inOrderToInvoice: In order to invoice, this field is not contulted, but the consignee's ET. When modifiying this field if the invoice by address option is not checked, the change will be automatically propagated to all addresses, otherwise the user will be asked if he wants to propagate it or not
</i18n>

View File

@ -5,7 +5,7 @@ import { useRoute, useRouter } from 'vue-router';
import { date, QBtn } from 'quasar';
import { toCurrency, toDateHour } from 'src/filters';
import { toCurrency, toDateHourMinSec } from 'src/filters';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
@ -73,7 +73,7 @@ const columns = computed(() => [
field: 'shipped',
label: t('Date'),
name: 'date',
format: (value) => toDateHour(value),
format: (value) => toDateHourMinSec(value),
jsegarra marked this conversation as resolved Outdated

Duda, cuando actualicemos con dev no tendremos conflicto?

Duda, cuando actualicemos con dev no tendremos conflicto?

Se reemplazo toDateHourMinSec por las nuevas utils ubicadas en date.js

Commit: 73ea49df63

Se reemplazo `toDateHourMinSec` por las nuevas utils ubicadas en `date.js` Commit: https://gitea.verdnatura.es/verdnatura/salix-front/commit/73ea49df6340e32cc035ac132e666c4be2d1fa27
},
{
align: 'left',

View File

@ -3,7 +3,7 @@ import { computed, ref } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router';
import { toDateHour } from 'src/filters';
import { toDateHourMinSec } from 'src/filters';
import FetchData from 'components/FetchData.vue';
@ -74,14 +74,14 @@ const columns = computed(() => [
field: 'created',
label: t('Register date'),
name: 'registerDate',
format: (value) => toDateHour(value),
format: (value) => toDateHourMinSec(value),
jsegarra marked this conversation as resolved Outdated

Duda, cuando actualicemos con dev no tendremos conflicto?

Duda, cuando actualicemos con dev no tendremos conflicto?

Se reemplazo toDateHourMinSec por las nuevas utils ubicadas en date.js

Commit: 093c367d7e

Se reemplazo `toDateHourMinSec` por las nuevas utils ubicadas en `date.js` Commit: https://gitea.verdnatura.es/verdnatura/salix-front/commit/093c367d7eb570320d641dcb0b5e130f8c6f6356
},
{
align: 'left',
field: 'finished',
label: t('End date'),
name: 'endDate',
format: (value) => (value ? toDateHour(value) : '-'),
format: (value) => (value ? toDateHourMinSec(value) : '-'),
},
]);
</script>

View File

@ -7,7 +7,7 @@ import { QBtn } from 'quasar';
import FetchData from 'components/FetchData.vue';
import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue';
import { toDateHour } from 'src/filters';
import { toDateHourMinSec } from 'src/filters';
const { t } = useI18n();
const route = useRoute();
@ -55,7 +55,7 @@ const columns = computed(() => [
field: 'created',
label: t('Sent'),
name: 'sent',
format: (value) => toDateHour(value),
format: (value) => toDateHourMinSec(value),
jsegarra marked this conversation as resolved Outdated

Duda, cuando actualicemos con dev no tendremos conflicto?

Duda, cuando actualicemos con dev no tendremos conflicto?

Se reemplazo toDateHourMinSec por las nuevas utils ubicadas en date.js

Commit: c856adc8d0

Se reemplazo `toDateHourMinSec` por las nuevas utils ubicadas en `date.js` Commit: https://gitea.verdnatura.es/verdnatura/salix-front/commit/c856adc8d0defb6c5574f9d6198ddcf2a28356c4
},
{
align: 'left',

View File

@ -3,7 +3,7 @@ import { computed, ref } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router';
import { toCurrency, toDateHour } from 'src/filters';
import { toCurrency, toDateHourMinSec } from 'src/filters';
import FetchData from 'components/FetchData.vue';
import CustomerCloseIconTooltip from '../components/CustomerCloseIconTooltip.vue';
@ -74,7 +74,7 @@ const columns = computed(() => [
field: 'created',
label: t('Date'),
name: 'date',
format: (value) => toDateHour(value),
format: (value) => toDateHourMinSec(value),
},
{
align: 'left',

View File

@ -32,7 +32,7 @@ const setClientsConfirmTransaction = async () => {
<QIcon
@click.stop="setClientsConfirmTransaction"
color="primary"
name="check"
name="done_all"
size="sm"
jsegarra marked this conversation as resolved
Review

Reemplazzar check por done_all que es el nombre del icono que está en Salix

Reemplazzar check por done_all que es el nombre del icono que está en Salix
Review

Corregido: 86199d8197

Corregido: 86199d8197
>
<QTooltip>{{ t('Confirm transaction') }}</QTooltip>

View File

@ -3,7 +3,7 @@ import { computed, ref } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router';
import { toCurrency, toDateHour } from 'src/filters';
import { toCurrency, toDateHourMinSec } from 'src/filters';
import FetchData from 'components/FetchData.vue';
@ -41,7 +41,7 @@ const columns = computed(() => [
{
align: 'left',
field: 'created',
format: (value) => toDateHour(value),
format: (value) => toDateHourMinSec(value),
label: t('Created'),
name: 'created',
},

View File

@ -3,7 +3,7 @@ import { computed, ref } from 'vue';
import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import { useStateStore } from 'stores/useStateStore';
import { dashIfEmpty, toCurrency, toDateHour } from 'src/filters';
import { dashIfEmpty, toCurrency, toDateHourMinSec } from 'src/filters';
import VnLv from 'components/ui/VnLv.vue';
import CardSummary from 'components/ui/CardSummary.vue';
import CustomerDescriptorProxy from 'pages/Customer/Card/CustomerDescriptorProxy.vue';
@ -86,15 +86,15 @@ const detailsColumns = ref([
<QCard class="vn-one">
<VnLv
:label="t('order.summary.created')"
:value="toDateHour(entity?.created)"
:value="toDateHourMinSec(entity?.created)"
/>
<VnLv
:label="t('order.summary.confirmed')"
:value="toDateHour(entity?.confirmed)"
:value="toDateHourMinSec(entity?.confirmed)"
/>
<VnLv
:label="t('order.summary.landed')"
:value="toDateHour(entity?.landed)"
:value="toDateHourMinSec(entity?.landed)"
/>
<VnLv :label="t('order.summary.phone')">
<template #value>