Untitled

 avatar
unknown
javascript
3 years ago
15 kB
6
Indexable
if (typeof (quote) === "undefined") { quote = { __namespace: true }; }
if (typeof (quote.form) === "undefined") { quote.form = { __namespace: true }; }

quote.form.showEmbargoCodeAlert = function (exeContext) {
    

    var currentAttribute = exeContext.getEventSource().controls._values[0].getName();
    if (Globals.Crm.getValue(currentAttribute) == null)
        return;
    var customerId = Globals.Crm.getValue(currentAttribute)[0].id;

    var account = Globals.Utility.getCompanyCountryId(customerId);

    if (account._rms_countryid_value === undefined || account._rms_countryid_value === null)
        return;

    var alertMessage = "";
    if (currentAttribute == "customerid")
        alertMessage = "Country of Client";
    else if (currentAttribute == "rms_localrepresentativeid")
        alertMessage = "Country of Local Representative";
    else if (currentAttribute == "rms_enduserid")
        alertMessage = "Country of End User";

    Globals.Utility.showEmbargoCodeAlert(account._rms_countryid_value, alertMessage);
};

quote.form.showEmbargoCodeNotification = function () {
    

    Globals.Utility.showAccountEmbargoNotification("customerid", "Country of Client");
    Globals.Utility.showAccountEmbargoNotification("rms_localrepresentativeid", "Country of Local Representative");
    Globals.Utility.showAccountEmbargoNotification("rms_enduserid", "Country of End User");
};

quote.form.showHideTabPanels = function () {

    Xrm.Page.ui.tabs.get("tab_6").setVisible(false);//Proposal Content & Details
    Xrm.Page.ui.tabs.get("tab_5").setVisible(false);//Bid Summary Table
	Xrm.Page.ui.tabs.get("tab_winlossanalysis").setVisible(false);//Win & Loss Analysis
    setTimeout(function () {
        $(parent.window.document).find("#rel5").css("display", "none");
    }, 1000);

    if (Globals.Crm.getAttribute("rms_bidnobidvalidatecode").getValue() == 1) {
        Xrm.Page.ui.tabs.get("tab_6").setVisible(true);//Proposal Content & Details
    }

    if (Globals.Crm.getAttribute("rms_acceptedbidtypecode").getValue() == 1) {
        Xrm.Page.ui.tabs.get("tab_5").setVisible(true);//Bid Summary Table
    }
	
	// 1 - Win
	// 2 - Lost
	// 3 - Customer Assesment
	// 4 - Revision
    // 5 - Cancelled
    // 6 - Invalid
	if ([1, 2, 3, 4, 5, 6].includes(Globals.Crm.getAttribute("rms_bidresultcode").getValue())) { 
		Xrm.Page.ui.tabs.get("tab_winlossanalysis").setVisible(true); // Win & Loss Analysis Tab
		
		// SECTION VISIBILTY
		// 1 - Win
		// 2 - Lost
		if([1, 2].includes(Globals.Crm.getAttribute("rms_bidresultcode").getValue())){
			Xrm.Page.ui.tabs.get("tab_winlossanalysis").sections.get("tab_winlossanalysis_section_2").setVisible(true); // SHOW Win & Loss Analysis Section
		}else  {
            Xrm.Page.ui.tabs.get("tab_winlossanalysis").sections.get("tab_winlossanalysis_section_2").setVisible(false); // HIDE Win & Loss Analysis Section
        }
	}
    
    if (Xrm.Page.data.process.getSelectedStage() != null && Xrm.Page.data.process.getSelectedStage().getName().toLowerCase() == "proposal planning") {
        setTimeout(function () {
            
            if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer") != null) {
                if ((Globals.Crm.getValue("rms_bidnobidvalidatecode") == null || Globals.Crm.getValue("rms_bidnobidvalidatecode") == 2) && parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer").style.display = "none";
                else
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer").style.display = "block";
            }

            if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer") != null)
                parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer").style.display = "none";
            if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer") != null)
                parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer").style.display = "none";
            if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer") != null)
                parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer").style.display = "none";

            if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1") != null)
                parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1").style.display = "none";
        }, 50);
    }
};

quote.form.saveFormAfterFieldChange = function () {
    Xrm.Page.data.entity.save();
};

quote.form.setLatestQuoteNumberOnLoad = function () {
    
    if (Globals.Crm.GetFormTypeCode() == 1) {
        var requestObject = {};

        requestObject.actionName = "new_TestOpp";
        requestObject.success = function (data) {
            if (data.latestQuoteNumber != null) {
                Globals.Crm.getAttribute("quotenumber").setValue(data.latestQuoteNumber);
                
                Globals.Crm.saveForm();
            }
        };

        Globals.Crm.Rest.ExecuteAction(requestObject);
    }
};

quote.form.hideNextStageButton = function () {
    
    if (Xrm.Page.data.process.getSelectedStage() == null)
        return;
    var runFunction = function () {
        if (Xrm.Page.data.process.getSelectedStage().getId() == Globals.Static.ProposalDevelopingStageId) {
            setTimeout(function () {
                
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer").style.display = "none";

               if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1").style.display = "none";
            }, 50);
        }
        else if (Xrm.Page.data.process.getSelectedStage().getName().toLowerCase() == "proposal planning") {
            setTimeout(function () {
                
                if ((Globals.Crm.getValue("rms_bidnobidvalidatecode") == null || Globals.Crm.getValue("rms_bidnobidvalidatecode") == 2) && parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-nextButtonContainer").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer").style.display = "none";

                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1").style.display = "none";
            }, 50);
        }
        else {
            setTimeout(function () {
                
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-setActiveButtonContainer").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-stageDockModeButton1").style.display = "none";
                if (parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer") != null)
                    parent.document.getElementById("MscrmControls.Containers.ProcessStageControl-previousButtonContainer").style.display = "none";
            }, 50);
        }
    };

    Globals.Crm.addStageSelectEvent(runFunction);
    Xrm.Page.ui.process.setVisible(false);
    setTimeout(function () {
        Xrm.Page.ui.process.setVisible(true);
        runFunction();
    }, 2000);
    
};

quote.form.showHideCreateContractButton = function () {
    var statecode = Xrm.Page.getAttribute("statecode").getValue();
    var isCreateContract = Xrm.Page.getAttribute("rms_iscreatecontract").getValue();

    if (statecode == 2 || statecode == 3)
        return false;
    else if(isCreateContract)
        return true;
    else
        return false;
};

quote.form.showStageWhenStageChange = function () {
    if (Xrm.Page.data.process.getActiveStage() == null)
        return;

    var activeStageName = Xrm.Page.data.process.getActiveStage().getName().toLowerCase();

     if (activeStageName == "proposal planning") {
        if(Xrm.Page.ui.tabs.getByName("Summary") != null)
            Xrm.Page.ui.tabs.getByName("Summary").setFocus(true);
    }
    else if (activeStageName == "proposal developing") {
        if(Xrm.Page.ui.tabs.getByName("tab_6") != null)
            Xrm.Page.ui.tabs.getByName("tab_6").setFocus(true);
    }
};

quote.form.CheckChangedApprovedStatusOnSave = function (context) {
    var saveEvent = context.getEventArgs();

    var isApprovalChanged = Globals.Crm.getAttribute("rms_issubmittomanagersapproval").getIsDirty();
    var approval = Globals.Crm.getValue("rms_issubmittomanagersapproval");

    if (isApprovalChanged && approval) {
        // var requestObject = {};
        // requestObject.entityName = "annotations";
        // requestObject.select = "annotationid";
        // requestObject.filter = "_objectid_value eq " + Globals.Crm.getId().replace("{", "").replace("}", "");

        // var result = Globals.Crm.Rest.RetrieveMultipleJquery(requestObject);
        // if (result.value.length != 0)
        //     return true;
        var documentCount = Globals.Crm.getValue("rms_documentcount");
        if(documentCount > 0)
            return true;

        Globals.Crm.alertDialog("Can Not Send To Manager's Approval Without Proposal Document.", null);
        saveEvent.preventDefault();
    }
    else {
        return true;
    }
};

quote.form.showRevisedButton = function () {
    var bidResultCode = Xrm.Page.getAttribute("rms_bidresultcode").getValue();
    var acceptedBidTypeCode = Xrm.Page.getAttribute("rms_acceptedbidtypecode").getValue();

    if (acceptedBidTypeCode == 1)//Accepted
    {
        if (bidResultCode == 4)//revizyon
            return true;
    }
    else if (acceptedBidTypeCode == 3)//revizyon
    {
        //if (bidResultCode == 4)//revizyon
        return true;
    }

    return false;
};

quote.form.checkDocumentCount = function (executionContext) {
    var formContext = executionContext.getFormContext();
    var documentCount = formContext.getAttribute('rms_documentcount').getValue() ?? 0;
    setInterval(function()  {
        var documentGrid = parent.document.querySelector("[wj-part='cells']")
        if(!!documentGrid){
            var label = documentGrid.getAttribute('aria-label');
            if(label == 'Document Associated Grid'){
                var documentLength = documentGrid.children.length - 1;
                if(documentLength != -1) {
                    if(documentLength > 0 && documentLength > documentCount){
                        console.log('#log - dokuman added')
                        documentCount++;
                        formContext.getAttribute('rms_documentcount').setValue(documentCount);
                        formContext.data.save();
                    }
                    else if(documentLength < documentCount){
                        console.log('#log - dokuman deleted')
                        documentCount--;
                        formContext.getAttribute('rms_documentcount').setValue(documentCount);
                        formContext.data.save();
                    }
                }
            }
        }
    },1500);
}

quote.form.alignDocumentsTab = async function (executionContext) {
    
    
    parent.document.getElementById("rel6").click()
    await new Promise(resolve => setTimeout(resolve, 500));
    parent.document.getElementById("navSPDocuments").click();
    await new Promise(resolve => setTimeout(() => {
        Xrm.Page.ui.tabs.getByName("Summary_tab").setFocus(true);
        var tabList = parent.document.getElementById("tablist");
        var elements = tabList.querySelectorAll("li");
        if(elements.length == 5){
            tabList.appendChild(elements[0]);
            tabList.appendChild(elements[3]);
            tabList.appendChild(elements[1]);
            tabList.appendChild(elements[2]);
            tabList.appendChild(elements[4]);
        }
        else if(elements.length == 6){
            tabList.appendChild(elements[0]);
            tabList.appendChild(elements[4]);
            tabList.appendChild(elements[1]);
            tabList.appendChild(elements[2]);
            tabList.appendChild(elements[3]);
            tabList.appendChild(elements[5]);
        }
    },500))
    document.getElementById("tablist").click()
}
Editor is loading...