SOURCE

if (typeof (Aden) == "undefined") {
    Aden = { __namespace: true };
}
if (typeof (Aden.Account) == "undefined") {
    Aden.Account = { __namespace: true };
}
Aden.Account = {
    _executionContext: null,
    _structureLookUp: function (result, field) {
        var id = result[field];
        if (id != null) {
            var entityType = result[field + "@Microsoft.Dynamics.CRM.lookuplogicalname"];
            var name = result[field + "@OData.Community.Display.V1.FormattedValue"];
            var lookup = new Array(1);
            lookup[0] = new Object();
            lookup[0].id = id;
            lookup[0].name = name;
            lookup[0].entityType = entityType;
            return lookup;
        }
        else {
            return null;
        }
    }
}
// 按钮事件
Aden.Account.RibbonEvents = {
    //工商查询按钮
    VietinBanhSearch_Button: function () {
        Xrm.Page.data.save().then(function () {
            var name = Xrm.Page.getAttribute("name").getValue();
            var Webname = "new_Aden/htmls/VietinBanhSearchPage.html";
            var data = "name=" + name;
            var Info = Aden.Utilities.InlineDialog.deviceBrowser();
            var width = window.screen.width;
            var height = window.screen.height;
            if (Info.mobile) {
                height = height * 0.6;
                width = width * 0.95;
            } else {
                width = 800;
                height = 600;
            }
            data += "&IsPhone=" + Info.mobile;
            Aden.Utilities.InlineDialog.OpenWebResource(Webname, data, width, height, "Enterprise Query Results");
        });
    },
    //工商查询修订按钮
    VietinBanhSearchFix_Button: function () {
        Xrm.Page.data.save().then(function () {
            var Webname = "new_Aden/htmls/VietinBanhSearchPage.html";
            var data = "name=" + '';
            var Info = Aden.Utilities.InlineDialog.deviceBrowser();
            var width = window.screen.width;
            var height = window.screen.height;
            if (Info.mobile) {
                height = height * 0.6;
                width = width * 0.95;
            } else {
                width = 800;
                height = 600;
            }
            data += "&IsPhone=" + Info.mobile;
            Aden.Utilities.InlineDialog.OpenWebResource(Webname, data, width, height, "Enterprise Query Results");
        });
    },
    //工商查询修订按钮显隐
    VietinBanhSearchFixHidden_Button: function () {
        var createType = Xrm.Page.getAttribute("new_createtype").getValue();
        var ButtonIdentifier = "Button_VietinBanhSearchFix_Accounts";
        var result = this.CallAction(ButtonIdentifier);
        if (result.IsDisplay == true && createType == 1) {
            return true;
        }
        else { return false; }

    },
    //审核按钮
    Audit_Button: function () {
        Xrm.Page.data.save().then(function () {
            var AccountType = Xrm.Page.getAttribute("new_accounttype")
            var Bank = Xrm.Page.getAttribute("new_bank")
            var Bankacount = Xrm.Page.getAttribute("new_bankacount")
            var BillingName = Xrm.Page.getAttribute("new_billingname")
            var Taxpayeridentifyno = Xrm.Page.getAttribute("new_taxpayeridentifyno")
            var businessPhone = Xrm.Page.getAttribute("new_businessphone")
            var RegisteredAddress = Xrm.Page.getAttribute("new_registeredaddress")
            var ret = true;
            if (AccountType == undefined || AccountType == "" || AccountType == null)
                ret = false;
            if (Bank == undefined || Bank == "" || Bank == null)
                ret = false;
            if (Bankacount == undefined || Bankacount == "" || Bankacount == null)
                ret = false;
            if (BillingName == undefined || BillingName == "" || BillingName == null)
                ret = false;
            if (BillingName == undefined || BillingName == "" || BillingName == null)
                ret = false;
            if (Taxpayeridentifyno == undefined || Taxpayeridentifyno == "" || Taxpayeridentifyno == null)
                ret = false;
            if (RegisteredAddress == undefined || RegisteredAddress == "" || RegisteredAddress == null)
                ret = false;
            if (businessPhone == undefined || businessPhone == "" || businessPhone == null)
                ret = false;
            if (ret) {
                Xrm.Page.getAttribute("new_auditstatus").setValue(2);
                Xrm.Page.getAttribute("new_auditstatus").setSubmitMode("always");
                var lookupObject = {};
                lookupObject.id = Xrm.Page.context.getUserId();
                lookupObject.entityType = "systemuser";
                lookupObject.name = Xrm.Page.context.getUserName();
                var value1 = [];
                value1[0] = lookupObject;
                Xrm.Page.getAttribute("new_checkoperationman").setValue(value1);
                Xrm.Page.getAttribute("new_checkoperationman").setSubmitMode("always");
                Xrm.Page.getAttribute("new_checkdate").setValue(new Date());
                Xrm.Page.getAttribute("new_checkdate").setSubmitMode("always");
                Xrm.Page.data.entity.save();

                Aden.Account.RibbonEvents.DisableButton();
            } else {
                Xrm.Utility.alertDialog("客户审核项不能为空!");
            }
        });
    },
    //审核按钮隐藏
    AuditHidden_Button: function () {
        var audit = Xrm.Page.getAttribute("new_auditstatus").getValue();
        var ButtonIdentifier = "Button_Audit_Accounts";
        var result = this.CallAction(ButtonIdentifier);
        if (result.IsDisplay == true && audit == 1) {
            return true;
        }
        else { return false; }
    },
    //修订按钮
    Revise_Button: function () {
        Xrm.Page.data.save().then(function () {
            Xrm.Page.getAttribute("new_auditstatus").setValue(1);
            Xrm.Page.getAttribute("new_auditstatus").setSubmitMode("always");
            var lookupObject = {};
            lookupObject.id = Xrm.Page.context.getUserId();
            lookupObject.entityType = "systemuser";
            lookupObject.name = Xrm.Page.context.getUserName();
            var value1 = [];
            value1[0] = lookupObject;
            Xrm.Page.getAttribute("new_reviser").setValue(value1);
            Xrm.Page.getAttribute("new_reviser").setSubmitMode("always");
            Xrm.Page.getAttribute("new_revisedate").setValue(new Date());
            Xrm.Page.getAttribute("new_revisedate").setSubmitMode("always");
            Xrm.Page.data.entity.save();
            Aden.Account.RibbonEvents.OpenButton();
        });
    },
    //禁用按钮
    DisableButton: function () {
        Xrm.Page.data.save().then(function () {
            Xrm.Page.getControl("new_accounttype").setDisabled(true);
            Xrm.Page.getControl("new_bank").setDisabled(true);
            Xrm.Page.getControl("new_bankacount").setDisabled(true);
            Xrm.Page.getControl("new_billingname").setDisabled(true);
            Xrm.Page.getControl("new_taxpayeridentifyno").setDisabled(true);
            Xrm.Page.getControl("new_businessphone").setDisabled(true);
            Xrm.Page.getControl("new_registeredaddress").setDisabled(true);
        });
    },
    //开锁按钮
    OpenButton: function () {
        Xrm.Page.data.save().then(function () {
            Xrm.Page.getControl("new_accounttype").setDisabled(false);
            Xrm.Page.getControl("new_bank").setDisabled(false);
            Xrm.Page.getControl("new_bankacount").setDisabled(false);
            Xrm.Page.getControl("new_billingname").setDisabled(false);
            Xrm.Page.getControl("new_taxpayeridentifyno").setDisabled(false);
            Xrm.Page.getControl("new_businessphone").setDisabled(false);
            Xrm.Page.getControl("new_registeredaddress").setDisabled(false);
        });
    },
    //同步erp按钮
    SynERP: function () {
        Xrm.Page.data.save().then(function () {
            var createType = Xrm.Page.getAttribute("new_createtype").getValue();
            var auditStatus = Xrm.Page.getAttribute("new_auditstatus").getValue();
            //“创建方式”不等于“自动”,且“审核状态”不等于“已审核”
            if (createType != 1 && auditStatus != 2) {
                Xrm.Utility.alertDialog("在此之前,请先执行工商查询,并填写客户的银行账户信息!Please use 'Enterprise query' to check company information, and fill in the complete bank account information!");
            }
            //“创建方式”不等于“自动”
            if (createType != 1 && auditStatus == 2) {
                Xrm.Utility.alertDialog("在此之前,请先执行工商查询操作以完善客户信息!Please use 'Enterprise query' to check company information first!");
            }
            //“审核状态”不等于“已审核”
            if (auditStatus != 2 && createType == 1) {
                Xrm.Utility.alertDialog("在此之前,请先确认客户窗体上是否已填写完整的客户账户信息!Please fill in the complete bank account information on the account form first!");
            }
            //“创建方式”为“自动”,且“审核状态”为“已审核”
            if (createType == 1 && auditStatus == 2) {
                //弹出客户页面
                var Webname = "new_Aden/htmls/BusinessEntitySearch.html";
                var clientUrl = Xrm.Page.context.getClientUrl();
                var data =
                    { "clientUrl": clientUrl };
                Aden.Utilities.InlineDialog.OpenWebResource(Webname, data, 635, 575, "请选择商业实体");
            }
        });
    },
    //同步按钮显隐
    SynERPHidden_Button: function () {
        debugger;
        var ButtonIdentifier = "Button_SynERP_Accounts";
        var result = this.CallAction(ButtonIdentifier);
        if (result.IsDisplay == true) {
            return true;
        }
        else { return false; }
    },
    //发票抬头按钮
    BankAccountButton: function () {
        Xrm.Page.data.save().then(function () {
            var auditStatus = Xrm.Page.getAttribute("new_auditstatus").getValue();
            if (auditStatus == 1) {
                var Webname = "new_Aden/htmls/BankAccount.html";
                var clientUrl = Xrm.Page.context.getClientUrl();
                var data =
                    { "clientUrl": clientUrl };
                Aden.Utilities.InlineDialog.OpenWebResource(Webname, data, 550, 525, "请填写客户账户信息");
            }
        });
    },
    //发票抬头按钮显隐
    BankAccountHidden_Button: function () {
        var audit = Xrm.Page.getAttribute("new_auditstatus").getValue();
        var ButtonIdentifier = "Button_BankAccount_Accounts";
        var result = this.CallAction(ButtonIdentifier);
        if (result.IsDisplay == true && audit == 1) {
            return true;
        }
        else { return false; }
    },
    //保存事件
    OnSave: function (executionContext) {
        var createType = Xrm.Page.getAttribute("new_createtype").getValue();
        if (createType != null && createType == 2) {
            var isPassOnSave = false;
            var recdId = Xrm.Page.data.entity.getId();
            var serverURL = Xrm.Page.context.getClientUrl();
            var entityId = Xrm.Page.data.entity.getId().replace('{', '').replace('}', '');
            var accountName = Xrm.Page.getAttribute("name").getValue();
            var creditCode = Xrm.Page.getAttribute("new_creditcode").getValue();
            if (accountName == null)
                accountName = "";
            if (creditCode == null)
                creditCode = "";
            //var query = "accounts(" + entityId + ")/Microsoft.Dynamics.CRM.new_DuplicateAccount";
            var query = "new_DuplicateAccount";
            var data = {
                "AccountName": accountName,
                "EntityRecordId": recdId,
                "CreditCode": creditCode
            };
            var req = new XMLHttpRequest();
            req.open("POST", serverURL + "/api/data/v9.1/" + query, false);
            req.setRequestHeader("Accept", "application/json");
            req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            req.setRequestHeader("OData-MaxVersion", "4.0");
            req.setRequestHeader("OData-Version", "4.0");
            req.onreadystatechange = function () {
                if (this.readyState == 4 /* complete */) {
                    req.onreadystatechange = null;
                    if (this.status == 200) {
                        var result = JSON.parse(this.response);
                        isPassOnSave = result.IsDuplicate;
                    } else {
                        var error = JSON.parse(this.response);
                    }
                }
            };
            req.send(window.JSON.stringify(data));
            if (isPassOnSave == true) {
                var alertStrings = { confirmButtonLabel: "OK", text: "This record might be a duplicate of one of the active accounts. Unable to save successfully!", title: "Information" };
                var alertOptions = { height: 120, width: 300 };
                Xrm.Navigation.openAlertDialog(alertStrings, alertOptions).then(
                    function success(result) {
                    },
                    function (error) {
                    }
                );
                executionContext.getEventArgs().preventDefault();
            }
        }

        //简称强控
        var isletter = false;
        var abbrName = '';

        if (Xrm.Page.getAttribute("new_accountnameabbr") != null || Xrm.Page.getAttribute("new_accountnameabbr") != undefined) {
            abbrName = Xrm.Page.getAttribute("new_accountnameabbr").getValue();
            isletter = /^([a-zA-z]{4})$/.test(abbrName);
            if (isletter == true) {
                abbrName = abbrName.toUpperCase();
                Xrm.Page.getAttribute("new_accountnameabbr").setValue(abbrName);
            }
            else {
                alert("客户简称(Abbreviation)填写不符合规范,必须为四位字母");
                executionContext.getEventArgs().preventDefault();
            }
        }
    },
    //button显隐性规则判断
    CallAction: function (ButtonIdentifier) {
        var serverURL = Xrm.Page.context.getClientUrl();
        var query = "new_ButtonBusinessRule";
        var entityName = Xrm.Page.data.entity.getEntityName();
        var entityId = Xrm.Page.data.entity.getId().replace("{", "").replace("}", "").toLowerCase();
        var UserId = Xrm.Page.context.getUserId().replace("{", "").replace("}", "").toLowerCase();

        var data = {
            "EntityName": entityName,
            "UserId": UserId,
            "ButtonIdentifier": ButtonIdentifier,
            "EntityId": entityId
        };
        var result = null;
        var req = new XMLHttpRequest();
        req.open("POST", serverURL + "/api/data/v9.1/" + query, false);
        req.setRequestHeader("Accept", "application/json");
        req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
        req.setRequestHeader("OData-MaxVersion", "4.0");
        req.setRequestHeader("OData-Version", "4.0");
        req.onreadystatechange = function () {
            if (this.readyState == 4 /* complete */) {
                req.onreadystatechange = null;
                if (this.status == 200) {
                    var dataStr = JSON.parse(this.response);
                    result = dataStr;
                }
                else {
                    var error = JSON.parse(this.response);
                    result = {
                        IsSucceed: false,
                        ErrorMsg: error.OutMsg
                    }
                }
            }
        };
        req.send(window.JSON.stringify(data));
        return result;
    },
}
// 页面事件
Aden.Account.FormEvents = {
    onLoad: function (executionContext) {
        Aden.Account._executionContext = executionContext;
        var formContext = executionContext.getFormContext();
        var type = formContext.ui.getFormType();
        if (type == 1) {
            formContext.getAttribute("new_createtype").setValue(2);
            formContext.getAttribute("new_createtype").setSubmitMode("always");
                }
        this.setAccountTypeField();
        if (formContext.getAttribute("parentaccountid") != null) {
            formContext.getAttribute("parentaccountid").addOnChange(this.SetAccountAssociatedFieldVaule);
        }
        var audit = Xrm.Page.getAttribute("new_auditstatus").getValue();
        if (audit == 2) {
            if (Xrm.Page.getControl("new_taxpayeridentifyno") != null) {
                Xrm.Page.getControl("new_taxpayeridentifyno").setDisabled(true);
            }
            if (Xrm.Page.getControl("new_billingname") != null) {
                Xrm.Page.getControl("new_billingname").setDisabled(true);
            }
            if (Xrm.Page.getControl("new_bank") != null) {
                Xrm.Page.getControl("new_bank").setDisabled(true);
            }
            if (Xrm.Page.getControl("new_bankacount") != null) {
                Xrm.Page.getControl("new_bankacount").setDisabled(true);
            }
            if (Xrm.Page.getControl("new_businessphone") != null) {
                Xrm.Page.getControl("new_businessphone").setDisabled(true);
            }
            if (Xrm.Page.getControl("new_auditstatus") != null) {
                Xrm.Page.getControl("new_auditstatus").setDisabled(true);
            }
        }

        this.hiddenOpportunityTab(formContext);
        //this.AccountstatusByContractStatus(formContext);
    },
    SetAccountAssociatedFieldVaule: function () {
        var formContext = Aden.Account._executionContext.getFormContext();
        var ParentAccount = formContext.getAttribute("parentaccountid").getValue();
        if (ParentAccount != null) {
            Xrm.WebApi.retrieveRecord("account", ParentAccount[0].id, "?$select=ownershipcode,_new_sector_value,_new_subsector_value,new_isstrategicaccount").then(
                function success(result) {
                    if (result != null) {
                        formContext.getAttribute("ownershipcode").setValue(result.ownershipcode);
                        var objSector = Aden.Account.FormEvents._structureLookUp(result, "_new_sector_value");
                        formContext.getAttribute("new_sector").setValue(objSector);
                        var objSubSector = Aden.Account.FormEvents._structureLookUp(result, "_new_subsector_value");
                        formContext.getAttribute("new_subsector").setValue(objSubSector);
                        formContext.getAttribute("new_isstrategicaccount").setValue(result.new_isstrategicaccount);
                    }
                },
                function (error) {
                    console.log(error.message);
                    // handle error conditions
                }
            );
        }
        else {
            formContext.getAttribute("ownershipcode").setValue(null);
        }
    },
    _structureLookUp: function (result, field) {
        var id = result[field];
        if (id != null) {
            var entityType = result[field + "@Microsoft.Dynamics.CRM.lookuplogicalname"];
            var name = result[field + "@OData.Community.Display.V1.FormattedValue"];
            var lookup = new Array(1);
            lookup[0] = new Object();
            lookup[0].id = id;
            lookup[0].name = name;
            lookup[0].entityType = entityType;
            return lookup;
        }
        else {
            return null;
        }
    },
    setAccountTypeField: function () {
        var fetchxml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>" +
            "<entity name='systemuser' >" +
            "<attribute name='fullname' />" +
            "<attribute name='businessunitid' />" +
            "<attribute name='title' />" +
            "<attribute name='address1_telephone1' />" +
            "<attribute name='positionid' />" +
            "<attribute name='systemuserid' />" +
            "<order attribute='fullname' descending='false' />" +
            "<link-entity name='teammembership' from='systemuserid' to='systemuserid' visible='false' intersect='true'>" +
            "<link-entity name='team' from='teamid' to='teamid' alias='ab'>" +
            "<filter type='and'>" +
            "<condition attribute='name' operator='eq' value='BA Security Field' />" +
            "</filter>" +
            "</link-entity>" +
            "</link-entity>" +
            "</entity >" +
            "</fetch >";
        Xrm.WebApi.retrieveMultipleRecords("systemuser", "?fetchXml= " + fetchxml).then(
            function success(result) {
                var formContext = Aden.Account._executionContext.getFormContext();
                var userId = Xrm.Utility.getGlobalContext().userSettings.userId.replace('}', '').replace('{', '').toLocaleUpperCase();
                var isVaildUser = false;
                for (var i = 0; i < result.entities.length; i++) {
                    var systemuserid = result.entities[i].systemuserid.replace('}', '').replace('{', '').toLocaleUpperCase();
                    if (systemuserid == userId) {
                        isVaildUser = true;
                        break;
                    }
                }
                if (isVaildUser == true) {
                    formContext.getControl("new_accounttype").setDisabled(false);
                } else {
                    var type = formContext.ui.getFormType();
                    if (type == 1) {
                        formContext.getAttribute("new_accounttype").setValue(3);
                        formContext.getAttribute("new_accounttype").setSubmitMode("always");
                        formContext.getAttribute("new_accounttype").fireOnChange();
                    }
                    formContext.getControl("new_accounttype").setDisabled(true);
                }
            },
            function (error) {
                console.log(error.message);
            }
        );
    },
    hiddenOpportunityTab: function (formContext) {
        debugger;
        if (formContext.getControl("gridASAPOpportunities") != null)
            formContext.getControl("gridASAPOpportunities").setVisible(false);
        if (formContext.getControl("guidCATOpportunities") != null)
            formContext.getControl("guidCATOpportunities").setVisible(false);
        if (formContext.getControl("gridEnergyOpportunities") != null)
            formContext.getControl("gridEnergyOpportunities").setVisible(false);
        if (formContext.getControl("gridSECOpportunities") != null)
            formContext.getControl("gridSECOpportunities").setVisible(false);
        if (formContext.getControl("gridCLNOpportunities") != null)
            formContext.getControl("gridCLNOpportunities").setVisible(false);
        if (formContext.getControl("RemoteSiteofAccount") != null)
            formContext.getControl("RemoteSiteofAccount").setVisible(false);
        if (formContext.getControl("gridTAMOpportunities") != null)
            formContext.getControl("gridTAMOpportunities").setVisible(false);
        if (formContext.getControl("Otheropps") != null)
            formContext.getControl("Otheropps").setVisible(false);

        var recordId = Xrm.Page.data.entity.getId();
        var arr = new Array();
        var fetchxml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
            "<entity name='new_businessline'>" +
            "<attribute name='new_businesslineid' />" +
            "<attribute name='new_name' />" +
            "<attribute name='createdon' />" +
            "<order attribute='new_name' descending='false' />" +
            "<filter type='and'>" +
            "<condition attribute='statecode' operator='eq' value='0' />" +
            "</filter>" +
            "</entity>" +
            "</fetch>";
        Xrm.WebApi.retrieveMultipleRecords("new_businessline", "?fetchXml= " + fetchxml).then(
            function success(result) {
                if (result.entities.length > 0) {
                    for (var j = 0; j < result.entities.length; j++) {
                        var businesslineId = result.entities[j].new_businesslineid.replace('}', '').replace('{', '').toLocaleUpperCase();
                        var name = result.entities[j].new_name;

                        arr[j] = {
                            businesslineId: businesslineId,
                            name: name
                        }

                        var fetchxml1 = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='true'>" +
                            "<entity name='opportunity'>" +
                            "<attribute name='name' />" +
                            "<attribute name='customerid' />" +
                            "<attribute name='estimatedvalue' />" +
                            "<attribute name='statuscode' />" +
                            "<attribute name='opportunityid' />" +
                            "<order attribute='name' descending='false' />" +
                            "<filter type='and'>" +
                            "<condition attribute='parentaccountid' operator='eq' value='" + recordId + "' />" +
                            "</filter>" +
                            "<link-entity name='new_servicetypeofopps' from='new_opportunity' to='opportunityid' link-type='inner' alias='ae'>" +
                            "<filter type='and'>" +
                            "<condition attribute='new_businessline' operator='eq' value='" + businesslineId + "' />" +
                            "<condition attribute='statecode' operator='eq' value='0' />" +
                            "</filter>" +
                            "</link-entity>" +
                            "<link-entity name='new_businesstype' from='new_businesstypeid' to='new_businesstype' visible='false' link-type='outer' alias='bus'>" +
                            "<attribute name='new_businessline' alias='business' />" +
                            "</link-entity>" +
                            "</entity>" +
                            "</fetch>";
                        Xrm.WebApi.retrieveMultipleRecords("opportunity", "?fetchXml= " + fetchxml1).then(
                            function success(result) {
                                if (result.entities.length > 0) {
                                    for (var i = 0; i < result.entities.length; i++) {
                                        var businessline = result.entities[i].business.replace('}', '').replace('{', '').toLocaleUpperCase();
                                        for (var y = 0; y < arr.length; y++) {
                                            if (arr[y].businesslineId == businessline) {
                                                if (arr[y].name == "ASAP/Robotics") {
                                                    formContext.getControl("gridASAPOpportunities").setVisible(true);
                                                }
                                                else if (arr[y].name == "Food Service") {
                                                    formContext.getControl("guidCATOpportunities").setVisible(true);
                                                }
                                                else if (arr[y].name == "Energy") {
                                                    formContext.getControl("gridEnergyOpportunities").setVisible(true);
                                                }
                                                else if (arr[y].name == "Security") {
                                                    formContext.getControl("gridSECOpportunities").setVisible(true);
                                                }
                                                else if (arr[y].name == "Cleaning") {
                                                    formContext.getControl("gridCLNOpportunities").setVisible(true);
                                                }
                                                else if (arr[y].name == "Remote Site") {
                                                    formContext.getControl("RemoteSiteofAccount").setVisible(false);
                                                }
                                                else if (arr[y].name == "Maintenance") {
                                                    formContext.getControl("gridTAMOpportunities").setVisible(true);
                                                }
                                                else if (arr[y].name == "Other") {
                                                    formContext.getControl("Otheropps").setVisible(true);
                                                }
                                            }
                                        }
                                    }
                                }
                            },
                            function (error) {
                                alert(error);
                            }
                        );

                    }
                }
            },
            function (error) {
                alert(error);
            }
        );
    },
    AccountstatusByContractStatus: function (formContext) {
        var recordId = Xrm.Page.data.entity.getId();
        var fetchxml = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
            "<entity name='new_adencontracts'>" +
            "<attribute name='new_name' />" +
            "<attribute name='createdon' />" +
            "<attribute name='new_status' />" +
            "<attribute name='ownerid' />" +
            "<attribute name='new_monthlyamountnotax' />" +
            "<attribute name='new_corporateentity' />" +
            "<attribute name='new_startdate' />" +
            "<attribute name='new_enddate' />" +
            "<attribute name='new_contractid' />" +
            "<attribute name='new_businessline' />" +
            "<attribute name='new_account' />" +
            "<attribute name='new_adencontractsid' />" +
            "<order attribute='new_name' descending='false' />" +
            "<filter type='and'>" +
            "<condition attribute='new_account' operator='eq' value='" + recordId + "' />" +
            "<condition attribute='new_status' operator='eq' value='2' />" +
            "<condition attribute='statecode' operator='eq' value='0' />" +
            "</filter>" +
            "</entity>" +
            "</fetch>";
        Xrm.WebApi.retrieveMultipleRecords("new_adencontracts", "?fetchXml= " + fetchxml).then(
            function success(result) {
                if (result.entities.length > 0) {
                    formContext.getAttribute("new_accountstatus").setValue(3);
                    formContext.getAttribute("new_accountstatus").setSubmitMode("always");
                    Xrm.Page.data.entity.save();
                }
            },
            function (error) {
                console.log(error.message);
            }
        );
        var fetchxml1 = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>" +
            "<entity name='new_adencontracts'>" +
            "<attribute name='new_name' />" +
            "<attribute name='createdon' />" +
            "<attribute name='new_status' />" +
            "<attribute name='ownerid' />" +
            "<attribute name='new_monthlyamountnotax' />" +
            "<attribute name='new_corporateentity' />" +
            "<attribute name='new_startdate' />" +
            "<attribute name='new_enddate' />" +
            "<attribute name='new_contractid' />" +
            "<attribute name='new_businessline' />" +
            "<attribute name='new_account' />" +
            "<attribute name='new_adencontractsid' />" +
            "<order attribute='new_name' descending='false' />" +
            "<filter type='and'>" +
            "<condition attribute='new_account' operator='eq' value='" + recordId + "' />" +
            "<condition attribute='new_status' operator='ne' value='2' />" +
            "<condition attribute='statecode' operator='eq' value='0' />" +
            "<filter type='or'>" +
            "<condition attribute='new_status' operator='eq' value='5' />" +
            "<condition attribute='new_status' operator='eq' value='3' />" +
            "</filter>" +
            "</filter>" +
            "</entity>" +
            "</fetch>";
        Xrm.WebApi.retrieveMultipleRecords("new_adencontracts", "?fetchXml= " + fetchxml1).then(
            function success(result) {
                if (result.entities.length > 0) {
                    formContext.getAttribute("new_accountstatus").setValue(5);
                    formContext.getAttribute("new_accountstatus").setSubmitMode("always");
                    Xrm.Page.data.entity.save();
                }
            },
            function (error) {
                console.log(error.message);
            }
        );

    }
}
console 命令行工具 X clear

                    
>
console