From cf4393550881bc358e1a92ec87dfa19900303e59 Mon Sep 17 00:00:00 2001 From: Muhammed Raihan P A <99407382+pu-raihan@users.noreply.github.com> Date: Wed, 19 Feb 2025 01:22:54 -0800 Subject: [PATCH 1/2] clear contact details when switching from existing to new contact - Ensure previously selected contact details are removed when toggling - Clear all fields in the 'contact_details_section' when choosing an existing contact - Set 'contact' field to null when switching to a new contact - Prevents unnecessary data from being sent to the API --- frontend/src/components/Modals/DealModal.vue | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/frontend/src/components/Modals/DealModal.vue b/frontend/src/components/Modals/DealModal.vue index 9c38f1ef..068feed1 100644 --- a/frontend/src/components/Modals/DealModal.vue +++ b/frontend/src/components/Modals/DealModal.vue @@ -190,6 +190,24 @@ function createDeal() { if (deal.website && !deal.website.startsWith('http')) { deal.website = 'https://' + deal.website } + if (chooseExistingContact.value) { + const contactDetailsFields = new Set( + tabs.data.flatMap((tab) => + tab.sections + .filter((section) => section.name === 'contact_details_section') + .flatMap((section) => + section.columns.flatMap((column) => + column.fields.map((field) => field.fieldname), + ), + ), + ), + ) + + contactDetailsFields.forEach((field) => { + deal[field] = null + }) + } else deal['contact'] = null + createResource({ url: 'crm.fcrm.doctype.crm_deal.crm_deal.create_deal', params: { args: deal }, From 7a759f629609ff3e63bda3db6b4d6077ae0f9fdb Mon Sep 17 00:00:00 2001 From: Muhammed Raihan P A <99407382+pu-raihan@users.noreply.github.com> Date: Thu, 20 Feb 2025 21:15:09 -0800 Subject: [PATCH 2/2] only clearing first_name, mobile_no, email, last_name while contact exist --- frontend/src/components/Modals/DealModal.vue | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/Modals/DealModal.vue b/frontend/src/components/Modals/DealModal.vue index 068feed1..7bd0b592 100644 --- a/frontend/src/components/Modals/DealModal.vue +++ b/frontend/src/components/Modals/DealModal.vue @@ -191,21 +191,10 @@ function createDeal() { deal.website = 'https://' + deal.website } if (chooseExistingContact.value) { - const contactDetailsFields = new Set( - tabs.data.flatMap((tab) => - tab.sections - .filter((section) => section.name === 'contact_details_section') - .flatMap((section) => - section.columns.flatMap((column) => - column.fields.map((field) => field.fieldname), - ), - ), - ), - ) - - contactDetailsFields.forEach((field) => { - deal[field] = null - }) + deal['first_name'] = null + deal['last_name'] = null + deal['email'] = null + deal['mobile_no'] = null } else deal['contact'] = null createResource({