From 80a3f59e2d3df07805bc67e329300b8de90a5b3a Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期二, 11 七月 2023 14:13:08 +0800
Subject: [PATCH] Merge branch 'LEXCommunityLiJun' into LEXUpgrade2023-Deloitte

---
 force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js |  334 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 334 insertions(+), 0 deletions(-)

diff --git a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js
new file mode 100644
index 0000000..671f8e3
--- /dev/null
+++ b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js
@@ -0,0 +1,334 @@
+({
+    doInit: function (component, event, helper) {
+        let rid = component.get('v.recordId');
+        let pid = null;
+        if (!rid) {
+            pid = window.location.href.replace('https://', '').split('/')[4];
+        }
+
+        let record_type_id = '';
+        let pageref = component.get('v.pageReference');
+        if (!record_type_id && pageref) {
+            record_type_id = pageref.state.recordTypeId
+                ? pageref.state.recordTypeId
+                : '';
+        }
+
+        let isClone = component.get('v.isClone');
+        if (!rid || isClone) {
+            component.set('v.title', $A.get('$Label.c.New') + '缁忛攢鍟嗚浠�');
+            component.set('v.recordTypeId', record_type_id);
+        } else {
+            component.set('v.title', $A.get('$Label.c.Edit') + '缁忛攢鍟嗚浠�');
+        }
+        console.log('rid: ' + rid);
+        console.log('pid: ' + pid);
+        console.log('record_type_id: ' + record_type_id);
+        component.set('v.showSpinner', true);
+        helper.CallBackAction(
+            component,
+            'Init',
+            {
+                rid: rid,
+                pid: pid,
+                //rid : component.get('v.recordId'),
+                record_type_id: record_type_id
+            },
+            function (data) {
+                console.log('data: ' + data);
+                var rv = data.getReturnValue();
+                console.log('rv:' + rv);
+                console.log('rv.Data:' + rv.Data);
+                console.log('rv.IsSuccess:' + rv.IsSuccess);
+                if (data.getState() == 'SUCCESS') {
+                    if (rv.IsSuccess) {
+                        debugger;
+                        let layout = JSON.parse(rv.Data.layout);
+                        debugger;
+                        let fields = rv.Data.fields;
+                        debugger;
+                        let staticResource = JSON.parse(rv.Data.staticResource);
+                        debugger;
+                        let section_names = layout.map((s) => s.label);
+                        debugger;
+                        // let awsData = rv.Data.awsDataIds;
+                        // section_names = layout.map(s=>s.label);
+                        component.set('v.section_names', section_names);
+                        component.set('v.layout', layout);
+                        component.set('v.fields', fields);
+                        component.set('v.staticResource', staticResource);
+                        debugger;
+                        let m = {};
+                        for (let f of staticResource.PIDetails) {
+                            m[f.SF_Field_API_Name__c] = f;
+                        }
+                        component.set('v.pi_fields_map', m);
+                        if (rv.Data && rv.Data.data) {
+                            debugger;
+                            console.log('rv.Data.data = ' + rv.Data.data);
+                            for (let s of layout) {
+                                for (let c of s.layoutColumns) {
+                                    for (let item of c.layoutItems) {
+                                        if (
+                                            rv.Data.data.hasOwnProperty(
+                                                item.field
+                                            )
+                                        ) {
+                                            item.value =
+                                                rv.Data.data[item.field];
+                                        }
+                                        if (fields.hasOwnProperty(item.field)) {
+                                            item.fi = fields[item.field];
+                                        }
+                                    }
+                                }
+                            }
+                            // component.set('v.layout',layout);
+                            component.set('v.record_data', rv.Data.data);
+                            if (rv.Data.data.Agency_Contact__r) {
+                                if (
+                                    rv.Data.data.Agency_Contact__r
+                                        .AWS_Data_Id__c
+                                ) {
+                                    helper.AwsGet(
+                                        staticResource.queryUrl,
+                                        {
+                                            dataId: rv.Data.data
+                                                .Agency_Contact__r
+                                                .AWS_Data_Id__c
+                                        },
+                                        function (data) {
+                                            console.log('data = ' + data);
+                                            if (data.object) {
+                                                component.set(
+                                                    'v.ac_name',
+                                                    data.object.name
+                                                );
+                                            }
+                                        },
+                                        staticResource.token
+                                    );
+                                }
+                            }
+                            // }, staticResource.token);
+                        } else {
+                            debugger;
+                            console.log('rv.Data.data = ' + rv.Data.data);
+                            console.log('layout = ' + layout);
+                            for (let s of layout) {
+                                for (let c of s.layoutColumns) {
+                                    for (let item of c.layoutItems) {
+                                        if (
+                                            rv.Data &&
+                                            fields.hasOwnProperty(item.field) &&
+                                            fields[item.field].References &&
+                                            fields[item.field].References.map(
+                                                (m) => m.value
+                                            ).indexOf(rv.Data.pidType) > -1
+                                        ) {
+                                            item.value = pid;
+                                        }
+                                    }
+                                }
+                            }
+                            debugger;
+                            // component.set('v.layout',layout);
+                        }
+                        // component.set('v.fields',fields);
+                        // component.set('v.staticResource',staticResource);
+                        component.set('v.showSpinner', false);
+                    } else {
+                        component.set('v.showSpinner', false);
+                        helper.ShowToast({
+                            message: rv.Message,
+                            type: 'error'
+                        });
+                    }
+                } else {
+                    component.set('v.showSpinner', false);
+                    helper.ShowToast({
+                        message: 'Init error',
+                        type: 'error'
+                    });
+                }
+            }
+        );
+    },
+    saveClick: function (component, event, helper) {
+        let staticResource = component.get('v.staticResource');
+        let record_id = component.get('v.recordId');
+        let record_type_id = component.get('v.recordTypeId');
+
+        let isClone = component.get('v.isClone');
+        let url = staticResource.newUrl;
+        let payloadPi = {};
+        if (record_id && !isClone) {
+            url = staticResource.updateUrl;
+            payloadPi['dataId'] = component.get('v.record_data').AWS_Data_Id__c;
+        }
+        let layout = component.get('v.layout');
+
+        let pi_fields_map = component.get('v.pi_fields_map');
+
+        for (let s of layout) {
+            for (let c of s.layoutColumns) {
+                for (let item of c.layoutItems) {
+                    if (pi_fields_map.hasOwnProperty(item.field)) {
+                        payloadPi[pi_fields_map[item.field].AWS_Field_API__c] =
+                            item.value;
+                    }
+
+                    if (item.behavior == 'Required' && !item.value) {
+                        let fs = component.find('field');
+                        for (let fi in fs) {
+                            let f = fs[fi];
+                            if (!f.get('v.value')) {
+                                f.reset();
+                            }
+                        }
+                        return;
+                    }
+                }
+            }
+        }
+
+        component.set('v.showSpinner', true);
+        debugger;
+        let data = {};
+        if (record_id && !isClone) {
+            data.Id = record_id;
+        }
+        for (let s of layout) {
+            for (let c of s.layoutColumns) {
+                for (let item of c.layoutItems) {
+                    if (item.field && item.behavior != 'Readonly') {
+                        data[item.field] = item.value;
+                    }
+                }
+            }
+        }
+        let x = 1;
+        helper.CallBackAction(
+            component,
+            'Save',
+            {
+                data: data,
+                transId: '1',
+                recordTypeId: record_type_id
+            },
+            function (data) {
+                component.set('v.showSpinner', false);
+                if (data.getState() == 'SUCCESS') {
+                    var rv = data.getReturnValue();
+                    console.log(rv);
+                    var sfId = null;
+                    if (rv.IsSuccess) {
+                        sfId = rv.Data.recordId;
+                        helper.ShowToast({
+                            message: '鎴愬姛',
+                            type: 'success'
+                        });
+                        if (record_id) {
+                            $A.get('e.force:closeQuickAction').fire();
+                            $A.get('e.force:refreshView').fire();
+                        } else {
+                            var sObjectEvent = $A.get(
+                                'e.force:navigateToSObject'
+                            );
+                            sObjectEvent.setParams({
+                                recordId: sfId
+                            });
+                            sObjectEvent.fire();
+                        }
+                    } else {
+                        helper.ShowToast({
+                            message: rv.Message,
+                            type: 'error'
+                        });
+                    }
+                } else {
+                    helper.ShowToast({
+                        message: 'Init error',
+                        type: 'error'
+                    });
+                }
+            }
+        );
+    },
+    cancelClick: function (component, event, helper) {
+        $A.get('e.force:closeQuickAction').fire();
+        //component.set("v.showNewAgencyContact", false);
+    },
+    searchAgencyContact: function (component, event, helper) {
+        component.find('button').set('v.disabled', true);
+        helper.resetTable();
+        helper.preparePayloadForSearchAgencyContact(component, event, helper);
+    },
+    initContactTable: function (component, event, helper) {
+        let cols = ['Name', 'AgencyHospital', 'DoctorDivision1', 'Type'];
+        let contactInfoList = [];
+        let awsDataIds = [];
+        let data = component.get('v.result');
+        if (data.object) {
+            for (var i = 0; i < data.object.length; i++) {
+                if (data.object[i].dataId) {
+                    let contactInfo = new Object();
+                    //闇�瑕佷慨鏀�
+                    contactInfo.Name = data.object[i].name;
+                    contactInfo.DoctorDivision1 =
+                        data.object[i].doctorDivision1;
+                    contactInfo.AWSDataId = data.object[i].dataId;
+                    contactInfo.Type = data.object[i].type;
+                    contactInfo.pi = true;
+                    awsDataIds.push(contactInfo.AWSDataId);
+                    contactInfo.sfRecordId = '';
+                    contactInfoList.push(contactInfo);
+                }
+            }
+        }
+        let AWSIdToSFIdMapValue = {};
+    },
+    openModel: function (component, event, helper) {
+        let layout = component.get('v.layout');
+        for (let s of layout) {
+            for (let c of s.layoutColumns) {
+                for (let item of c.layoutItems) {
+                    if (item.field == 'Agency_Hospital__c' && !item.value) {
+                        console.log('item.value = ' + item.value);
+                        helper.ShowToast({
+                            message: '璇峰厛閫夋嫨缁忛攢鍟嗗尰闄�',
+                            type: 'warning'
+                        });
+                        return;
+                    }
+                }
+            }
+        }
+        // Set isModalOpen true
+        component.set('v.isModalOpen', true);
+        component.find('button').set('v.disabled', true);
+        helper.preparePayloadForSearchAgencyContact(component, event, helper);
+    },
+
+    closeModel: function (component, event, helper) {
+        // Set isModalOpen false
+        component.set('v.isModalOpen', false);
+    },
+
+    saveDetails: function (component, event, helper) {
+        //do something
+        component.set('v.isModalOpen', false);
+    },
+
+    showNewAgency: function (component, event, helper) {
+        //do something
+        component.set('v.showNewAgencyContact', true);
+    },
+    closeAgencyContact: function (component, event, helper) {
+        var message = event.getParam('showNewAgencyContact');
+        component.set('v.showNewAgencyContact', message);
+        component.find('button').set('v.disabled', true);
+        helper.resetTable();
+        helper.preparePayloadForSearchAgencyContact(component, event, helper);
+    }
+});

--
Gitblit v1.9.1