fix: add required validation depends on verified data checkbox
gitea/salix-front/pipeline/pr-test This commit is unstable Details

This commit is contained in:
Javier Segarra 2025-05-12 10:19:48 +02:00
parent b993428201
commit 85e932a6b9
2 changed files with 72 additions and 39 deletions

View File

@ -62,6 +62,15 @@ async function acceptPropagate({ isEqualizated }) {
}); });
notify(t('Equivalent tax spreaded'), 'warning'); notify(t('Equivalent tax spreaded'), 'warning');
} }
const isTaxDataChecked = ref(false);
function isRequired({ isTaxDataChecked: taxDataChecked }) {
if (!isTaxDataChecked.value) {
return false;
} else {
return taxDataChecked;
}
}
</script> </script>
<template> <template>
@ -111,21 +120,27 @@ async function acceptPropagate({ isEqualizated }) {
<VnRow> <VnRow>
<VnSelect <VnSelect
:label="t('Sage tax type')" :label="t('Sage tax type')"
:options="typesTaxes" url="SageTaxTypes"
hide-selected hide-selected
option-label="vat" option-label="vat"
option-value="id" option-value="id"
v-model="data.sageTaxTypeFk" v-model="data.sageTaxTypeFk"
data-cy="sageTaxTypeFk" data-cy="sageTaxTypeFk"
:required="isRequired(data)"
:rules="[(val) => validations.required(data.sageTaxTypeFk, val)]"
/> />
<VnSelect <VnSelect
:label="t('Sage transaction type')" :label="t('Sage transaction type')"
:options="typesTransactions" url="SageTransactionTypes"
hide-selected hide-selected
option-label="transaction" option-label="transaction"
option-value="id" option-value="id"
data-cy="sageTransactionTypeFk" data-cy="sageTransactionTypeFk"
v-model="data.sageTransactionTypeFk" v-model="data.sageTransactionTypeFk"
:required="isRequired(data)"
:rules="[
(val) => validations.required(data.sageTransactionTypeFk, val),
]"
> >
<template #option="scope"> <template #option="scope">
<QItem v-bind="scope.itemProps"> <QItem v-bind="scope.itemProps">
@ -151,11 +166,11 @@ async function acceptPropagate({ isEqualizated }) {
/> />
</VnRow> </VnRow>
<VnRow> <VnRow>
<QCheckbox :label="t('Active')" v-model="data.isActive" /> <VnCheckbox :label="t('Active')" v-model="data.isActive" />
<QCheckbox :label="t('Frozen')" v-model="data.isFreezed" /> <VnCheckbox :label="t('Frozen')" v-model="data.isFreezed" />
</VnRow> </VnRow>
<VnRow> <VnRow>
<QCheckbox :label="t('Has to invoice')" v-model="data.hasToInvoice" /> <VnCheckbox :label="t('Has to invoice')" v-model="data.hasToInvoice" />
<VnCheckbox <VnCheckbox
v-model="data.isVies" v-model="data.isVies"
:label="t('globals.isVies')" :label="t('globals.isVies')"
@ -164,8 +179,8 @@ async function acceptPropagate({ isEqualizated }) {
</VnRow> </VnRow>
<VnRow> <VnRow>
<QCheckbox :label="t('Notify by email')" v-model="data.isToBeMailed" /> <VnCheckbox :label="t('Notify by email')" v-model="data.isToBeMailed" />
<QCheckbox <VnCheckbox
:label="t('Invoice by address')" :label="t('Invoice by address')"
v-model="data.hasToInvoiceByAddress" v-model="data.hasToInvoiceByAddress"
/> />
@ -177,16 +192,18 @@ async function acceptPropagate({ isEqualizated }) {
:label="t('Is equalizated')" :label="t('Is equalizated')"
:info="t('inOrderToInvoice')" :info="t('inOrderToInvoice')"
/> />
<QCheckbox :label="t('Daily invoice')" v-model="data.hasDailyInvoice" /> <VnCheckbox :label="t('Daily invoice')" v-model="data.hasDailyInvoice" />
</VnRow> </VnRow>
<VnRow> <VnRow>
<QCheckbox <VnCheckbox
:label="t('Electronic invoice')" :label="t('Electronic invoice')"
v-model="data.hasElectronicInvoice" v-model="data.hasElectronicInvoice"
/><QCheckbox />
<VnCheckbox
:label="t('Verified data')" :label="t('Verified data')"
v-model="data.isTaxDataChecked" v-model="data.isTaxDataChecked"
@update:model-value="isTaxDataChecked = !isTaxDataChecked"
/> />
</VnRow> </VnRow>
</template> </template>

View File

@ -1,18 +1,33 @@
/// <reference types="cypress" /> /// <reference types="cypress" />
function checkSageFields(isRequired = false) {
const haveAttr = isRequired ? 'have.attr' : 'not.have.attr';
cy.dataCy('sageTaxTypeFk').filter('input').should(haveAttr, 'required');
cy.dataCy('sageTransactionTypeFk').filter('input').should(haveAttr, 'required');
}
describe('Client fiscal data', () => { describe('Client fiscal data', () => {
describe('#1008', () => {
beforeEach(() => {
cy.viewport(1280, 720);
cy.login('developer');
cy.visit('#/customer/1108/fiscal-data');
});
it('Should change required value when change customer', () => {
cy.get('.q-card').should('be.visible');
checkSageFields();
cy.get('[data-cy="vnCheckboxVerified data"]').click();
checkSageFields(true);
cy.get('#searchbar input').clear();
cy.get('#searchbar input').type('1{enter}');
cy.get('.q-item > .q-item__label').should('have.text', ' #1');
checkSageFields();
});
});
describe('#1007', () => {
beforeEach(() => { beforeEach(() => {
cy.viewport(1280, 720); cy.viewport(1280, 720);
cy.login('developer'); cy.login('developer');
cy.visit('#/customer/1107/fiscal-data'); cy.visit('#/customer/1107/fiscal-data');
}); });
it.skip('Should change required value when change customer', () => {
cy.get('.q-card').should('be.visible');
cy.dataCy('sageTaxTypeFk').filter('input').should('not.have.attr', 'required');
cy.get('#searchbar input').clear();
cy.get('#searchbar input').type('1{enter}');
cy.get('.q-item > .q-item__label').should('have.text', ' #1');
cy.dataCy('sageTaxTypeFk').filter('input').should('have.attr', 'required');
});
it('check as equalizated', () => { it('check as equalizated', () => {
cy.get( cy.get(
@ -35,3 +50,4 @@ describe('Client fiscal data', () => {
).should('have.text', 'Equivalent tax spreaded'); ).should('have.text', 'Equivalent tax spreaded');
}); });
}); });
});