HOTFIX: #6943 CustomerList form salesPersons options #790

Closed
jsegarra wants to merge 84 commits from hotfix_newCustomer_SalesPerson into master
9 changed files with 22 additions and 62 deletions

View File

@ -220,9 +220,6 @@ const makeRequest = async () => {
class="cursor-pointer" class="cursor-pointer"
@click="rotateLeft()" @click="rotateLeft()"
> >
<!-- <QTooltip class="no-pointer-events">
{{ t('Rotate left') }}
</QTooltip> -->
</QIcon> </QIcon>
<div> <div>
<div ref="photoContainerRef" /> <div ref="photoContainerRef" />
@ -234,9 +231,6 @@ const makeRequest = async () => {
class="cursor-pointer" class="cursor-pointer"
@click="rotateRight()" @click="rotateRight()"
> >
<!-- <QTooltip class="no-pointer-events">
{{ t('Rotate right') }}
</QTooltip> -->
</QIcon> </QIcon>
</div> </div>
@ -265,7 +259,6 @@ const makeRequest = async () => {
class="cursor-pointer q-mr-sm" class="cursor-pointer q-mr-sm"
@click="openInputFile()" @click="openInputFile()"
> >
<!-- <QTooltip>{{ t('globals.selectFile') }}</QTooltip> -->
</QIcon> </QIcon>
<QIcon name="info" class="cursor-pointer"> <QIcon name="info" class="cursor-pointer">
<QTooltip>{{ <QTooltip>{{

View File

@ -14,8 +14,8 @@ import dashOrCurrency from './dashOrCurrency';
import getDifferences from './getDifferences'; import getDifferences from './getDifferences';
import getUpdatedValues from './getUpdatedValues'; import getUpdatedValues from './getUpdatedValues';
import getParamWhere from './getParamWhere'; import getParamWhere from './getParamWhere';
import parsePhone from './parsePhone';
import isDialogOpened from './isDialogOpened'; import isDialogOpened from './isDialogOpened';
import parsePhone from './parsePhone';
export { export {
getUpdatedValues, getUpdatedValues,

View File

@ -114,6 +114,7 @@ const debtWarning = computed(() => {
> >
<QTooltip>{{ t('customer.card.webAccountInactive') }}</QTooltip> <QTooltip>{{ t('customer.card.webAccountInactive') }}</QTooltip>
</QIcon> </QIcon>
<QIcon <QIcon
v-if="entity.debt > entity.credit" v-if="entity.debt > entity.credit"
name="vn:risk" name="vn:risk"
@ -175,6 +176,7 @@ const debtWarning = computed(() => {
> >
<QTooltip>{{ t('Customer ticket list') }}</QTooltip> <QTooltip>{{ t('Customer ticket list') }}</QTooltip>
</QBtn> </QBtn>
<QBtn <QBtn
:to="{ :to="{
name: 'InvoiceOutList', name: 'InvoiceOutList',
@ -186,6 +188,7 @@ const debtWarning = computed(() => {
> >
<QTooltip>{{ t('Customer invoice out list') }}</QTooltip> <QTooltip>{{ t('Customer invoice out list') }}</QTooltip>
</QBtn> </QBtn>
<QBtn <QBtn
:to="{ :to="{
name: 'AccountSummary', name: 'AccountSummary',

View File

@ -2,8 +2,6 @@
import { computed, ref } from 'vue'; import { computed, ref } from 'vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import VnUserLink from 'src/components/ui/VnUserLink.vue';
import { toCurrency, toPercentage, toDate, dashOrCurrency } from 'src/filters'; import { toCurrency, toPercentage, toDate, dashOrCurrency } from 'src/filters';
import CardSummary from 'components/ui/CardSummary.vue'; import CardSummary from 'components/ui/CardSummary.vue';
import VnLv from 'src/components/ui/VnLv.vue'; import VnLv from 'src/components/ui/VnLv.vue';
@ -26,6 +24,7 @@ const $props = defineProps({
const entityId = computed(() => $props.id || route.params.id); const entityId = computed(() => $props.id || route.params.id);
const customer = computed(() => summary.value.entity); const customer = computed(() => summary.value.entity);
const summary = ref(); const summary = ref();
const defaulterAmount = computed(() => customer.value.defaulters[0]?.amount); const defaulterAmount = computed(() => customer.value.defaulters[0]?.amount);
jsegarra marked this conversation as resolved Outdated
Outdated
Review

No se usa no?

No se usa no?

En quasar build no sale el warning.
Se usa en el onMounted

En quasar build no sale el warning. Se usa en el onMounted
const balanceDue = computed(() => { const balanceDue = computed(() => {
const amount = defaulterAmount.value; const amount = defaulterAmount.value;
@ -38,11 +37,11 @@ const balanceDue = computed(() => {
const balanceDueWarning = computed(() => (defaulterAmount.value ? 'negative' : '')); const balanceDueWarning = computed(() => (defaulterAmount.value ? 'negative' : ''));
const claimRate = computed(() => { const claimRate = computed(() => {
return customer.value.claimsRatio?.claimingRate ?? 0; return customer.value.claimsRatio.claimingRate;
}); });
const priceIncreasingRate = computed(() => { const priceIncreasingRate = computed(() => {
return customer.value.claimsRatio?.priceIncreasing ?? 0 / 100; return customer.value.claimsRatio.priceIncreasing / 100;
}); });
const debtWarning = computed(() => { const debtWarning = computed(() => {
@ -56,11 +55,6 @@ const creditWarning = computed(() => {
return tooMuchInsurance || noCreditInsurance ? 'negative' : ''; return tooMuchInsurance || noCreditInsurance ? 'negative' : '';
}); });
const sumRisk = ({ clientRisks }) => {
let total = clientRisks.reduce((acc, { amount }) => acc + amount, 0);
return total;
};
</script> </script>
<template> <template>
@ -106,13 +100,7 @@ const sumRisk = ({ clientRisks }) => {
<VnLv <VnLv
:label="t('customer.summary.salesPerson')" :label="t('customer.summary.salesPerson')"
:value="entity?.salesPersonUser?.name" :value="entity?.salesPersonUser?.name"
> />
<template #value>
<VnUserLink
:name="entity.salesPersonUser?.name"
:worker-id="entity.salesPersonFk"
/> </template
></VnLv>
<VnLv <VnLv
:label="t('customer.summary.contactChannel')" :label="t('customer.summary.contactChannel')"
:value="entity?.contactChannel?.name" :value="entity?.contactChannel?.name"
@ -152,7 +140,7 @@ const sumRisk = ({ clientRisks }) => {
:url="`#/customer/${entityId}/fiscal-data`" :url="`#/customer/${entityId}/fiscal-data`"
:text="t('customer.summary.fiscalData')" :text="t('customer.summary.fiscalData')"
/> />
<VnRow class="block"> <VnRow>
<VnLv <VnLv
:label="t('customer.summary.isEqualizated')" :label="t('customer.summary.isEqualizated')"
:value="entity.isEqualizated" :value="entity.isEqualizated"
@ -161,6 +149,8 @@ const sumRisk = ({ clientRisks }) => {
:label="t('customer.summary.isActive')" :label="t('customer.summary.isActive')"
:value="entity.isActive" :value="entity.isActive"
/> />
</VnRow>
<VnRow>
<VnLv <VnLv
:label="t('customer.summary.verifiedData')" :label="t('customer.summary.verifiedData')"
:value="entity.isTaxDataChecked" :value="entity.isTaxDataChecked"
@ -169,6 +159,8 @@ const sumRisk = ({ clientRisks }) => {
:label="t('customer.summary.hasToInvoice')" :label="t('customer.summary.hasToInvoice')"
:value="entity.hasToInvoice" :value="entity.hasToInvoice"
/> />
</VnRow>
<VnRow>
<VnLv <VnLv
:label="t('customer.summary.notifyByEmail')" :label="t('customer.summary.notifyByEmail')"
:value="entity.isToBeMailed" :value="entity.isToBeMailed"
@ -187,7 +179,7 @@ const sumRisk = ({ clientRisks }) => {
/> />
<VnLv :label="t('customer.summary.bankAccount')" :value="entity.iban" /> <VnLv :label="t('customer.summary.bankAccount')" :value="entity.iban" />
<VnLv :label="t('customer.summary.dueDay')" :value="entity.dueDay" /> <VnLv :label="t('customer.summary.dueDay')" :value="entity.dueDay" />
<VnRow class="q-mt-sm block"> <VnRow class="q-mt-sm" wrap>
<VnLv :label="t('customer.summary.hasLcr')" :value="entity.hasLcr" /> <VnLv :label="t('customer.summary.hasLcr')" :value="entity.hasLcr" />
<VnLv <VnLv
:label="t('customer.summary.hasCoreVnl')" :label="t('customer.summary.hasCoreVnl')"
@ -202,7 +194,7 @@ const sumRisk = ({ clientRisks }) => {
</QCard> </QCard>
<QCard class="vn-one" v-if="entity.defaultAddress"> <QCard class="vn-one" v-if="entity.defaultAddress">
<VnTitle <VnTitle
:url="`#/customer/${entityId}/address`" :url="`#/customer/${entityId}/consignees`"
:text="t('customer.summary.consignee')" :text="t('customer.summary.consignee')"
/> />
<VnLv <VnLv
@ -267,7 +259,7 @@ const sumRisk = ({ clientRisks }) => {
<VnTitle <VnTitle
target="_blank" target="_blank"
:url="`${grafanaUrl}/d/40buzE4Vk/comportamiento-pagos-clientes?orgId=1&var-clientFk=${entityId}`" :url="`${grafanaUrl}/d/40buzE4Vk/comportamiento-pagos-clientes?orgId=1&var-clientFk=${entityId}`"
:text="t('customer.summary.payMethodFk')" :text="t('customer.summary.financialData')"
icon="vn:grafana" icon="vn:grafana"
/> />
<VnLv <VnLv
@ -293,7 +285,7 @@ const sumRisk = ({ clientRisks }) => {
<VnLv <VnLv
:label="t('customer.summary.balance')" :label="t('customer.summary.balance')"
:value="toCurrency(sumRisk(entity)) || toCurrency(0)" :value="toCurrency(entity.sumRisk) || toCurrency(0)"
:info="t('customer.summary.balanceInfo')" :info="t('customer.summary.balanceInfo')"
/> />

View File

@ -67,6 +67,7 @@ const columns = computed(() => [
fields: ['id', 'name'], fields: ['id', 'name'],
where: { role: 'salesPerson' }, where: { role: 'salesPerson' },
optionFilter: 'firstName', optionFilter: 'firstName',
useLike: false,
}, },
create: false, create: false,
columnField: { columnField: {

View File

@ -185,13 +185,12 @@ const getItemPackagingType = (ticketSales) => {
:columns="columns" :columns="columns"
:without-header="true" :without-header="true"
auto-load auto-load
:row-click="rowClick" redirect="ticket"
order="shipped DESC, id" order="shipped DESC, id"
Outdated
Review

Creo que poniendo redirect ya lo hace no?

Creo que poniendo redirect ya lo hace no?

espectacular

espectacular
:disable-option="{ card: true, table: true }" :disable-option="{ card: true, table: true }"
class="full-width" class="full-width"
:disable-infinite-scroll="true" :disable-infinite-scroll="true"
:search-url="false" :search-url="false"
redirect="ticket"
> >
<template #column-nickname="{ row }"> <template #column-nickname="{ row }">
<span class="link" @click.stop> <span class="link" @click.stop>

View File

@ -2,7 +2,7 @@
import { ref } from 'vue'; import { ref } from 'vue';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import VnInputNumber from 'components/common/VnInputNumber.vue';
import FormModelPopup from 'components/FormModelPopup.vue'; import FormModelPopup from 'components/FormModelPopup.vue';
import VnRow from 'components/ui/VnRow.vue'; import VnRow from 'components/ui/VnRow.vue';
import VnInput from 'src/components/common/VnInput.vue'; import VnInput from 'src/components/common/VnInput.vue';
@ -43,13 +43,13 @@ const attendersOptions = ref([]);
/> />
</VnRow> </VnRow>
<VnRow> <VnRow>
<VnInput <VnInputNumber
v-model="data.quantity" v-model="data.quantity"
:label="t('basicData.quantity')" :label="t('basicData.quantity')"
type="number" type="number"
min="1" min="1"
/> />
<VnInput <VnInputNumber
v-model="data.price" v-model="data.price"
:label="t('basicData.price')" :label="t('basicData.price')"
type="number" type="number"

View File

@ -285,8 +285,6 @@ const fetchAddresses = async (formData) => {
}); });
addressesOptions.value = data; addressesOptions.value = data;
addressesOptions.value = data;
const { defaultAddress } = selectedClient.value; const { defaultAddress } = selectedClient.value;
formData.addressId = defaultAddress.id; formData.addressId = defaultAddress.id;
}; };

View File

@ -307,32 +307,6 @@ Cypress.Commands.add('clickButtonsDescriptor', (id) => {
.click(); .click();
}); });
Cypress.Commands.add('openActionDescriptor', (opt) => {
cy.openActionsDescriptor();
const listItem = '[role="menu"] .q-list .q-item';
cy.contains(listItem, opt).click();
1;
});
Cypress.Commands.add('clickButtonsDescriptor', (id) => {
cy.get(`.actions > .q-card__actions> .q-btn:nth-child(${id})`)
.invoke('removeAttr', 'target')
.click();
});
Cypress.Commands.add('openActionDescriptor', (opt) => {
cy.openActionsDescriptor();
const listItem = '[role="menu"] .q-list .q-item';
cy.contains(listItem, opt).click();
1;
});
Cypress.Commands.add('clickButtonsDescriptor', (id) => {
cy.get(`.actions > .q-card__actions> .q-btn:nth-child(${id})`)
.invoke('removeAttr', 'target')
.click();
});
Cypress.Commands.add('openUserPanel', () => { Cypress.Commands.add('openUserPanel', () => {
cy.get( cy.get(
'.column > .q-avatar > .q-avatar__content > .q-img > .q-img__container > .q-img__image' '.column > .q-avatar > .q-avatar__content > .q-img > .q-img__container > .q-img__image'