From 327afe8311226da71794e546f44584276b8b894f Mon Sep 17 00:00:00 2001 From: provira Date: Wed, 14 May 2025 12:02:34 +0200 Subject: [PATCH 1/8] feat: refs #8825 add functionality to terminate contract --- .../Customer/Card/CustomerCreditOpinion.vue | 106 +++++++++++++++--- 1 file changed, 88 insertions(+), 18 deletions(-) diff --git a/src/pages/Customer/Card/CustomerCreditOpinion.vue b/src/pages/Customer/Card/CustomerCreditOpinion.vue index 51d069744..09d4f5468 100644 --- a/src/pages/Customer/Card/CustomerCreditOpinion.vue +++ b/src/pages/Customer/Card/CustomerCreditOpinion.vue @@ -2,9 +2,15 @@ import { computed, ref } from 'vue'; import { useI18n } from 'vue-i18n'; import { useRoute } from 'vue-router'; +import { useQuasar } from 'quasar'; import { toCurrency, toDateHourMin } from 'src/filters'; import VnTable from 'src/components/VnTable/VnTable.vue'; +import FormModelPopup from 'src/components/FormModelPopup.vue'; +import VnInput from 'src/components/common/VnInput.vue'; +import VnConfirm from 'components/ui/VnConfirm.vue'; +import VnRow from 'components/ui/VnRow.vue'; +import axios from 'axios'; import WorkerDescriptorProxy from 'src/pages/Worker/Card/WorkerDescriptorProxy.vue'; @@ -12,6 +18,8 @@ const { t } = useI18n(); const route = useRoute(); const tableRef = ref(); +const quasar = useQuasar(); +const mainDialog = ref(); const filter = { include: [ @@ -45,26 +53,47 @@ const columns = computed(() => [ align: 'right', field: 'rating', label: t('customer.summary.rating'), - name: 'rating', - create: true, - columnCreate: { - component: 'number', - autofocus: true, - }, + name: 'rating' }, { align: 'right', field: 'recommendedCredit', format: ({ recommendedCredit }) => toCurrency(recommendedCredit), label: t('customer.summary.recommendCredit'), - name: 'recommendedCredit', - create: true, - columnCreate: { - component: 'number', - autofocus: true, - }, + name: 'recommendedCredit' }, ]); + +const defaultInitialData = { + rating: null, + recommendedCredit: null +}; + +const createRating = async (data) => { + await axios.post(`Clients/${route.params.id}/setRating`, data); + tableRef.value?.reload(); +}; + +const handleSave = async (data) => { + if (!data.rating && !data.recommendedCredit) { + quasar + .dialog({ + component: VnConfirm, + componentProps: { + title: t('terminationTitle'), + message: t('terminationMessage'), + }, + }) + .onOk(async () => { + await createRating({ rating: 0, recommendedCredit: 0 }); + + }); + } else { + await createRating(data); + } +}; + +const defaultConfirmData = {}; +en: + terminationTitle: Confirm contract termination + terminationMessage: Are you sure you want to terminate the contract? This action will set the rating and recommended credit to 0. es: Recommended credit: Crédito recomendado Since: Desde Employee: Empleado + Create rating: Crear calificación + terminationTitle: Confirmar baja de contrato + terminationMessage: ¿Está seguro que desea dar de baja el contrato? Esta acción establecerá la calificación y el crédito recomendado en 0. From d87308844b99436cbc8bf6d4fb1b1e2e7292b358 Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 15 May 2025 09:19:37 +0200 Subject: [PATCH 2/8] fix: remove unused router import and update filter syntax in VnLog --- src/components/common/VnLog.vue | 5 ++--- .../Department/Card/DepartmentDescriptor.vue | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/components/common/VnLog.vue b/src/components/common/VnLog.vue index 6e9128a43..1a180aaed 100644 --- a/src/components/common/VnLog.vue +++ b/src/components/common/VnLog.vue @@ -1,7 +1,7 @@