buli
2023-07-14 e6068da47c1bef5517c9e5fdc8c726766867ad4e
force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js
@@ -1,164 +1,192 @@
({
    doInit : function(component, event, helper) {
    doInit: function (component, event, helper) {
        let rid = component.get('v.recordId');
        let pid = null;
        if(!rid){
            pid = window.location.href.replace("https://","").split("/")[4];
        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 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")+'经销商询价');
        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 ){
        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;
                        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];
                        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);
                            // 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;
                            // }, 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);
                        }
                        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'
                        });
                    }
                    // component.set('v.fields',fields);
                    // component.set('v.staticResource',staticResource);
                    //component.set("v.showSpinner", false);
                }else{
                    component.set("v.showSpinner", false);
                } else {
                    component.set('v.showSpinner', false);
                    helper.ShowToast({
                        "message" : rv.Message,
                        "type" : "error"
                        message: 'Init error',
                        type: 'error'
                    });
                }
            }else{
                component.set("v.showSpinner", false);
                helper.ShowToast({
                    "message" : "Init error",
                    "type" : "error"
                });
            }
        });
   },
    handleLoad: function(component, event, helper) {
        console.log('recordEditForm handleSuccess')
        component.set("v.showSpinner", false);
        );
    },
    saveClick : function(component, event, helper){
    handleLoad: function (component, event, helper) {
        console.log('recordEditForm handleSuccess');
        component.set('v.showSpinner', false);
    },
    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
            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;
        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){
                    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')){
                            if (!f.get('v.value')) {
                                f.reset();
                            }
                        }
@@ -167,139 +195,152 @@
                }
            }
        }
        component.set("v.showSpinner", true);
        debugger
        component.set('v.showSpinner', true);
        debugger;
        let data = {};
        if(record_id && !isClone){
        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"){
        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"
        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();
    cancelClick: function (component, event, helper) {
        $A.get('e.force:closeQuickAction').fire();
        //component.set("v.showNewAgencyContact", false);
    },
    searchAgencyContact : function(component, event, helper){
    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'];
    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){
        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.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) {
    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)
        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"
                            message: '请先选择经销商医院',
                            type: 'warning'
                        });
                        return
                    }else if(item.field == 'Agency_Hospital__c' && item.value){
                        component.set('v.agencyHospitalId',item.value)
                        console.log('v.agencyHospitalId item.value = ' + item.value)
                        return;
                    } else if (
                        item.field == 'Agency_Hospital__c' &&
                        item.value
                    ) {
                        component.set('v.agencyHospitalId', item.value);
                        console.log(
                            'v.agencyHospitalId item.value = ' + item.value
                        );
                    }
                }
            }
        }
        // Set isModalOpen true
        component.set("v.isModalOpen", true);
        component.set('v.isModalOpen', true);
        component.find('button').set('v.disabled', true);
        helper.preparePayloadForSearchAgencyContact(component, event, helper);
     },
     closeModel: function(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.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);
       },
})
    }
});