import { LightningElement,wire,track,api} from 'lwc'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import Quoto_No from '@salesforce/label/c.Quoto_No'; import Quoto_Name from '@salesforce/label/c.Quoto_Name'; import HP_Name from '@salesforce/label/c.HP_Name'; import Department_Name from '@salesforce/label/c.Department_Name'; import Currency from '@salesforce/label/c.Currency'; import Total_Price from '@salesforce/label/c.Total_Price'; import Contact_Price from '@salesforce/label/c.Contact_Price'; import Forecast_Amounts from '@salesforce/label/c.Forecast_Amounts'; import Sales_Root from '@salesforce/label/c.Sales_Root'; import Status_Update from '@salesforce/label/c.Status_Update'; import Set_Product from '@salesforce/label/c.Set_Product'; import Excel_Import from '@salesforce/label/c.Excel_Import'; import deleteLabel from '@salesforce/label/c.deleteLabel'; import Cost from '@salesforce/label/c.Cost'; import Calculate from '@salesforce/label/c.Calculate'; import AdjustAmount from '@salesforce/label/c.AdjustAmount'; import Quote_Adjustment from '@salesforce/label/c.Quote_Adjustment'; import Amount from '@salesforce/label/c.Amount'; import Sales_Profit from '@salesforce/label/c.Sales_Profit'; import Percent from '@salesforce/label/c.Percent'; import Sales_Name1 from '@salesforce/label/c.Sales_Name1'; import Sales_Name2 from '@salesforce/label/c.Sales_Name2'; import Error_Message33 from '@salesforce/label/c.Error_Message33'; import Opp_Button from '@salesforce/label/c.Opp_Button'; import QuoteDecision_Button from '@salesforce/label/c.QuoteDecision_Button'; import Copy_Detail from '@salesforce/label/c.Copy_Detail'; import Quote_Print from '@salesforce/label/c.Quote_Print'; import Detail_Price from '@salesforce/label/c.Detail_Price'; import Detail_Sum from '@salesforce/label/c.Detail_Sum'; import Total_Discount_Percent from '@salesforce/label/c.Total_Discount_Percent'; import Total_Discount_Amount from '@salesforce/label/c.Total_Discount_Amount'; import Row_Total_Sum from '@salesforce/label/c.Row_Total_Sum'; import Contract_Breakdown from '@salesforce/label/c.Contract_Breakdown'; import Print_HPName from '@salesforce/label/c.Print_HPName'; import Print_Button from '@salesforce/label/c.Print_Button'; import { loadStyle } from "lightning/platformResourceLoader"; import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable"; import QuoteEntryMaxLine2 from '@salesforce/label/c.QuoteEntryMaxLine2'; import Sales_Outlet from '@salesforce/label/c.Sales_Outlet'; import OCM_Direct from '@salesforce/label/c.OCM_Direct'; import Price_Valid_Period from '@salesforce/label/c.Price_Valid_Period'; import Message_001 from '@salesforce/label/c.Message_001'; import ImportText from '@salesforce/label/c.ImportText'; import Tab_Text from '@salesforce/label/c.Tab_Text'; import Paste_IE from '@salesforce/label/c.Paste_IE'; import { CurrentPageReference } from "lightning/navigation"; import Admin from '@salesforce/label/c.ProfileId_SystemAdmin'; import Admin2 from '@salesforce/label/c.ProfileId_SystemAdmin2'; import SI2M3ID from '@salesforce/label/c.SI_2M3_ID'; import ProfSystAdmin from '@salesforce/label/c.ProfileId_SystemAdmin'; import selectQuoteById from '@salesforce/apex/lexSINewQuoteEntryController.selectQuoteById'; import selectQuoteListLineItemCount from '@salesforce/apex/lexSINewQuoteEntryController.selectQuoteListLineItemCount'; import selectQuoteLineItem from '@salesforce/apex/lexSINewQuoteEntryController.selectQuoteLineItem'; import selecUser from '@salesforce/apex/lexSINewQuoteEntryController.selecUser'; import QuotCalfagAss from '@salesforce/apex/lexNewQuoteEntryController.QuotCalfagAss'; import selectOpportunityById from '@salesforce/apex/lexSINewQuoteEntryController.selectOpportunityById'; import selectAccountById from '@salesforce/apex/lexSINewQuoteEntryController.selectAccountById'; import getPicklistValues from '@salesforce/apex/lexSINewQuoteEntryController.getPicklistValues'; import SaveQuote from '@salesforce/apex/lexSINewQuoteEntryController.SaveQuote'; import Print from '@salesforce/apex/lexSINewQuoteEntryController.Print'; import QuoteDecision from '@salesforce/apex/lexSINewQuoteEntryController.QuoteDecision'; import serContact from '@salesforce/apex/lexSINewQuoteEntryController.serContact' import serSetContact from '@salesforce/apex/lexSINewQuoteEntryController.serSetContact' import setProductEntry from '@salesforce/apex/lexSINewQuoteEntryController.setProductEntry' import excelImport from '@salesforce/apex/lexSINewQuoteEntryController.excelImport' import getModulus from '@salesforce/apex/lexSINewQuoteEntryController.getModulus' import submitOppoApplyStock from '@salesforce/apex/lexSINewQuoteEntryController.submitOppoApplyStock' import QuoteConfirm from '@salesforce/apex/lexSINewQuoteEntryController.QuoteConfirm' import selectProById from '@salesforce/apex/lexSINewQuoteEntryController.selectProById' import getquoDes from '@salesforce/apex/lexSINewQuoteEntryController.getquoDes' import getProduct2 from '@salesforce/apex/NewQuoteEntryWebService.getProduct2'; import updateOTCodeweb from '@salesforce/apex/NewQuoteEntryWebService.updateOTCode'; import getQuoteLineItem from '@salesforce/apex/NewQuoteEntryWebService.getQuoteLineItem'; import Message_Please_Save_Quote from '@salesforce/label/c.Please_Save_Quote'; import Message_Check_Your_Clipboard from '@salesforce/label/c.Check_Your_Clipboard'; import SelectAllDataDiscount from '@salesforce/apex/QuoteTrialController.selectAllDataDiscount'; import GetPromotionDefalut from '@salesforce/apex/QuoteTrialController.GetPromotionDefalut'; import GetPromotionPromotionSearch from '@salesforce/apex/QuoteTrialController.GetPromotionPromotionSearch'; import GetNormalProductSearch from '@salesforce/apex/QuoteTrialController.GetNormalProductSearch'; import GetAuthorizerSearch from '@salesforce/apex/QuoteTrialController.GetAuthorizerSearch'; import GetSearchProductById from '@salesforce/apex/QuoteTrialController.GetSearchProductById'; import saveAllDataProduct from '@salesforce/apex/QuoteTrialController.saveAllDataProduct'; import SelectAllDataProduct from '@salesforce/apex/QuoteTrialController.selectAllDataProduct'; import GetQuoteData from '@salesforce/apex/QuoteTrialController.GetQuoteData'; import GetAgencyRName from '@salesforce/apex/QuoteTrialController.GetAgencyRName'; import selectUpdateFiexedpriceData from '@salesforce/apex/QuoteTrialController.selectUpdateFiexedpriceData'; import selectUpdateQuoteLineItemData from '@salesforce/apex/QuoteTrialController.selectUpdateQuoteLineItemData'; import lwcCSS from '@salesforce/resourceUrl/lwcCSS'; import {localParseInt,toNum,initDataTableToBeproductConfig,saveEvoluationLogic,oppInfosave,quoLineItemsave,filterNameoptionList,initDataSetProductTablefig,quoteTotalPriceActionLogic,CheckForCost,actState,MarkRed,EstimationL,resultFlag, toNumComma,localParseFloat,NewQcopyLogic,productCompareLogic,bflag,jzProductsearchLogic,additionaljzProductLogic,initDataProductTablefig,checkNMPA,saveQuotel,CheckForListPrice,calGuranteePeriodLogic,initOpportunityById,enableSalesExp,nafgExp, additionabuttonLoc,DataStatus,InitializeProductAssignment,PriceStatusUpdateLogic,newQuoteFlagex,calGuranteeAllFieldsLogic,MultiYearWarrantyTotalPriceExport,newQuoteFlagExp,AlertForCFDA,UnitPriceUpdateLogic,DisAmountfunctionc,enableContractExp, PrintCustomerNameoptionsvlue,selection_hpExp,options_hpflgExp,initquoassignment,initquoassignmentcopy,salesProfit1Logic,salesCalculation1Logic,salesProfit2Logic,salesCalculation2Logic,SubtotalupdateLogic,alfExp,IsQuoteTrialExp,displayFlgExp, initquocheck,lookMapE,quoteAgencyTotalPriceActionLogic,calPriceAllLogic,QuoteAdjustLogic,quoExp,AgencyDiscountCalculation1Logic,onsaveToBeproductLoc,fagExp,PrintButtonLoc,alertExp,setOCMAmountc,initOpportunityById2,decisionlol,flg,checkch, saverebackloc,DisCalculationfunctionLoc,quoteTotalPriceLoc,calUnitPriceTotalLoc,ListPriceTotalExp,unitPriceTotalExp,pageArrangeLoc,openQuotePage,errorflg,StrExp,quoteinit,Savebuttondetermine,submitOppoApplyStockJsLogic,QuoteConfirmJsExp, SbuttonExp,sapbuttonExp,pbuttonflgExp,selectQuoteLineExp,initQuoteLineItemcheck,productStatusUpdatedExp,Saleslet} from "./lexSINexQuoteEntryUtil.js"; import {arrTempsss,arrProductTempsss,initDataTableProduct2,initDataTable2,initSearchForm2,getQueryVariable,ChangeFiexedData,GetUUID,initDataTableDefault2, initSearchFormDefalt2,initDataTableFixedPrice2,initDataTableDiscount2,initDataTableSpecial2,initSearchFormFix2,initDataTableFix2,CompareDataL,isChangeExp, initDataTableOtherData2,initDataTableCommonly2,ProductAssignmentSelect,ProductSelected,UnselectedScheme,SelectedScheme,commonlyDiscountLogic,ChangeProductData, PriceConsolidation,ReplacementUnitPriceLogic,ConsolidatedDiscountDetailsLogic,ConsolidatedDiscountPolicyLogic,QTcssE,initquoT,buttonIsShowE,initDTFP,initDTD,initDTOD,initDTC, addOfferLogic,ReverseCalculationModifyDiscountLogic,HeTongPriceComputeLogic,InverseCalculationTiShi,ContractPriceComputeLogic,GeneralDiscountContractSummaryLogic,handleSaveFixedPriceLogic, SpecialSavesChangePartLogic,NewDefaultDatass,AddProductDatass,jzDataFixedPriceTemps,jzDataDiscountTemps,updatesNumsLogic,updateCDLogic,DeftCopyQtyLists, countListAndNodLogic,jzDataDefaultExp,jzDataProductExp,jzDataFixedPriceExp,jzDataDiscountExp,comparisonUniqueKeyLogic,SearchProductByIdLogic,jzDataDefaultCopyQuantityListExp,AddNumsLogic,CompareFullDataExp,SelectedFnCommonlyLogic, ComputeDataPromotionLogic,newArrsTemp3Exp,newArrsTemp4Exp,jzDataDefaultCopyExp,ComputeDataNormalProductLogic,ComputeDiscountAuthorizerLogic,newArrsTempExp,newArrsTemp2Exp,MergeDuplicateSchemesLogic,delectTableDiscountTempLogic, handleSaveDiscountLogic,booleanExp,boolean2Exp,boolean3Exp,newDataExp,newData2Exp,newData3Exp,editnewDateExp,GuaranteeDiscount__cZuiXiaoExp,NormalDiscount__cZuiXiaoExp,HeTongTotalExp,SelectedFnDataFixedPriceExp,deleteFixedPriceLogic, CompareFullDataTempExp,jzDataDefaultNotChangeExp,DeleteChangesFnLogic,deleteFixedPriceTempLogic,GetSearchProductByIdLogic,iflagExp,getTableDataCommonlyLogic,idsExp,DeleteIsChangelogicExp,DeleteIsChangesFnjiage,falgExp, DeleteIsChangesFnzhekou,SaveGeneralDiscountLogic,DeleteSchemeMatchingLogic,savecountLogic,ComparePushDataLogic,newTempExp,saveAllDataProductFnChuanshen,saveAllDataProductFnPanduan,ifnullExp} from "./lexSIquoteTrialUtil.js"; export default class LexSINewQuoteEntry extends LightningElement { @wire(CurrentPageReference) getStateParameters(currentPageReference) { if (currentPageReference) { const urlValue = currentPageReference.state.fragment; if (urlValue) { this.location = urlValue; } } } location = ''; @track pricePolicyflag1 = false; @track ImportText = ImportText; @track Tab_Text = Tab_Text; @track Paste_IE = Paste_IE; @track QuotoNo = Quoto_No; @track QuotoName = Quoto_Name; @track HPName = HP_Name; @track DepartmentName = Department_Name; @track Currency = Currency; @track TotalPrice = Total_Price; @track ContactPrice = Contact_Price; @track ForecastAmounts = Forecast_Amounts; @track SalesRoot = Sales_Root; @track StatusUpdate = Status_Update; @track SetProduct = Set_Product; @track ExcelImport = Excel_Import; @track deleteLabel = deleteLabel; @track Cost = Cost; @track Calculate = Calculate; @track AdjustAmount = AdjustAmount; @track QuoteAdjustment = Quote_Adjustment; @track Amount = Amount; @track SalesProfit = Sales_Profit; @track Percent = Percent; @track SalesName1 = Sales_Name1; @track Sales_Name2 = Sales_Name2; @track Opp_Button = Opp_Button; @track QuoteDecision_Button = QuoteDecision_Button; @track Copy_Detail = Copy_Detail; @track Quote_Print = Quote_Print; @track Detail_Price = Detail_Price; @track Detail_Sum = Detail_Sum; @track Total_Discount_Percent = Total_Discount_Percent; @track Total_Discount_Amount = Total_Discount_Amount; @track Row_Total_Sum = Row_Total_Sum; @track Contract_Breakdown = Contract_Breakdown; @track Print_HPName = Print_HPName; @track Print_Button = Print_Button; @track QuotCalfag = false; quoteEntryMaxLine = QuoteEntryMaxLine2; // 全局加载标识 start @track IsLoading = false; OnLoading(flag) { this.IsLoading = flag; } // 全局加载标识 end //页面初始化方法 //初始化时调用 stylesLoaded = false; renderedCallback(){ if (!this.stylesLoaded) { Promise.all([loadStyle(this, WrappedHeaderTable)]) .then(() => { this.stylesLoaded = true; }) .catch((error) => { }); } Promise.all([ loadStyle(this, lwcCSS) ]); } //报价对象 @track quo = {Installation_location__c:'',QuotationChange__c:''}; //询价对象 @track oppInfo ={}; //自定义结构 @track qb = {}; @track hidden = false; //成本 hidden_Stocking_Price = ''; //询价Id oppId = ''; //报价Id quoId = ''; //是否跳过报价计算标识 SkipQuotefilg = false; //复制报价Id copyid = ''; //内外贸 trade = ''; //直销经销商标识 enableSales; //判断特殊经销商价格显示权限标识 displayFlg; //特殊经销商价格显示权限 viewSpecialAgencyAmout //当前登录用户 User; //报价修改权限标识 verified; //上传订单权限标识 specialAuthority; //询价产品成本参照权限标识 displayCost; //init查询询价相关标识 start QuoteDecision; QuoteDecide; QuoteSapSented; QuoteCorrect; @track enableContract; productStatusUpdated =false; //合同保修期(年)全局 quoteGurantee_Period; //取消市场多年保修全局 quotemultiYearWarranty; //经销商初始化时备份 start agency1Name; agency2Name; //经销商初始化时备份 end //数据是否发生变化标识 newQuoteFlag = false; //状态更新 productStatusUpdated = false; //查询询价获取客户Id accountid; //打印标识 print_buttonflg = false; //decide按钮标识 Decision_button = false; sap_button; //save和decide按钮标识 Save_button = false; Decisiontag = false; //经销商一利润显示 Salesprofit1value; //经销商二利润显示 Salesprofit2value; //经销商一百分比显示 SalesCalculation1value //经销商二百分比显示 SalesCalculation2value //隐藏多年保修价格合计 hidden_MultiYearWarrantyTotalPrice //经销商折扣 WinOrDecideAlert; //备份初始化时的报价行项目 CheckItem; Save_button1 = 0; CSVflag = true; UnConfirmQuote = false; //初始化方法 ifquocom = false; acts = false; actL = []; connectedCallback() { this.tobeflag = false; this.quoteEntryMaxLine = Number(this.quoteEntryMaxLine); debugger this.SkipQuotefilg = false; var quoteflg = true; this.displayFlg = true; this.WinOrDecideAlert = false; this.OnLoading(true); if(this.quoId == ''){ this.quoId = getQueryVariable('Id',this.location); this.CSVflag = this.quoId?false:true; } if(this.copyid == ''){ this.copyid = getQueryVariable('copyid',this.location); } if(this.oppId == ''){ this.oppId = getQueryVariable('oppid',this.location); } this.nafg = resultFlag(this.nafg,''); QuotCalfagAss().then(r=>{ this.QuotCalfag = r; }); selectQuoteListLineItemCount({quoId:this.quoId,oppId:this.oppId,copyid:this.copyid}).then(quoteByopp=>{ debugger if(this.oppId){ if(this.copyid){ this.quoId = this.copyid; this.CSVflag = this.quoId?false:true; } } if(quoteByopp.length > 0){ if (!this.oppId) { this.oppId = quoteByopp[0].OpportunityId; } } selecUser().then(Userobj=>{ this.User = Userobj; console.warn('aa '+ Userobj.length); if(JSON.stringify(Userobj) != "{}"){ this.verified =this.User.Quote_Correct__c; this.specialAuthority = this.User.Quote_Special_Operation__c; this.displayCost = this.User.Cost_Referable__c; this.viewSpecialAgencyAmout = this.User.ViewSpecialAgencyAmout__c; } selectOpportunityById({oppId:this.oppId}).then(oppobj=>{ debugger this.oppInfo = oppobj; var oppvalue = JSON.stringify(oppobj); getModulus({oppInfoc:oppvalue}).then(rtn=>{ this.oppInfo.rate_hospital = rtn.rate_hospital; this.oppInfo.rate_agency1 = rtn.rate_agency1; }); this.trade = '外貿'; if(JSON.stringify(oppobj) != "{}"){ this.trade = oppobj.Trade__c; this.QuoteDecision = oppobj.Estimation_Decision__c; this.QuoteDecide = this.QuoteDecision; this.QuoteSapSented = oppobj.SAP_Send_OK__c; this.QuoteCorrect = oppobj.New_Opportunity__c; this.enableSales = false; this.accountid = this.oppInfo.AccountId; this.oppInfo = initOpportunityById(this.oppInfo,oppobj,this.enableSales,this.QuoteDecision,this.enableContract,this.displayFlg,this.viewSpecialAgencyAmout,Sales_Outlet,OCM_Direct); this.enableSales = enableSalesExp; this.enableContract = enableContractExp; this.displayFlg = displayFlgExp; } this.Decision_button = initOpportunityById2(this.QuoteCorrect,this.User,this.QuoteDecision,this.QuoteSapSented,this.print_buttonflg,this.sap_button,this.Decision_button,this.Save_button); this.Save_button = SbuttonExp; if(SbuttonExp){ this.Decisiontag = true; var lg = this.template.querySelectorAll('c-jzlookuplightning2'); lg.forEach(l=>{ l.todisabled(); }) }else{ this.Decisiontag = false; this.initDataTableToBeproduct.columns[4].editable = true; } this.sap_button = sapbuttonExp; this.print_buttonflg = pbuttonflgExp; this.Save_button1 = Savebuttondetermine(this.oppInfo,this.Save_button1); this.tobeflag = true; this.OnLoading(false); }); }); getquoDes().then(it=>{ if(this.quoId !=''){ selectQuoteById({quoId:this.quoId}).then(quote=>{ debugger this.quo=quote; selectQuoteLineItem({quoId:this.quoId,copyid:this.copyid}).then(result=>{ debugger var tempArr = result.split("---"); var quoteLineItem = JSON.parse(tempArr[0]); this.CheckItem = JSON.parse(tempArr[1]); if(JSON.stringify(quote) != "{}"){ debugger if(this.copyid == ''){ this.quo = initquoassignment(quote,this.quo,it); this.hidden = this.quo.rtn; this.quoteGurantee_Period = quote.Gurantee_Period__c; this.quotemultiYearWarranty = quote.multiYearWarranty__c; this.agency1Name = quote.Agency1__c; this.agency2Name = quote.Agency2__c; this.Salesprofit1value = quote.Agency1_Profit__c; this.Salesprofit2value = quote.Agency2_Profit__c; this.SalesCalculation1value = quote.Agency1_Profit_Rate__c; this.SalesCalculation2value = quote.Agency2_Profit_Rate__c; this.hidden_MultiYearWarrantyTotalPrice = quote.MultiYearWarrantyTotalPrice__c; this.template.querySelector('[data-parent-id="Agency1Id"]').setvalue(this.quo.Agency1__c); this.template.querySelector('[data-parent-id="Agency2Id"]').setvalue(this.quo.Agency2__c); }else{ this.hidden_MultiYearWarrantyTotalPrice = quote.MultiYearWarrantyTotalPrice__c; this.quo = initquoassignmentcopy(quote,this.quo,it); this.hidden = this.quo.rtn; this.template.querySelector('[data-parent-id="Agency1Id"]').setvalue(this.quo.Agency1__c); this.template.querySelector('[data-parent-id="Agency2Id"]').setvalue(this.quo.Agency2__c); } } var product2Ids = initquocheck(quoteLineItem,this.CheckItem); var loopMap = lookMapE; if(this.CheckItem.length>0){ var proList = JSON.stringify(product2Ids); selectProById({proList:proList}).then(plo=>{ if(plo.length>0){ plo.forEach(prd2=>{ if(prd2.SFDA_Status__c != loopMap.get(prd2.Id)){ this.WinOrDecideAlert = true; } }); } if(quoteLineItem.length > 0 && !this.QuoteDecision){ this.productStatusUpdated = false; quoteLineItem = initQuoteLineItemcheck(quoteLineItem,this.productStatusUpdated); this.newQuoteFlag = newQuoteFlagExp; this.productStatusUpdated = productStatusUpdatedExp; } if(JSON.stringify(quoteLineItem) != "{}"){ quoteLineItem = InitializeProductAssignment(quoteLineItem); if(this.acts){ quoteLineItem = actState(this.actL,quoteLineItem); } this.jzDataToBeproduct =[].concat(quoteLineItem); } this.EstimationListPrice(); this.calUnitPriceTotal(); this.quoteTotalPrice(); this.setOCMAmount(); this.checkProductStatusValidPeriod(); setTimeout(() => { debugger if(this.WinOrDecideAlert){ this.Alert('产品状态发生变化。','warning'); } }, 1000); this.calGuranteeAllFields(); this.OnLoading(false); var IsQuoteTrial =this.quo.IsQuoteTrial__c; this.ifquocom = IsQuoteTrial; debugger if(this.copyid){ this.quoId = ''; this.SkipQuotefilg = true; }else{ debugger this.UnConfirmQuote = selectQuoteLineExp(quote,this.User,SI2M3ID,ProfSystAdmin,this.UnConfirmQuote); this.quo = quoExp; if(alertExp){ this.Alert(alertExp,'error'); } } }); } }); this.quo = quoteinit(this.quo); this.HiddenGurantee_Period = this.quo.Gurantee_Period__c; }); }else{ this.quo = quoteinit(this.quo); this.HiddenGurantee_Period = this.quo.Gurantee_Period__c; this.quo.multiYearWarranty__c = false; this.pageArrange(); this.hidden = it; } }); }); //Add Jz - kkbes 20231019 Start const inputAlignright = document.createElement('style'); inputAlignright .innerText = `.input-text-align_right input{ text-align: right!important; }`; document.body.appendChild(inputAlignright); //Add Jz - kkbes 20231019 End } pageArrange(){ this.quo = pageArrangeLoc(this.quo); } calPriceAll() { debugger this.calGuranteeAllFields(); this.jzDataToBeproduct = calPriceAllLogic(this.jzDataToBeproduct); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); this.EstimationListPrice(); this.calUnitPriceTotal(); this.quoteTotalPrice(); this.quoteAgencyTotalPriceAction(); this.AgencyDiscountCalculation1(); } // calGuranteeAllFields() { this.jzDataToBeproduct = calGuranteeAllFieldsLogic(this.jzDataToBeproduct,this.quo); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); this.hidden_MultiYearWarrantyTotalPrice = MultiYearWarrantyTotalPriceExport; this.quo.MultiYearWarrantyTotalPrice__c = toNumComma(MultiYearWarrantyTotalPriceExport); } EstimationListPrice() { this.jzDataToBeproduct = EstimationL(this.jzDataToBeproduct,this.quo); this.quo = quoExp; } ListPriceTotalhidden = 0; UnitPriceTotalhidden = 0; calUnitPriceTotal() { this.jzDataToBeproduct = calUnitPriceTotalLoc(this.jzDataToBeproduct); this.ListPriceTotalhidden = ListPriceTotalExp; this.UnitPriceTotalhidden = unitPriceTotalExp; } quoteTotalPrice() { var result = quoteTotalPriceLoc(this.jzDataToBeproduct,this.quo,this.quoId,this.oppInfo,Saleslet); this.quo = quoExp; this.jzDataToBeproduct =[].concat(result); var id = this.quoId; if(!id){ var IsQuoteTrial =this.quo.IsQuoteTrial__c; if(!IsQuoteTrial){ this.setOCMAmount(); this.calFromContactPrice(); } } this.DisAmountfunction(); this.QuoteAdjust(); this.salesProfit2(); this.setCostTatal(); } setOCMAmount() { debugger this.oppInfo = setOCMAmountc(this.enableSales,this.quo,this.oppInfo); this.quo = quoExp; } /* 医院的合同金额 格式化为 带分位符的字段; */ calFromContactPrice() { var x = 0; x = this.quo.Dealer_Final_Price_Page__c; x = localParseFloat(x); this.quo.Dealer_Final_Price_Page__c = toNumComma(x); this.DisAmountfunction(); this.salesProfit1(); this.salesProfit2(); this.setCostTatal(); } DisAmountfunction() { this.quo = DisAmountfunctionc(this.quo); this.DisCalculationfunction(); } DisCalculationfunction() { this.quo = DisCalculationfunctionLoc(this.quo); } salesProfit1() { this.Salesprofit1value = salesProfit1Logic(this.quo,this.Salesprofit1value); this.quo = quoExp; this.salesCalculation1(); } salesCalculation1() { this.SalesCalculation1value = salesCalculation1Logic(this.quo,this.Salesprofit1value,this.SalesCalculation1value); this.quo = quoExp; } salesProfit2() { this.Salesprofit2value = salesProfit2Logic(this.quo,this.Salesprofit2value); this.quo = quoExp; this.salesCalculation2(); this.salesProfit1(); } salesCalculation2() { this.SalesCalculation2value = salesCalculation2Logic(this.quo,this.Salesprofit2value,this.SalesCalculation2value) this.quo = quoExp; } setCostTatal() { var z = 0; this.jzDataToBeproduct.forEach(jzdtbt=>{ var s = 0; s = localParseFloat(jzdtbt.Cost_Subtotal_c); if (!isNaN(s)) { z = z + s; } }); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); this.hidden_Stocking_Price = toNum(z); if (this.displayCost) { this.quo.Stocking_Price__c = toNumComma(z); } } QuoteAdjust() { this.jzDataToBeproduct = QuoteAdjustLogic(this.jzDataToBeproduct,this.quo,this.hidden_MultiYearWarrantyTotalPrice,this.QuoteDecision_Button); this.quo = quoExp; this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); } quoteAgencyTotalPriceAction() { this.jzDataToBeproduct = quoteAgencyTotalPriceActionLogic(this.jzDataToBeproduct,this.quo,this.oppInfo,this.QuoteDecision_Button,this.hidden_MultiYearWarrantyTotalPrice); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); } AgencyDiscountCalculation1() { this.jzDataToBeproduct = AgencyDiscountCalculation1Logic(this.quo,this.jzDataToBeproduct,this.QuoteDecision_Button,this.hidden_MultiYearWarrantyTotalPrice); this.quo = quoExp; this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); } Confirm_PriceRefresh = '报价作成后'+Price_Valid_Period+'天,还没有更新过价格,需要执行'+Status_Update+'?'; checkProductStatusValidPeriod() { debugger var period = this.quo.PriceRefreshPeriod; if (parseInt(period) > parseInt(Price_Valid_Period) && this.QuoteDecide != true) { if (confirm(this.Confirm_PriceRefresh)) { this.productCompare(); return true; } else { return false; } } return true; } productCompare() { try { var returnflg; var b = true; var t = this.trade; var ids = new Array(); this.jzDataToBeproduct.forEach(jzdtbt=>{ var id =jzdtbt.pageObject.Id__c; if (id != '') { ids.push(jzdtbt.pageObject.Id__c); } }); getProduct2({ids:ids}).then(results=>{ debugger var id2Product = new Object(); for (var j = 0; j < results.length; j++) { id2Product[results[j].Id] = results[j]; } var reslut = productCompareLogic(this.jzDataToBeproduct,id2Product,t,b); b = bflag; this.jzDataToBeproduct =[].concat(reslut); if (b == false) { if (window.confirm(Message_001)) { this.PriceStatusUpdate(); this.OnLoading(false); this.calPriceAll(); this.quoteAgencyTotalPriceAction() this.productStatusUpdated = true; this.WinOrDecideAlert = false; returnflg = true; } else { returnflg = false; } } else { this.Alert("价格状态没有变化。",'warning'); this.productStatusUpdated = true; returnflg = false; } }); return returnflg; } catch (e) { this.Alert(e,'error'); } } //替换产品otcode updateOtcode() { this.OnLoading(true); var id = this.quoId; var nmpa = checkNMPA(this.jzDataToBeproduct); if (nmpa) { updateOTCodeweb({tempQuoId: id}).then(results=>{ if (results) { this.Alert('产品otcode替换完成!','success'); window.location.reload(); } else { this.Alert('产品otcode替换失败,请联系管理员!','error'); } this.OnLoading(false); }); } else { this.OnLoading(false); this.Alert('报价行项目没有NMPA状态为停止的产品,无法替换!','error'); } } PriceStatusUpdate(){ this.setOppFromOppInfo(); //全件洗い替えします。 if (this.jzDataToBeproduct.length > 0) { this.jzDataToBeproduct = PriceStatusUpdateLogic(this.jzDataToBeproduct,this.newQuoteFlag); this.newQuoteFlag = newQuoteFlagex; this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); this.productStatusUpdated = true; } this.pageArrange(); this.calPriceAll(); this.Alert('更新完毕!','success'); } // setOppFromOppInfo() { this.oppInfo.Agency1__c = this.quo.Agency1__c; this.oppInfo.Agency2__c = this.quo.Agency2__c; } quoteAgencyTotalPriceAction1(str) { var Sales_Root = this.oppInfo.Sales_Root__c; Sales_Root = Sales_Root + ''; Sales_Root = Sales_Root.replace(/\s+/g, ""); if (str == Sales_Root) { this.quoteAgencyTotalPriceAction(); } } //报价名称赋值 QuoteNameAssignment(event){ this.quo.QuoteName__c = event.target.value; } //最终客户成交价Change事件 DealerFinalPricePageChange(event){ this.quo.Dealer_Final_Price_Page__c = event.target.value; debugger this.calFromContactPrice(); this.setOCMAmount(); this.quoteAgencyTotalPriceAction1('OCM直接销售'); } //计算%的change QuoteAdjustCalculateChange(event){ if(this.quo.Quote_Adjust_Calculate__c !== event.target.value){ this.quo.Quote_Adjust_Calculate__c = event.target.value; this.UnitPriceUpdate(); event.target.value = this.quo.Quote_Adjust_Calculate__c; } } //调整金额的change QuoteAdjustAmountPageChange(event){ if(this.quo.Quote_Adjust_Amount_Page__c !== event.target.value){ this.quo.Quote_Adjust_Amount_Page__c = event.target.value; this.calFromQuoAmont() } } //经销商一合同金额change OCMAgent1PricePageonChange(event){ this.quo.OCM_Agent1_Price_Page__c = event.target.value; this.salesProfit1(); this.setOCMAmount(); this.quoteAgencyTotalPriceAction1('经销商'); this.AgencyDiscountCalculation1(); } //经销商二合同金额change Agent1Agent2PricePageChange(event){ this.quo.Agent1_Agent2_Price_Page__c = event.target.value; this.salesProfit2(); } //复制按钮change copyToClipboardNewQuoteEntry() { var QuoteId = this.quoId; if (QuoteId == null || QuoteId == '') { this.Alert(Message_Please_Save_Quote,'error'); return null; } var records; var x; var targetString = 'No.\t编码\t状态\t名称\tListPrice\t数量\t规格\t医院单价\t医院小计\t赠送\t经销商单价\t经销商小计'; targetString += '\t多年保修\t保修\tNoDiscount小计'; targetString += '\t保修期\t通货'; try { getQuoteLineItem({ quoId: QuoteId }).then(reslut=>{ NewQcopyLogic(Message_Check_Your_Clipboard,records,x,targetString,reslut,this.displayCost,this.oppInfo.CurrencyIsoCode); if(alfExp){ this.Alert(alertExp,'success'); }else{ this.Alert(alertExp,'error'); } }); } catch (e) { this.Alert(e.faultcode + ',' + e.faultstring,'error'); } } @track nafg={}; //保存报价按钮 savebuttonClick(){ this.OnLoading(true); this.checkchangedAfterPrint('sa'); if(this.fg){ this.sal(); } } sal(){ debugger this.tobeflag=false; var shut = AlertForCFDA(this.jzDataToBeproduct); if (shut == true) { this.Alert('提示:包含重新申请CFDA的产品,不可进行订货。','error'); } var cost = CheckForCost(this.jzDataToBeproduct); if (cost) { this.Alert('产品成本为空时不可报价!','error'); this.OnLoading(false); this.tobeflag=true; } else { var er = ''; var listPrice = CheckForListPrice(this.jzDataToBeproduct); if (listPrice) { er = '目前产品定价未确定,请于产品本部联系确认!'; } var SaveQuotecan = saveQuotel(this.quo,this.oppInfo,this.jzDataToBeproduct,this.CheckItem,this.WinOrDecideAlert,this.productStatusUpdated,this.enableSales, this.oppId,this.quoId,this.newQuoteFlag,this.changedAfterPrint,this.quoteGurantee_Period,this.quotemultiYearWarranty,this.selection_hp,this.SkipQuotefilg,this.quoteflg); SaveQuote(SaveQuotecan).then(resaut=>{ debugger var Setmap = new Map() var key = Object.keys(resaut) key.forEach(item=>{ Setmap.set(item,resaut[item]); }); if(Setmap.has('errormessage')){ er += Setmap.get('errormessage'); this.quoteflg = false; }else{ if(this.Sback){ window.open('/' +this.oppId, '_self'); }else{ if(Setmap.has('QuoteNo')){ this.quo.Quote_No__c = Setmap.get('QuoteNo'); } if(this.quoteflg){ if(Setmap.has('quoId')){ this.quoId = Setmap.get('quoId'); this.CSVflag = this.quoId?false:true; this.quo.IsQuoteTrial__c = false; this.ifquocom = false; this.quoteGurantee_Period = this.quo.Gurantee_Period__c; this.quotemultiYearWarranty = this.quo.multiYearWarranty__c; } this.index = 3; this.quoteTrialInit(); }else{ if(Setmap.has('warn')){ this.Alert(Setmap.get('warn'),'warning'); this.jzDataToBeproduct = actState(Setmap.get('act'),this.jzDataToBeproduct); this.acts = true; this.actL = Setmap.get('act'); }else{ this.Alert(Setmap.get('success'),'success'); } if(Setmap.has('quoId')){ this.quoId = Setmap.get('quoId'); this.CSVflag = this.quoId?false:true; window.open('/lightning/n/lexSINewQuoteEntry#Id=' + Setmap.get('quoId'), '_self'); this.location = 'Id='+ Setmap.get('quoId'); this.copyid = ''; this.oppId = ''; this.connectedCallback(); } } } } this.nafg = resultFlag(this.nafg,Setmap); if(er){ this.Alert(er,'error'); } this.tobeflag=true; this.OnLoading(false); }); return true; } } //备货确认申请 submitOppoApplyStockJs(){ this.OnLoading(true); var flag =submitOppoApplyStockJsLogic(this.Save_button1); if(flag){ submitOppoApplyStock({oppIdc:this.oppId,quoIdc:this.quoId}).then(rlt=>{ debugger var relt = rlt.split('errorss:'); if(relt.length<2){ this.Alert(relt[0],'success'); }else{ this.Alert(relt[1],'error'); } this.OnLoading(false); }); }else{ this.Alert(alertExp,'error'); this.OnLoading(false); } } DownloadCsvGet(){ window.open('/apex/SI_CsvModel?id='+encodeURI(this.quoId),'name','features','replace'); } QuoteConfirmJs(){ this.OnLoading(true); var a = QuoteConfirmJsExp(this.User,Admin,Admin2); debugger if(a){ this.Alert(alertExp,'error'); }else{ QuoteConfirm({quoid:this.quoId}).then(res=>{ var relt = res.split('errorss:'); if(relt.length > 2){ this.Alert(relt[1],'error'); } this.OnLoading(false); window.location.reload(); }); } } //价格政策表单开关标识符 jzDataTableFixedPriceIsShow = false; //报价计算初始化 quoteTrialInit(){ this.OnLoadSavesDatas(); this.OnLoadQuoteData(this.quoId); var event = { page: 1, pageLimit: 10, search: "", sortOrder: "asc", sortPlus: undefined, fag: true }; setTimeout(() => { this.getTableDataFix(event); this.getTableData(event); }, 1000); } OnLoadProduct = []; //未选择产品 OnLoadSaveProduct = []; //已选择产品 OnLoadDiscount = []; //折扣政策 OnLoadFixDiscount = []; //价格政策 flagall = false; OnLoadSavesDatas() { debugger //获取产品数据 SelectAllDataDiscount({ ParamIdStr: this.quoId }).then(result => { result.forEach(item => { if (item.ismatch__c == "0") { item = ProductAssignmentSelect(item); this.OnLoadProduct.push(item); } else if (item.ismatch__c == "1") { item = ProductSelected(item); this.OnLoadSaveProduct.push(item); } }) var arrss = [].concat(this.OnLoadSaveProduct); this.addOffer(arrss); this.comparisonUniqueKey(); if (this.OnLoadProduct != undefined && this.OnLoadProduct.length > 0) { this.flagall = true; this.jzDataDefault = this.OnLoadProduct; if (this.jzDataDefault != undefined && this.jzDataDefault.length > 0) { this.UpdateSaveDataQuoteLineItemSelectByID(0); } } if (this.OnLoadSaveProduct != undefined && this.OnLoadSaveProduct.length > 0) { this.flagall = true; this.jzDataProduct = this.OnLoadSaveProduct; debugger if (this.jzDataProduct != undefined && this.jzDataProduct.length > 0) { this.UpdateSaveDataQuoteLineItemSelectByID(1); } this.updateIdStr("1"); this.ContractPriceCompute(); } }) //获取 折扣方案数据 UpdateBy 2021 06 29 SelectAllDataProduct({ ParamIdStr: this.quoId }).then(result => { result.forEach(items => { if (items.typess__c == "折扣政策") { items = UnselectedScheme(items); this.OnLoadDiscount.push(items); } else if (items.typess__c == "价格政策") { items = SelectedScheme(items) this.OnLoadFixDiscount.push(items); } }) this.comparisonUniqueKey(); if (this.OnLoadFixDiscount != undefined && this.OnLoadFixDiscount.length > 0) { this.jzDataFixedPrice = this.OnLoadFixDiscount; if (this.jzDataFixedPrice != undefined && this.jzDataFixedPrice.length > 0) { this.UpdateSaveDataFixedPriceSelectByID(); } } if (this.OnLoadDiscount != undefined && this.OnLoadDiscount.length > 0) { this.jzDataDiscount = this.OnLoadDiscount; this.updateIdStr("2"); } }) } //合并上一次的报价行 lastQuotation = []; addOffer(TrialLine) { this.lastQuotation = [].concat(addOfferLogic(TrialLine)); } index = 3; comparisonUniqueKey() { this.index--; if (this.index == 0) { comparisonUniqueKeyLogic(this.index,this.flagall,this.jzDataDefaultCopy,this.jzDataDefault,this.jzDataProduct,this.jzDataFixedPrice,this.jzDataDiscount,this.lastQuotation); this.jzDataDefault = jzDataDefaultExp; this.jzDataProduct = jzDataProductExp; this.jzDataFixedPrice = jzDataFixedPriceExp; this.jzDataDiscount = jzDataDiscountExp; this.ContractPriceCompute() } } Complate = false; //从数据库更新已保存的数据 产品 UpdateBy 2021 06 29 UpdateSaveDataQuoteLineItemSelectByID(flag) { if (flag == 0) { var idArr = []; this.jzDataDefault.forEach(item => { idArr.push(item.QuiteLineitem__c); }) selectUpdateQuoteLineItemData({ ItemId: idArr }).then(result => { var newArr = []; this.jzDataDefault.forEach(dp => { var temp = { ...{}, ...dp }; result.forEach(item => { if (item.Id == temp.QuiteLineitem__c) { var keys = Object.keys(temp); keys.forEach(k => { var flag = ChangeProductData(k); if (flag && item[k] != undefined && item[k] != temp[k]) { this.Complate = true; temp[k] = item[k]; } }) } }) newArr.push(temp); }) this.jzDataDefault = newArr; }) } if (flag == 1) { var idArrPro = []; this.jzDataProduct.forEach(item => { idArrPro.push(item.QuiteLineitem__c); }) selectUpdateQuoteLineItemData({ ItemId: idArrPro }).then(result => { var newArr = []; this.jzDataProduct.forEach(dp => { var temp = { ...{}, ...dp }; result.forEach(item => { if (item.Id == temp.QuiteLineitem__c) { var keys = Object.keys(temp); keys.forEach(k => { var flag = ChangeProductData(k); if (flag && item[k] != undefined && item[k] != temp[k]) { this.Complate = true; temp[k] = item[k]; } }) } }) newArr.push(temp); }) debugger this.jzDataProduct = newArr; //解决删除样式不更新问题 this.updateIdStr("1"); //合同价格汇总 this.ContractPriceCompute(); }) } } //删除时需要用的唯一id的添加 updateIdStr(str) { var newArr = []; var indexNum = 0; var jzdpdc = []; if (str == "1") { jzdpdc = [].concat(this.jzDataProduct); } else if (str == "2") { jzdpdc = [].concat(this.jzDataDiscount); } else if (str == "3") { jzdpdc = [].concat(this.jzDataFixedPrice); } jzdpdc.forEach(item => { indexNum++; var temp = { ...item }; temp.DelectId = indexNum; newArr.push(temp); }) if (str == "1") { this.jzDataProduct = [].concat(newArr); } else if (str == "2") { this.jzDataDiscount = [].concat(newArr); } else if (str == "3") { this.jzDataFixedPrice = [].concat(newArr); } } //合同价格汇总 ContractPrice = 0; ContractPriceCompute() { this.HeTongPriceCompute(); this.ContractPrice = 0; var sum = this.ContractPrice; sum = parseFloat(sum); sum=ContractPriceComputeLogic(sum,this.jzDataProduct,this.jzDataDiscount,this.jzDataFixedPrice); this.ContractPrice = sum; } HeTongPriceCompute() { var HeTongPriceList = []; HeTongPriceList=HeTongPriceComputeLogic(this.jzDataDiscount,this.jzDataProduct); if (HeTongPriceList.length > 0) { this.jzDataDiscount = HeTongPriceList; } } //从数据库更新已保存的数据 方案 UpdateBy 2021 06 29 UpdateSaveDataFixedPriceSelectByID() { var idArr = []; this.jzDataFixedPrice.forEach(item => { idArr.push(item.Id); }) selectUpdateFiexedpriceData({ ProId: idArr }).then(result => { var newArr = []; this.jzDataFixedPrice.forEach(dp => { var temp = { ...{}, ...dp }; result.forEach(item => { if (item.Id == temp.Id) { var keys = Object.keys(temp); keys.forEach(k => { var flag = ChangeFiexedData(k); if (flag && item[k] != undefined && item[k] != temp[k]) { temp[k] = item[k]; this.Complate = true; } }) } }) newArr.push(temp); }) this.jzDataFixedPrice = newArr; this.updateIdStr("3"); }) } //加载报价数据 QuoteData = []; OnLoadQuoteData(idStr) { //idStr 报价id GetQuoteData({ QuoteID: idStr }).then(result => { var responseObj = JSON.parse(result); this.QuoteData = initquoT(responseObj,this.buttonIsShow,this.initDataTableFixedPrice,this.initDataTableDiscount,this.initDataTableOtherData,this.initDataTableCommonly); this.buttonIsShow = buttonIsShowE; this.initDataTableFixedPrice = initDTFP; this.initDataTableDiscount = initDTD; this.initDataTableOtherData = initDTOD; this.initDataTableCommonly = initDTC; this.jzDataTableFixedPriceIsShow = true; this.jzDataTableDiscountIsShow = true; this.QTcss = QTcssE(this.pricePolicyflag); this.pricePolicyflag = true; if(!this.QuoteDecision){ this.Save_button = true; this.Decision_button = true; } }) } //打印按钮 PrintButton(){ var id = this.quoId; if (id == null || id == '') { this.Alert(Error_Message33,'error'); return false; } return this.chkEstimation_Entry_Possibility(id); } chkEstimation_Entry_Possibility(q) { try { this.OnLoading(true); var dataChun = PrintButtonLoc(this.quo,this.oppInfo,this.jzDataToBeproduct,this.CheckItem,this.WinOrDecideAlert, this.productStatusUpdated,this.enableSales,this.oppId,this.quoId,this.newQuoteFlag,this.changedAfterPrint,this.quoteGurantee_Period, this.quotemultiYearWarranty,this.selection_hp,this.SkipQuotefilg,this.QuoteDecision) Print(dataChun).then(resaut=>{ debugger this.quoId = saverebackloc(resaut,this.quoId,this.nafg); this.CSVflag = this.quoId?false:true; this.OnLoading(false); if(errorflg){ this.Alert(alertExp,'error'); this.nafg = nafgExp; } if(flg){ this.location = 'Id='+ this.quoId; this.copyid = ''; this.oppId = ''; this.connectedCallback(); } openQuotePage(this.quo.Contract__c,errorflg,this.quoId); }); } catch (e) { this.Alert(e,'error'); } } //不保存返回按钮 noSaveback(){ window.open('/' +this.oppId, '_self'); } //保存并返回 Sback = false; Saveandback(){ this.Sback = true; this.savebuttonClick(); } //decide报价按钮 decisionbuttonClick(){ debugger this.checkchangedAfterPrint('de'); if(this.fg){ this.decisionlo(); } } decisionlo(){ var ff = decisionlol(this.jzDataToBeproduct,this.oppInfo,this.QuotationCalculationFag); if(ff){ this.Alert(alertExp,'error'); }else{ this.chkSalesPossibilityDecision(); } } chkSalesPossibilityDecision() { try { debugger this.tobeflag=false; var quoc = saveEvoluationLogic(this.quo,this.oppInfo,this.jzDataToBeproduct); var oppInfoc = oppInfosave; var quoLineItemc = quoLineItemsave; var quoLineItemCan = JSON.stringify(quoLineItemc); var CheckItemCan = JSON.stringify(this.CheckItem); var oppInfoCan = JSON.stringify(oppInfoc); var quoCan = JSON.stringify(quoc); this.OnLoading(true); if(this.WinOrDecideAlert &&(!this.productStatusUpdated)){ this.PriceStatusUpdate(); } QuoteDecision({activitiesCan:quoLineItemCan, CheckItemCan:CheckItemCan, WinOrDecideAlertc:this.WinOrDecideAlert, productStatusUpdatedc:this.productStatusUpdated, oppInfoc:oppInfoCan, quoc:quoCan, enableSalesc:this.enableSales, oppIdc:this.oppId, quoIdc:this.quoId, newQuoteFlagc:this.newQuoteFlag, changedAfterPrintc:this.changedAfterPrint, quoteGurantee_Periodc:this.quoteGurantee_Period, quotemultiYearWarrantyc:this.quotemultiYearWarranty, selection_hpc:this.selection_hp, SkipQuotefilgc:this.SkipQuotefilg }).then(resaut=>{ debugger var Setmap = new Map() var key = Object.keys(resaut) key.forEach(item=>{ Setmap.set(item,resaut[item]); }); if(Setmap.has('errormessage')){ this.Alert(Setmap.get('errormessage'),'error'); if(Setmap.get('act')){ this.jzDataToBeproduct = actState(Setmap.get('act'),this.jzDataToBeproduct); } }else{ if(Setmap.has('warn')){ this.Alert(Setmap.get('warn'),'warning'); this.jzDataToBeproduct = actState(Setmap.get('act'),this.jzDataToBeproduct); this.acts = true; this.actL = Setmap.get('act'); }else{ this.Alert(Setmap.get('success'),'success'); } if(Setmap.has('quoId')){ window.open('/lightning/n/lexSINewQuoteEntry#Id=' + Setmap.get('quoId'), '_self'); this.location = 'Id='+ Setmap.get('quoId'); this.copyid = ''; this.oppId = ''; this.connectedCallback(); } this.QuoteDecision = true; this.enableContract = true; this.Save_button = true; this.Decisiontag = true; var lg = this.template.querySelectorAll('c-jzlookuplightning2'); lg.forEach(l=>{ l.todisabled(); }) this.initDataTableToBeproduct.columns[4].editable = false; if (this.QuoteDecision == false) { this.sap_button = true; } else if (this.specialAuthority == false) { this.sap_button = true; } else { this.sap_button = false; } this.Decision_button = true; } this.nafg = resultFlag(this.nafg,Setmap); this.tobeflag=true; this.OnLoading(false); }); return true; } catch (e) { this.Alert(e,'error'); } } //保存判断是否生成新报价标识 fg = true; changedAfterPrint = false; QuotationCalculationFag = false; checkchangedAfterPrint(dec) { this.fg = true; var id = this.quoId; this.changedAfterPrint = false; var detailChanged = false; if (!id) { return; }else{ this.fg = false; } var activities = checkch(this.jzDataToBeproduct); getQuoteLineItem({ quoId: id }).then(results=>{ var quote_Date__c = null; if (results.length > 0) { quote_Date__c = results[0]['Quote']['Quote_Date__c']; } if (!detailChanged) { if (activities.length != results.length) { detailChanged = true; } } if (!detailChanged) { for (var j = 0; j < results.length; j++) { if (results[j].PricebookEntryId != activities[j].PricebookEntryId || results[j].SFDA_Status__c != activities[j].SFDA_Status__c || results[j].UnitPrice__c != activities[j].UnitPrice__c || results[j].ListPrice__c != activities[j].ListPrice__c || results[j].Quantity != activities[j].Quantity ) { detailChanged = true; break; } } } if(dec === 'de'){ var IsQuoteTrial = this.quo.IsQuoteTrial__c; }else if(dec === 'sa'){ var IsQuoteTrial = this.ifquocom; } if (detailChanged && ((quote_Date__c != null && quote_Date__c != "" && quote_Date__c != undefined) || IsQuoteTrial)) { this.changedAfterPrint = true; } if(detailChanged && !this.changedAfterPrint){ this.QuotationCalculationFag= true; }else{ this.QuotationCalculationFag= false; } if(dec === 'de'){ this.decisionlo(); }else if(dec === 'sa'){ this.sal(); } }); return; } calFromQuoAmont() { var x = 0, y = 0; x = this.quo.hidden_Estimation_List; x = localParseFloat(x); y = this.quo.Quote_Adjust_Amount_Page__c; this.quo.Quote_Adjust_Amount_Page__c = toNumComma(y); y = localParseFloat(y); var noDiscountPriceTotal = this.hidden_MultiYearWarrantyTotalPrice; noDiscountPriceTotal = localParseFloat(noDiscountPriceTotal); this.quo.QuoteTotal_Page__c = toNumComma(y + x + noDiscountPriceTotal); var z = this.quo.Estimation_List_Price__c; var id = this.quoId; if(!id){ var IsQuoteTrial = this.quo.IsQuoteTrial__c; if(!IsQuoteTrial){ var mp =this.quo.MultiYearWarrantyTotalPrice__c; mp = localParseFloat(mp); var num = this.quo.Quote_Adjust_Calculate__c; num = localParseFloat(num); this.quo.Quote_Adjust_Calculate__c = toNumComma(num); num = (100 + num) / 100; z = localParseFloat(z); var rh = this.oppInfo.rate_hospital; var ra = this.oppInfo.rate_agency1; this.quo.Dealer_Final_Price_Page__c = toNumComma(z*rh); this.quo.OCM_Agent1_Price_Page__c = Saleslet ? toNumComma(z*num*ra+mp) : ''; this.setOCMAmount(); this.calFromContactPrice(); } } if (y == 0) { this.quo.Quote_Adjust_Calculate__c = 0; this.UnitPriceUpdate(); } else { this.quoteTotalPriceAction(); } } UnitPriceUpdate() { this.jzDataToBeproduct = UnitPriceUpdateLogic(this.quo,this.jzDataToBeproduct,this.QuoteDecision_Button); this.quo = quoExp; this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); this.Subtotalupdate(); this.calUnitPriceTotal(); this.quoteTotalPrice(); } Subtotalupdate() { this.jzDataToBeproduct = SubtotalupdateLogic(this.jzDataToBeproduct); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); } quoteTotalPriceAction() { this.jzDataToBeproduct = quoteTotalPriceActionLogic(this.quo,this.jzDataToBeproduct,this.hidden_MultiYearWarrantyTotalPrice,this.QuoteDecision_Button); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); this.quo = quoExp; this.calUnitPriceTotal(); this.QuoteAdjust(); this.DisAmountfunction(); } //取消市场多年保修change事件 multiYearWarrantyChange(event){ debugger this.quo.multiYearWarranty__c = event.detail.checked; this.calPriceAll(); } //主机不带监视器台车change事件 MainEngineWithoutMonitorChange(event){ this.quo.MainEngineWithoutMonitor__c = event.detail.checked; } //跨科室change事件 InterdepartmentalChange(event){ this.quo.Interdepartmental__c = event.detail.checked; this.calPriceAll(); } //单价change事件 UnitPriceChange(event){ this.quo.Unit_Price__c = event.detail.checked; } //报价金额change事件 OfferAmountChange(event){ this.quo.Offer_Amount__c = event.detail.checked; } //报价总额change事件 TOTALChange(event){ this.quo.TOTAL__c = event.detail.checked; } //优惠折扣change事件 DiscountChange(event){ this.quo.Discount__c = event.detail.checked; } //优惠价格change事件 PricingChange(event){ this.quo.Pricing__c = event.detail.checked; } //优惠成交价change事件 PreferentialTradingPriceChange(event){ this.quo.Preferential_Trading_Price__c = event.detail.checked; } //保修年限change事件 PreferentialGuranteePeriodChange(event){ this.quo.Preferential_Gurantee_Period__c = event.detail.checked; } //合同配置change事件 ContractcChange(event){ this.quo.Contract__c = event.detail.checked; } //主机装机地 start //主机装机地 optionList HostInstallationLocationoptionsvalue = []; get HostInstallationLocationoptions() { if(this.HostInstallationLocationoptionsvalue.length<=0){ getPicklistValues({objstr:'Quote',fld:'Installation_location__c',ifempty:true}).then(keyvalue=>{ this.HostInstallationLocationoptionsvalue = keyvalue; }); }else{ return this.HostInstallationLocationoptionsvalue } } HostInstallationLocationhandleChange(event) { this.quo.Installation_location__c = event.detail.value; } //合同保修期(年)optionList ContractWarrantyPeriodYearOptionsvalue = []; get ContractWarrantyPeriodYearOptions() { if(this.ContractWarrantyPeriodYearOptionsvalue.length<=0){ getPicklistValues({objstr:'Quote',fld:'Gurantee_Period__c',ifempty:false}).then(keyvalue=>{ this.ContractWarrantyPeriodYearOptionsvalue = keyvalue; }); }else{ return this.ContractWarrantyPeriodYearOptionsvalue } } ContractWarrantyPeriodYearHandleChange(event) { this.quo.Gurantee_Period__c = event.detail.value; this.calGuranteePeriod(); } // 更新多年保修 保修期 //隐藏合同保修期(年) HiddenGurantee_Period; calGuranteePeriod() { var AllGurantee_Period = this.quo.Gurantee_Period__c; this.HiddenGurantee_Period = AllGurantee_Period; this.jzDataToBeproduct = calGuranteePeriodLogic(this.jzDataToBeproduct,AllGurantee_Period); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); } //合同保修期(年)end //报价变化 optionList QuotationChangesOptionsvalue = []; get QuotationChangesOptions() { if(this.QuotationChangesOptionsvalue.length<=0){ getPicklistValues({objstr:'Quote',fld:'QuotationChange__c',ifempty:true}).then(keyvalue=>{ this.QuotationChangesOptionsvalue = keyvalue; }); }else{ return this.QuotationChangesOptionsvalue } } QuotationChangesHandleChange(event) { this.quo.QuotationChange__c = event.detail.value; } //报价变化 end // 经销商一名称输入框 start onsearchchange1(event){ debugger this.quo.Agency1__c = event.detail.value; } // 经销商一名称输入框 end // 经销商二名称输入框 start onsearchchange2(event){ this.quo.Agency2__c = event.detail.value; } // 经销商二名称输入框 end //报价产品选中数据 @track selectjzDataTableToBeproduct = []; SelectedToBeproduct(event) { let arr = event.detail.rows; this.selectjzDataTableToBeproduct = arr; } //删除报价产品按钮 deletejzDataToBeproduct(){ debugger var msg = "不能删除,如果删除可能影响设备安装。\n\n请确认!"; if(confirm(msg)){ var num = this.jzDataToBeproduct.length; for (var j = 0; j < this.selectjzDataTableToBeproduct.length; j++) { for (var i = 0; i < this.jzDataToBeproduct.length; i++) { if (this.selectjzDataTableToBeproduct[j].lineNo == this.jzDataToBeproduct[i].lineNo) { this.jzDataToBeproduct.splice(i, 1); i--; } } } var ItemL = MarkRed(this.jzDataToBeproduct); this.jzDataToBeproduct =[].concat(ItemL); if(this.jzDataToBeproduct.length!=num){ this.quo.IsQuoteTrial__c = false; } console.warn(this.jzDataToBeproduct.length); this.calPriceAll(); } } getTableDataToBeproduct(event) { } @track jzDataToBeproduct = []; @track tableIsLodingToBeproduct = false; @track initDataTableToBeproduct = initDataTableToBeproductConfig; @track tobeflag = true //报价产品编辑列 onsaveToBeproduct(event){ debugger this.tobeflag = false var data = event.detail.rows; this.jzDataToBeproduct = onsaveToBeproductLoc(data,this.jzDataToBeproduct); if(fagExp){ this.quo.IsQuoteTrial__c = false; this.quoteAgencyTotalPriceAction(); this.AgencyDiscountCalculation1(); } this.updateNoDiscountPricetotal(); this.EstimationListPrice(); this.calUnitPriceTotal(); this.quoteTotalPrice(); setTimeout(() => { this.tobeflag = true; },1); } // 计算 No Discount Price合计 updateNoDiscountPricetotal() { var noDiscountPriceTotal = 0; this.jzDataToBeproduct.forEach(jzdtbt=>{ var noDiscountPrice = jzdtbt.pageObject.ServicePrice__c; noDiscountPrice = localParseFloat(noDiscountPrice); var Quantity = jzdtbt.Quantity__c; Quantity = localParseFloat(Quantity); noDiscountPriceTotal = noDiscountPriceTotal + noDiscountPrice * Quantity; if (jzdtbt.NoDiscountTotal__c) { jzdtbt.NoDiscountTotal__c = toNumComma(noDiscountPrice * Quantity); } }); this.jzDataToBeproduct =[].concat(this.jzDataToBeproduct); this.hidden_MultiYearWarrantyTotalPrice = noDiscountPriceTotal; this.quo.MultiYearWarrantyTotalPrice__c = toNumComma(noDiscountPriceTotal); } handleRowAction(event){ debugger const actionName = event.detail.row; } //========搜索产品配套模态框=========== //打开产品配套模态框开关 @track showSetProductfalg = false; //产品配套按钮 openSetProduct(event){ this.showSetProductfalg = true; } //产品配套 optionList get listViewOptions() { return filterNameoptionList(); } // 产品配套模态框关闭 cancelsetProduct(){ this.showSetProductfalg = false; this.jzSetProductData = []; } // 适用科室 filterName; // 适用科室Change事件 filterNameChange(event){ this.filterName = event.target.value; } // 产品配套名 setSearchName; //产品配套名Change事件 jzSearchNameChange(event){ this.setSearchName = event.target.value; } //产品配套编码 SearchCode; //产品配套编码Change事件 jzSearchCodeChange(event){ this.SearchCode = event.target.value; } initDataSetProductTable = initDataSetProductTablefig; @track jzSetProductData = []; @track tableIsSetProductLoding = false; @track IsLoadingjdspt = false; //产品配套搜索 jzsetProductsearchbutton(){ debugger this.IsLoadingjdspt = true; let SearchCode = this.SearchCode; let filterName = this.filterName; let setSearchName = this.setSearchName; serSetContact({SearchName:setSearchName,SearchCode:SearchCode,filterName:filterName}).then(result=>{ this.jzSetProductData = result; this.IsLoadingjdspt = false; }); } //产品配套选中数据 SelectedNewsetProduct = [] //产品配套选中数据 SelectedSetProductFn(event){ let arr = event.detail.rows; this.SelectedNewsetProduct = arr; } //追加产品配套搜索 additionaljzsetProductbutton(){ debugger var dataChunanshen = additionabuttonLoc(this.SelectedNewsetProduct,this.quo,this.oppInfo,this.jzDataToBeproduct) var num = this.jzDataToBeproduct.length; var isPrepared = DataStatus; var Str = StrExp; if(isPrepared!='Fin'){ confirm(isPrepared); }else if(!Str){ if(confirm("您尚未选取任何产品配套,确认完成么?")){ this.cancelsetProduct(); }else{ } }else{ this.OnLoading(true); setProductEntry(dataChunanshen).then(reslut=>{ var tempArr=reslut.split("---"); var errormessage=tempArr[0]; var quoteLineItem=JSON.parse(tempArr[1]); quoteLineItem = InitializeProductAssignment(quoteLineItem); this.jzDataToBeproduct = quoteLineItem; if(quoteLineItem.length!=num){ this.quo.IsQuoteTrial__c = false; } this.calPriceAll(); if(errormessage.indexOf('成功') >= 0){ this.Alert(errormessage,'success'); }else{ this.Alert(errormessage,'error'); } this.OnLoading(false); }); this.cancelsetProduct(); } this.SelectedNewsetProduct = []; } getTableSetProductData(event) { this.tableIsproductLoding = false; } //======搜索产品配套模态框=========== //=======新增Excel导入模态框======= @track showQuoteExcelImport = false; //Excel导入按钮 openQuoteExcelImport(event){ this.showQuoteExcelImport = true; } // Excel导入态框关闭 cancelQuoteExcelImport(){ this.showQuoteExcelImport = false; this.exceltextvalue = ''; } //Excel导入保存 SavesSQuoteExcelImport(){ let Str = this.exceltextvalue; var num = this.jzDataToBeproduct.length; var quoc = saveEvoluationLogic(this.quo,this.oppInfo,this.jzDataToBeproduct); var oppInfoc = oppInfosave; var quoLineItemc = quoLineItemsave; var quoLineItemCan = JSON.stringify(quoLineItemc); var oppInfoCan = JSON.stringify(oppInfoc); var quoCan = JSON.stringify(quoc); this.OnLoading(true); excelImport({excel_text:Str, activitiesCan:quoLineItemCan, oppInfoc:oppInfoCan, quoc:quoCan}).then(reslut=>{ debugger var tempArr = reslut.split("---"); var errormessage = tempArr[0]; var quoteLineItem = JSON.parse(tempArr[1]); quoteLineItem = InitializeProductAssignment(quoteLineItem); this.jzDataToBeproduct = quoteLineItem; if(quoteLineItem.length!=num){ this.quo.IsQuoteTrial__c = false; } this.calPriceAll(); if(errormessage.indexOf('成功') >= 0){ this.Alert(errormessage,'success'); }else{ console.log('----------------------------SavesSQuoteExcelImport'); this.Alert(errormessage,'error'); } this.OnLoading(false); this.cancelQuoteExcelImport(); }); } //excel值 @track exceltextvalue; //textArea事件 exceltextChange(event){ let value = event.detail.value; this.exceltextvalue = value; } //打开新建产品模态框开关 showproductfalg = false; //新增报价产品按钮 NewQuotationProducts(event){ this.showproductfalg = true; } @track IsLoadingjdpt = false; //选择数据 SelectedNewProduct = []; //新增报价产品列表选事件 SelectedProductFn(event) { let arr = event.detail.rows; this.SelectedNewProduct = arr; } //追加新增产品按钮 additionaljzProductbutton(){ if(this.SelectedNewProduct.length == 0){ if(confirm("您尚未选取任何产品,确认完成么?")){ this.cancelProduct(); } }else{ this.tobeflag = false var selectvlue = this.SelectedNewProduct; var Listvalue = this.jzDataToBeproduct; this.jzDataToBeproduct = additionaljzProductLogic(selectvlue,Listvalue,this.oppInfo.CurrencyIsoCode,this.quo.IsQuoteTrial__c); if(alertExp){ this.Alert(alertExp,'error'); } setTimeout(() => { this.tobeflag = true; },1); this.quo.IsQuoteTrial__c = IsQuoteTrialExp; this.calPriceAll(); this.cancelProduct(); this.SelectedNewProduct= []; } } //新增报价产品模态框取消按钮 cancelProduct() { this.showproductfalg = false; this.jzProductData = []; } //新增报价产品检索条件 @track SearchName = ''; jzProductsearchChange(event){ if(this.SearchName != event.target.value){ this.SearchName = event.target.value; } } //新增报价产品检索按钮 jzProductsearchbutton(event){ debugger this.IsLoadingjdpt = true; let tradec = this.oppInfo.CurrencyIsoCode; let celon = this.oppInfo.CelonOpportunity; let SearchName = this.SearchName; serContact({tradec:tradec,SearchName:SearchName,celon:celon}).then(result=>{ console.warn('1234'+JSON.stringify(result)); this.jzProductData = jzProductsearchLogic(result); this.IsLoadingjdpt = false; }); } //新增报价产品列表加载数据 getTableProductData(event) { this.tableIsproductLoding = false; } //新增报价产品列表数据 @track jzProductData = []; //新增报价产品列表加载动图标识 @track tableIsproductLoding = true; // 新增报价产品列表列配置 @track initDataProductTable = initDataProductTablefig; //报价计算打开按钮 start //打开报价计算标识 quoteflg = false; @track QTcss="slds-button slds-button_neutral slds-button_stretch lexBorder"; showQuotationCalculation(event){ if(this.pricePolicyflag){ this.QTcss = QTcssE(this.pricePolicyflag); this.pricePolicyflag = false; this.quoteflg = false; this.OnLoadProduct = []; this.jzDataDefault = []; this.OnLoadSaveProduct = []; this.jzDataProduct = []; this.OnLoadDiscount = []; this.jzDataDiscount = []; this.OnLoadFixDiscount = []; this.jzDataFixedPrice = []; this.ContractPriceCompute(); if(!this.QuoteDecision){ this.Save_button = false; this.Decision_button = false; } }else{ this.quoteflg = true; if(this.QuoteDecision){ this.quoteTrialInit(); }else{ this.savebuttonClick(); } } } //报价计算区域展开标识 pricePolicyflag = false; //报价计算按钮展开标识 buttonIsShow = false; //合同总价 ContractPrice = 0; ifFTip=true; //保存报价计算结果按钮方法 saveAllDataProductFn() { var dataChunanshen = saveAllDataProductFnChuanshen(this.jzDataFixedPrice,this.jzDataDiscount,this.quoId,this.QuoteData,this.jzDataProduct,this.jzDataDefault,this.ContractPrice) var newTemp = newTempExp; if (this.jzDataDefault.length == 0) { var ifnunum = saveAllDataProductFnPanduan(this.jzDataProduct,newTemp); var ifnull = ifnullExp; if (ifnull&&ifnunum==1) { this.IsLoading=true; saveAllDataProduct(dataChunanshen).then(result => { this.IsLoading=false; this.quo.IsQuoteTrial__c = true; this.SkipQuotefilg = false; this.ifquocom = true; if(this.oppInfo.Sales_Root__c == Sales_Outlet){ var target = {value :this.ContractPrice} var event = {target:target} this.OCMAgent1PricePageonChange(event); }else{ this.quo.Dealer_Final_Price_Page__c = toNumComma(this.ContractPrice); var target = {value :this.ContractPrice} var event = {target:target} this.DealerFinalPricePageChange(event); } this.Alert("数据已保存", 'success'); }); } else { if(ifnunum==2){ this.ifFTip=false; this.Alert("产品明细中金额有负数,不可保存",'error'); }else{ this.ifFTip=false; this.Alert("一般产品的合同价格为空,不可保存",'error'); } } } else { this.ifFTip=false; this.Alert("产品未选完,不可保存",'error'); } } //报价计算打开按钮 end SelectedFnDefault(rows) { let arr = rows; } //获取待选择产品列表数据 UniqueKey = new Map(); getTableDataDefault(event) { let data = []; //todu10 GetPromotionDefalut({ IdParam: this.quoId }).then(result => { this.jzDataDefaultNotChange = []; this.jzDataDefaultCopy = []; var i = 1; result.forEach(rItem => { rItem.ListPrice = rItem.ListPrice__c; rItem.HangHao = i++; // if (!this.flagall) { rItem.Id = rItem.Product2Id; // } let tempS = { ...{}, ...rItem }; this.jzDataDefaultNotChange.push(tempS); this.jzDataDefaultCopy.push(tempS); }); this.getschemedetails(); if (this.flagall) { var newList = []; this.OnLoadProduct.forEach(items => { var DataTemp = {}; result.forEach(reItgem => { if (reItgem.Id == items.Id) { DataTemp = reItgem; return; } reItgem.ListPrice = reItgem.ListPrice__c; }) if (DataTemp != undefined && DataTemp != {}) { DataTemp = { ...DataTemp, ...items }; } newList.push(DataTemp); }) this.jzDataDefault = newList; this.tableIsLodingDefault = false; this.comparisonUniqueKey(); return; } else { result.forEach(rItems => { rItems.ListPrice = rItems.ListPrice__c; }); this.jzDataDefault = result; this.tableIsLodingDefault = false; var event = { page: 1, pageLimit: 10, search: "", sortOrder: "asc", sortPlus: undefined, fag: true }; this.getTableDataFix(event); } }) this.tableIsLodingDefault = false; } //查询价格政策方案关联产品明细 //算出的合计 sumTotal = []; getschemedetails() { this.jzDataFixedPrice.forEach(jdfp => { var SeachData = { SearchId: jdfp.Id }; GetSearchProductById(SeachData).then(result => { var tempObject = { ...{}, ...jdfp } jdfp = this.countListAndNod(tempObject, result); this.sumTotal.push(jdfp); }); }); } @track jzDataDefault = []; //数据 待选择产品数据据 jzDataDefaultNotChange = []; jzDataDefaultCopy = []; @track tableIsLodingDefault = true; @track initSearchFormDefalt = initSearchFormDefalt2; @track initDataTableDefault = initDataTableDefault2; //*******报价计算待选产品 end************ @track show = false //选择促销方案打开按钮 showModal(){ this.show = true; } //选择促销方案模态框取消按钮 cancel() { this.show = false } @track ShowFix; showModalFix() { this.ShowFix = true } cancelFix() { this.ShowFix = false } @track initSearchFormFix = initSearchFormFix2; @track initDataTableFix = initDataTableFix2; @track jzDataFix = []; @track tableIsLodingFix = true; // 点击搜索触发 searchDataFix(event) { let searchParams = event.detail.searchParams || {}; this.template.querySelector('[data-parent-id="parent-div-idFix"]').refreshDataTable({ searchParams: searchParams }); } deleteFixedPrice(){ debugger var fag = deleteFixedPriceLogic(this.SelectedFnDataFixedPrice,this.CompareFullData); this.SelectedFnDataFixedPrice = SelectedFnDataFixedPriceExp; this.CompareFullData = CompareFullDataExp; var ids = idsExp; if (fag) { //删除所选方案匹配的产品 this.DeleteChangesFn(ids, "价格政策"); //调用删除价格政策 this.deleteFixedPriceTemp(); //合同价格汇总 this.ContractPriceCompute(); }else{ this.Alert("一般产品为强制匹配,不可删除",'error'); } } // 删除所选方案匹配的产品 DeleteChangesFn(ids, TypeName) { // ids 选中的方案Id TypeName 方案类型 var CompareFullDataTemp = []; ids.forEach(id => { this.jzDataProduct = DeleteChangesFnLogic(id,TypeName,CompareFullDataTemp,this.CompareFullData,this.jzDataFixedPrice,this.jzDataDiscount,this.jzDataProduct,this.jzDataDefault,this.jzDataDefaultNotChange); CompareFullDataTemp = CompareFullDataTempExp; this.jzDataFixedPrice = jzDataFixedPriceExp; this.jzDataDiscount = jzDataDiscountExp; this.jzDataDefault = jzDataDefaultExp; this.jzDataDefaultNotChange = jzDataDefaultNotChangeExp; //合同价格汇总 this.ContractPriceCompute(); }); this.CompareFullData = CompareFullDataTemp; } //删除价格政策 deleteFixedPriceTemp() { this.jzDataFixedPrice = deleteFixedPriceTempLogic(this.SelectedFnDataFixedPrice,this.jzDataFixedPrice,this.CompareFullData); this.CompareFullData = CompareFullDataExp; this.SelectedFnDataFixedPrice = []; } //价格政策列表选中的数据 @track SelectedFnDataFixedPrice = []; //价格政策选择事件 SelectedFnFixedPrice(event) { let arr = event.detail.rows; this.SelectedFnDataFixedPrice = arr; } //价格政策列表配置列 @track initDataTableFixedPrice = initDataTableFixedPrice2; //价格政策加载数据方法 getTableDataFixedPrice(event) { this.tableIsLodingFixedPrice = false; } //价格政策数据 @track jzDataFixedPrice = []; //价格政策列表loding @track tableIsLodingFixedPrice = true; //价格政策列表展示标识 @track jzshows3 = true; //对比价格政策赋值 comparativeAssignment() { debugger this.jzDataFixedPrice.forEach(jdfp => { //价格政策集合 this.sumTotal.forEach(stl => { //初始化时价格政策集合 if (jdfp.Id == stl.Id) { if (stl.sumListPrice != undefined && stl.sumNoDiscount != undefined) { jdfp.sumListPrice = stl.sumListPrice; jdfp.sumNoDiscount = stl.sumNoDiscount; } } }); }); } //保存价格政策编辑列方法 handleSaveFixedPrice(event) { this.comparativeAssignment(); let editnewDate = []; editnewDate = handleSaveFixedPriceLogic(this.CompareFullData,event,this.jzDataFixedPrice,this.jzDataDefaultCopyQuantityList,this.jzDataDefault); this.CompareFullData = CompareFullDataExp; var HeTongTotal = HeTongTotalExp; let newData = newDataExp; var boolean = booleanExp; var newArrs = [].concat(editnewDate);//20230214 if (boolean == 1) { this.jzDataFixedPrice = newData; newArrs.forEach(item => { this.ComputeData(item.Id, '价格政策'); this.Alert("数据修改成功", 'success'); }); this.jzDataProduct = this.newArrsTemp3.concat(this.newArrsTemp4);//20230213 //合同价格汇总 this.ContractPriceCompute(); } else if (boolean == 3) { this.Alert("修改错误,次数已经超过最大值,不可增加",'error'); } else if (boolean == 4) { this.Alert("修改错误,次数不可以为0",'error'); } else if (boolean == 5) { this.Alert("该方案为强制匹配,次数不可修改!",'error'); } else if (boolean == 6) { var str1 = String(HeTongTotal); var str = "修改错误,合同价格不得小于"; var str3 = str + str1; this.Alert(str3,'error'); } //刷新 this.jzshows3 = false; this.IsLoading3 = true; setTimeout(() => { this.IsLoading3 = false; this.jzshows3 = true; }, 800); } newArrsTemp3 = []; newArrsTemp4 = []; //=======促销方案模态框 start======= // 促销方案搜索框搜索按钮方法 searchData(event) { let searchParams = event.detail.searchParams || {}; let temp = this.template; this.template.querySelector('[data-parent-id="parent-div-id"]').refreshDataTable({ searchParams: searchParams }); } // 促销方案搜索框配置列 @track initSearchForm = initSearchForm2; //促销方案列表选事件 SelectedFn(event) { let arr = event.detail.rows; if (arr.length > 1) { this.Alert("价格政策只可选择一个方案",'error'); } else { this.ifqianpi = true; this.GetSearchProductByIdFn(arr[0].Id, arr[0], "价格政策", [], arr); } this.cancel(); } //促销方案列表加载数据 // 后台交互,获取列表数据 getTableData(event) { debugger let listQuery = event; if (event.fag == undefined) { listQuery = event.detail.listQuery; } GetPromotionPromotionSearch(listQuery).then(result => { //促销方案查询结果 debugger var responseObj = JSON.parse(result); responseObj.records.forEach(item => { var SeachData = { SearchId: item.Id }; GetSearchProductById(SeachData).then(result => { //方案关联的产品 debugger var newarrjdf = SearchProductByIdLogic(result,this.jzDataFixedPrice,this.jzDataDefaultCopyQuantityList,item); this.jzDataDefaultCopyQuantityList = jzDataDefaultCopyQuantityListExp; this.jzDataFixedPrice = [].concat(newarrjdf); }); }); this.jzData = [].concat(responseObj.records); this.tableIsLoding = false; }) } jzDataDefaultCopyQuantityList = []; // 后台交互,获取一般产品列表数据 ifqianpi = true; getTableDataFix(event) { let listQuery = event; if (event.fag) { this.ifqianpi = false; } else { listQuery = event.detail.listQuery; } listQuery.pageLimit = 200; GetNormalProductSearch(listQuery).then(result => { //BBBB var tempArr = result.split("--"); var responseObj = JSON.parse(tempArr[0]); var responseObjAll = JSON.parse(tempArr[1]); //排序 var newArrs = new Array; responseObjAll.forEach(item => { newArrs.push(item); }) newArrs.sort((a, b) => { return a.OrderNo__c - b.OrderNo__c; }) newArrs.forEach(item => { //排序后的一般产品主数据 var SeachData = { SearchId: item.Id }; GetSearchProductById(SeachData).then(results => { var newarrjdf = GetSearchProductByIdLogic(item,results,this.jzDataDefaultCopyQuantityList,this.jzDataFixedPrice); this.jzDataFixedPrice = [].concat(newarrjdf); var iflag = iflagExp; this.jzDataDefaultCopyQuantityList = jzDataDefaultCopyQuantityListExp; if (event.fag && iflag) { var newArr = []; newArr.push(item); this.ifqianpi = false; this.GetSearchProductByIdFn(item.Id, item, "价格政策", [], newArr, false); } }); }); var respons = []; responseObj.records.forEach(rrds => { //查出的前十条 responseObjAll.forEach(rsja => { //查出的所有一般产品数据 if (rrds.Id == rsja.Id) { respons.push(rsja); } }) }) this.jzDataFix = [].concat(respons); this.tableIsLodingFix = false; }) } SelectedFnFix(event) { let arr = event.detail.rows; this.ifqianpi = true; if (arr.length > 1) { this.Alert("价格政策只可选择一个方案",'error'); } else { //获取数据 this.GetSearchProductByIdFn(arr[0].Id, arr[0], "价格政策", [], arr); } this.cancelFix(); } //价格政策匹配 GetSearchProductByIdFn(idStr, jzDataProductParam, TypeName, jzDataDefaultToTemps, arrData, isShow = true) { //dddd var SeachData = { SearchId: idStr }; GetSearchProductById(SeachData).then(result => { var tempObject = { ...{}, ...jzDataProductParam } jzDataProductParam = this.countListAndNod(tempObject, result); arrData = [].concat(jzDataProductParam); //返回数据比较规则 this.CompareData(result, idStr, jzDataProductParam, TypeName, jzDataDefaultToTemps, arrData, isShow); }) } //计算listPrice的和以及nod和 countListAndNod(item, result) { var ifTrade = this.QuoteData[0].Opportunity.Trade__c; //内外贸信息 var copydate=this.jzDataDefaultCopy; var DeftCopyQtyList = this.jzDataDefaultCopyQuantityList; //计算list和nod合计逻辑 item=countListAndNodLogic(ifTrade,copydate,item,result,DeftCopyQtyList); this.jzDataDefaultCopyQuantityList=DeftCopyQtyLists; var arr = { ...{}, ...item }; return arr; } //匹配价格政策时数据比较规则 CompareData(list, idStr, jzDataProductParam, TypeName, jzDataDefaultToTemps, arrData, isShow) { var TempsJzDataToCompare = CompareDataL(list,this.jzDataDefault); var isChange = isChangeExp; //End if (TempsJzDataToCompare.length == list.length&&list.length!=0) { TempsJzDataToCompare.forEach(TempsItems => { this.ComparePushData(TempsItems.item.Quantity, TempsItems.element.Quantity__c, TempsItems.element.Asset_Model_No__c, idStr, jzDataProductParam, TypeName); }); //判断是否显示 提示框 if (isShow) { if (this.ifqianpi) { this.Alert("促销方案选择完成", 'success'); } } } else { if (isShow) { if (this.ifqianpi) { this.Alert("促销方案不满足,请重新选择",'error'); } } return; } if (isChange) { this.ChangeNumZeroTrueChanges(); } var temps = this.CompareFullData; //添加 this.UpdateJZData(arrData); //更新次数 this.updatesNums(); //合并重复价格政策方案 var jzarr = [].concat(this.jzDataFixedPrice);; this.MergeDuplicateSchemes(jzarr); //保存最大次数 this.savecount(idStr); //计算价格 this.ComputeData(idStr, '价格政策'); } ComparePushData(length, Quantity, Asset_Model_No__c, Id, jzDataProductParam, TypeName) { //修改 产品明细 let num = parseInt(length / Quantity); var newDataDefault = ComparePushDataLogic(this.jzDataDefault,this.jzDataProduct,Asset_Model_No__c,Id,TypeName,jzDataProductParam,Quantity,num); this.jzDataProduct = jzDataProductExp; this.ContractPriceCompute(); this.jzDataDefault = newDataDefault; this.ChangeNumZeroTrue(); this.AddNums(TypeName, Asset_Model_No__c, num, Id); } ChangeNumZeroTrueChanges() { if (this.jzDataDefault.length != this.ChangeNumZeroTrueData) { this.jzDataDefault = this.ChangeNumZeroTrueData; } } UpdateJZData(arrs) { //arrs 选中的数据集合 if (this.jzDataFixedPrice == null || this.jzDataFixedPrice.length <= 0) { this.jzDataFixedPrice = arrs; } else { this.jzDataFixedPrice = this.jzDataFixedPrice.concat(arrs); }; } // =======更新促销方案次数数据 updatesNums() { var jzDataFixedPriceTemp = [].concat(this.jzDataFixedPrice); var jzDataDiscountTemp = [].concat(this.jzDataDiscount); var CompareFullData = this.CompareFullData; updatesNumsLogic(jzDataFixedPriceTemp,jzDataDiscountTemp,CompareFullData); this.jzDataFixedPrice = jzDataFixedPriceTemps; this.jzDataDiscount = jzDataDiscountTemps; } //合并重复价格政策方案 MergeDuplicateSchemes(SchemeSet) { var arr = []; arr = MergeDuplicateSchemesLogic(this.CompareFullData,SchemeSet); this.CompareFullData = CompareFullDataExp; this.jzDataFixedPrice = [].concat(arr); this.ConsolidationProgramProducts(arr); } //计算价格政策价格 ComputeData(id, category) { this.ReplacementUnitPrice(); //数据 this.updateIdStr("3"); var arrTemp = this.jzDataFixedPrice; // id 价格政策 this.updateIdStr("1"); var arrProductTemp = this.jzDataProduct; // PromotionId 产品明细 var arrTemp2 = this.jzDataDefault; //待选产品 if (category == '价格政策') { arrTemp.forEach(item => { // item价格政策 if (id == item.Id) { item.Total = item.Counts * item.Price_CNY__c; item.sumNoDiscountTotal = item.sumNoDiscount * item.Counts; //计算促销总价&& item.HeTongTotal == undefined if (item.Price_CNY__c != undefined) { if (item.determine != '改过') { if (item.if_Contain_Nod__c) { item.HeTongTotal = item.Total; } else { item.HeTongTotal = item.Total + item.sumNoDiscountTotal; } } } //计算选择促销政策的经销商单价和小计 var PromotionHeadRecordId = item.recordTypeName__c; if (PromotionHeadRecordId == "Promotion") { //促销方案 arrProductTemp = ComputeDataPromotionLogic(this.newArrsTemp3,this.newArrsTemp4,this.jzDataDefaultCopyQuantityList,this.jzDataDefaultCopy,this.QuoteData,arrProductTemp,item,arrTemp2,this.jzDataDefault); this.newArrsTemp3 = newArrsTemp3Exp; this.newArrsTemp4 = newArrsTemp4Exp; this.jzDataDefault = jzDataDefaultExp; this.jzDataDefaultCopy = jzDataDefaultCopyExp; this.jzDataProduct = arrProductTemp; //合同价格汇总 this.ContractPriceCompute(); } else if (PromotionHeadRecordId == "NormalProduct") { //一般产品 //todu3 arrProductTemp = ComputeDataNormalProductLogic(this.newArrsTemp3,this.newArrsTemp4,this.jzDataDefaultCopyQuantityList,this.jzDataDefaultCopy,this.QuoteData,arrProductTemp,item,arrTemp2,this.jzDataDefault); this.newArrsTemp3 = newArrsTemp3Exp; this.newArrsTemp4 = newArrsTemp4Exp; this.jzDataDefault = jzDataDefaultExp; this.jzDataDefaultCopy = jzDataDefaultCopyExp; this.jzDataProduct = arrProductTemp; //合同价格汇总 this.ContractPriceCompute(); } } }); this.jzDataFixedPrice = [].concat(arrTemp); } } ReplacementUnitPrice() { var ifTrade = this.QuoteData[0].Opportunity.Trade__c; //内外贸 var arr = [].concat(this.jzDataProduct);//20230214 this.jzDataProduct = [].concat(ReplacementUnitPriceLogic(arr, ifTrade));//20230214 this.ContractPriceCompute(); } //保存最大次数 savecount(idStr) { //idStr 选中的数据ID this.jzDataFixedPrice = savecountLogic(this.jzDataFixedPrice,idStr); } ChangeNumZeroTrueData = [] ChangeNumZeroTrue() { this.ChangeNumZeroTrueData = [].concat(this.jzDataDefault); var newJzDataDefault = this.ChangeNumZeroTrueData.filter(item => { if (item.Quantity > 0) { return true; } else { return false; } }) this.ChangeNumZeroTrueData = newJzDataDefault; } //用于填充次数 CompareFullData = [] AddNums(ListName, Asset_Model_No__c, addNums, Id) { this.CompareFullData = AddNumsLogic(ListName, Asset_Model_No__c, addNums, Id,this.CompareFullData); } //归并相同价格政策方案的产品 ConsolidationProgramProducts(arrSchemes) { var jzdataList = [].concat(this.jzDataProduct); this.jzDataProduct = PriceConsolidation(arrSchemes, jzdataList); } //促销方案列表数据 @track jzData = []; //促销方案列表加载动图标识 @track tableIsLoding = true; // 促销方案列表列配置 @track initDataTable =initDataTable2; jzdateflag=true; IsLoading6 = false; //促销方案列表编辑列保存 savejzData(event){ var data = event.detail.rows; for (var i = 0; i < this.jzData.length; i++) { for (var j = 0; j < data.length; j++) { var id = data[j].Id.replace("row-", ""); if (this.jzData[i].Id == id) { this.jzData[i].Quantity__c=data[j].Quantity__c; } } } this.jzdateflag = false; this.IsLoading6 = true; setTimeout(() => { this.jzdateflag = true; this.IsLoading6 = false; }, 1000); } //============促销方案模态框 end========== //**********价格政策 end********** //*********折扣政策 start********** //选择特约折扣打开按钮 showModalSpecial(){ this.QuoteData.forEach(qtd => { if (!qtd.Opportunity.IsAuthorized__c) { this.Alert("该询价不是特约经销商授权",'error'); } else { this.ShowSpecial = true; } }); } //选择一般折扣打开按钮 showModalCommonly(){ this.ShowCommonly = true } //折扣政策删除按钮事件 delectTableDiscount(){ let ids = []; for (var j = 0; j < this.SelectedFnDataDiscount.length; j++) { ids.push(this.SelectedFnDataDiscount[j].Id); } this.DeleteSchemeMatching(this.SelectedFnDataDiscount, "折扣政策"); this.delectTableDiscountTemp(); this.ContractPriceCompute(); } DeleteSchemeMatching(ids, TypeName) { var CompareFullDataTemp = []; ids.forEach(id => { this.jzDataProduct = DeleteSchemeMatchingLogic(id,TypeName,CompareFullDataTemp,this.CompareFullData,this.jzDataFixedPrice,this.jzDataDiscount,this.jzDataProduct,this.jzDataDefault,this.jzDataDefaultNotChange); CompareFullDataTemp = CompareFullDataTempExp; this.jzDataFixedPrice = jzDataFixedPriceExp; this.jzDataDiscount = jzDataDiscountExp; this.jzDataDefault = jzDataDefaultExp; this.jzDataDefaultNotChange = jzDataDefaultNotChangeExp; //合同价格汇总 this.ContractPriceCompute(); }); this.CompareFullData = CompareFullDataTemp; } //折扣政策选中列表数据 @track SelectedFnDataDiscount = [] //折扣政策选择事件 SelectedFnDiscount(event) { let arr = event.detail.rows; this.SelectedFnDataDiscount = arr; } //折扣政策列表数据 @track jzDataDiscount = []; //折扣政策列表加载动图标识 @track tableIsLodingDiscount = true; //折扣政策列表列配置 @track initDataTableDiscount = initDataTableDiscount2; //折扣政策列表列加载方法 getTableDataDiscount(event) { this.tableIsLodingDiscount = false; } @track Tongzhishow = false; //提示显示的标识 SaveShowText = "操作成功"; //提示框的文本 TongzhiIcon = 'standard:account' //提示框的图标 IsLeftStyle = "" //提示框的样式 BgColorStyle = "" //弹框提示 content 内容 error 是否是错误提示框 left 是否居左 Alert(msg,type) { if(type == 'success'){ const event = new ShowToastEvent({ message: msg, variant: type, }); this.dispatchEvent(event); }else{ const event = new ShowToastEvent({ message: msg, variant: type, mode: 'sticky' }); this.dispatchEvent(event); } } //折扣政策编辑列保存方法 handleSaveDiscount(event) { this.jzDataDiscount = handleSaveDiscountLogic(this.jzDataDiscount,this.jzDataProduct,event); var boolean = booleanExp; var boolean2 = boolean2Exp; var boolean3 = boolean3Exp; let newData = newDataExp; let newData2 = newData2Exp; let newData3 = newData3Exp; let editnewDate = editnewDateExp; var GuaranteeDiscount__cZuiXiao = GuaranteeDiscount__cZuiXiaoExp; var NormalDiscount__cZuiXiao = NormalDiscount__cZuiXiaoExp; this.jzDataProduct = jzDataProductExp; //haha2 debugger if (boolean == 0) { this.jzDataDiscount = newData; var newArrs = [].concat(editnewDate);//20230214 newArrs.forEach(item => { //合并折扣政策重复方案 this.ConsolidatedDiscountPolicy(this.jzDataDiscount); this.ComputeDiscount(item.Id, item.NormalDiscount__c_Input, item.GuaranteeDiscount__c_Input, item.Category__c, item.JxsType); }); this.jzDataProduct = this.newArrsTemp2.concat(this.newArrsTemp);//20230213 //合同价格汇总 this.ContractPriceCompute(); this.Alert("数据修改成功", 'success'); } else if (boolean == 1) { this.Alert("修改错误,对象品折扣不得小于对象品最低折扣:"+GuaranteeDiscount__cZuiXiao+"%",'error'); } else if (boolean == 2) { this.Alert("修改错误,非对象品折扣不得小于非对象品最低折扣:"+NormalDiscount__cZuiXiao+"%",'error'); } else if (boolean == 3) { this.Alert("修改错误,一般折扣没有对象品折扣",'error'); } else if (boolean == 5) { this.Alert("非对象品折扣不可以为空或小于0",'error'); } else if (boolean == 4) { this.jzDataDiscount = newData; var ffgg=0; if(boolean3){ newData2.forEach(HeTo => { //根据合同价格计算一般折扣 HeTo = this.ComouteProductDiscount(HeTo.Id,HeTo.Category__c,HeTo.GuaranteeDiscount__c_Input, HeTo.NormalDiscount__c_Input, HeTo.GuaranteeDiscount_H_Money__c,HeTo.NormalDiscount_H_Money__c, HeTo); if(HeTo==1||HeTo==2||HeTo==12||HeTo==3){ ffgg=HeTo; return ; } //合并折扣政策重复方案 let jzDataDiscountx = [].concat(this.jzDataDiscount);//20230214 this.ConsolidatedDiscountPolicy(jzDataDiscountx); //一般折扣更改过合同价格计算 this.updateCommonlyDiscountLogic(HeTo.Id,HeTo.JxsType,HeTo.GuaranteeDiscount__c_Input,HeTo.NormalDiscount__c_Input,HeTo.Category__c,this.jzDataDiscount); }); } if(boolean2&&ffgg==0){ newData3.forEach(TeYue=>{ //根据合同价格计算特约折扣 GuaranteeDiscount__cZuiXiao=parseFloat(TeYue.GuaranteeDiscount__c); NormalDiscount__cZuiXiao=parseFloat(TeYue.NormalDiscount__c); TeYue=this.ComouteProductDiscount(TeYue.Id,TeYue.Category__c,TeYue.GuaranteeDiscount__c_Input, TeYue.NormalDiscount__c_Input, TeYue.GuaranteeDiscount_H_Money__c,TeYue.NormalDiscount_H_Money__c, TeYue); if(TeYue==1||TeYue==2||TeYue==12||TeYue==3){ ffgg=TeYue; return ; }else{ //合并折扣政策重复方案 this.ConsolidatedDiscountPolicy(this.jzDataDiscount); //一般折扣更改过合同价格计算 this.updateCommonlyDiscountLogic(TeYue.Id,TeYue.JxsType,TeYue.GuaranteeDiscount__c_Input,TeYue.NormalDiscount__c_Input,TeYue.Category__c,this.jzDataDiscount); } }); } if(ffgg==1||ffgg==2||ffgg==12||ffgg==3){ this.Alert(InverseCalculationTiShi(ffgg,GuaranteeDiscount__cZuiXiao,NormalDiscount__cZuiXiao),'error'); }else{ this.Alert("数据修改成功", 'success'); } } //刷新 this.jzshows2 = false; setTimeout(() => { this.jzshows2 = true; }, 800) } newArrsTemp = []; newArrsTemp2 = []; //计算一般折扣非对象品折扣 ComouteProductDiscount(Id,Category__c,GuaranteeDiscount__c_Input, NormalDiscount__c_Input,GuaranteeDiscount_H_Money__c, NormalDiscount_H_Money__c, item) { //todu12 this.updateIdStr("2"); this.updateIdStr("1"); var reslut=ReverseCalculationModifyDiscountLogic(this.jzDataDiscount,this.jzDataProduct,Id,Category__c,GuaranteeDiscount__c_Input, NormalDiscount__c_Input,GuaranteeDiscount_H_Money__c, NormalDiscount_H_Money__c, item); this.jzDataDiscount=[].concat(arrTempsss); this.jzDataProduct=[].concat(arrProductTempsss);//20230214 return reslut; } //一般折扣更改过合同价格计算 updateCommonlyDiscountLogic(Id,JxsType,GuaranteeDiscount__c_Input,NormalDiscount__c_Input,Category__c,jzDataDiscount) { //todu13 this.updateIdStr("1"); this.jzDataProduct=updateCDLogic(Id,JxsType,GuaranteeDiscount__c_Input,NormalDiscount__c_Input,Category__c,jzDataDiscount,this.jzDataProduct); this.GeneralDiscountContractSummary(); } //更改一般折扣合同价格计算合同总价 GeneralDiscountContractSummary(){ this.ContractPrice = 0; var sum = this.ContractPrice; sum = parseFloat(sum); sum=GeneralDiscountContractSummaryLogic(sum,this.jzDataDiscount,this.jzDataFixedPrice); this.ContractPrice = sum; } //折扣政策列表展示标识 jzshows2 = true; //============特约折扣模态框 start========= ///特约折扣待选方案列表选择数据 @track SelectedFnDataSpecial = []; //特约折扣模态框错误提示开关 ShowSpecialIsError = false; //特约折扣待选方案列表选中方法 SelectedFnSpecial(event) { let arr = event.detail.rows; if (event.detail.rows.length > 1) { this.ShowSpecialIsError = true; } else { this.ShowSpecialIsError = false; } var TempArr = []; TempArr.push(arr[0]) var tempObject = { ...{}, ...TempArr[0] } tempObject.CompareId = GetUUID(); this.SelectedFnDataSpecial = [tempObject]; } //特约折扣待选方案列表加载方法 getTableDataSpecial(event) { let listQuery = event.detail.listQuery; var Agency1__c = this.QuoteData[0].Agency1__c; listQuery.pageLimit = 40; listQuery.Agency1c = Agency1__c; GetAuthorizerSearch(listQuery).then(result => { var responseObj = JSON.parse(result); this.jzDataSpecial = responseObj.records; this.jzDataSpecial.forEach(element => { element.JxsType = "特约折扣"; element.NormalDiscount__c = element.NormalDiscount__c+"%"; element.GuaranteeDiscount__c = element.GuaranteeDiscount__c+'%'; }); GetAgencyRName().then(gar => { //获取经销商姓名 var a = JSON.parse(gar); a.forEach(ga => { if (ga.Agency__r != undefined) { var arr = []; this.jzDataSpecial.forEach(jzdsc => { //特约折扣方案数据 if (ga.Agency__c == jzdsc.Agency__c) { jzdsc.Agency__Name = ga.Agency__r.Name; arr.push(jzdsc); } else { arr.push(jzdsc); } }); this.jzDataSpecial = [].concat(arr);//20230214 } }); }) this.tableIsLodingSpecial = false; }) } //特约折扣待选方案列表列配置 @track initDataTableSpecial = initDataTableSpecial2; //特约折扣待选方案列表数据 @track jzDataSpecial = []; //特约折扣待选方案列表加载动图标识 @track tableIsLodingSpecial = true; //特约折扣待选产品列表选择数据 @track SelectedOtherDataArr = []; //特约折扣待选产品列表选中方法 SelectedFnOtherData(event) { let arr = event.detail.rows; this.SelectedOtherDataArr = arr; } //特约折扣待选产品列表列配置 @track initDataTableOtherData = initDataTableOtherData2; //特约折扣待选产品列表数据 @track jzDataOtherData = []; //特约折扣待选产品列表加载动图标识 @track tableIsLodingOtherData = true; //特约折扣模态框开关 @track ShowSpecial; //特约折扣待选产品列表加载方法 getTableDataOtherData(event) { if (!this.IsLoadingFlag1) { return }; this.jzDataOtherData = this.jzDataDefault; var jzDataOtherDataTemp = []; this.jzDataOtherData.forEach(jzdod => { var ItemsTemp = { ...{}, ...jzdod }; ItemsTemp.SplitQuantity = ItemsTemp.Quantity; jzDataOtherDataTemp.push(ItemsTemp); }) this.jzDataOtherData = jzDataOtherDataTemp; this.tableIsLodingOtherData = false; } //特约折扣待选产品列表外加载动图标识 IsLoading5 = false; //特约折扣待选产品展示标识 jzshows5 = true; // IsLoadingFlag1 = true; //特约折扣待选产品编辑列保存方法 SaveSpecialDiscount(event) { debugger var data = event.detail.rows; let newData = []; let editnewDate = []; var boolean = 1; for (var i = 0; i < this.jzDataOtherData.length; i++) { var editData = {}; var flag = false; for (var j = 0; j < data.length; j++) { var id = data[j].Id; if (this.jzDataOtherData[i].Id == id) { editData = { SplitQuantity: '' }; //拆分次数 editData.SplitQuantity = data[j].SplitQuantity; flag = true; } } if (flag) { var newItem = { ...this.jzDataOtherData[i], ...{} }; if (editData.SplitQuantity != undefined) { newItem.SplitQuantity = Number(editData.SplitQuantity); } newData.push(newItem); editnewDate.push(newItem); } else { newData.push({ ...{}, ...this.jzDataOtherData[i] }); } } //haha4 var newArrs = [].concat(editnewDate);//20230214 newArrs.forEach(item => { if (item.Quantity < item.SplitQuantity) { boolean = 2; } else if (item.SplitQuantity == 0 || item.SplitQuantity == '') { boolean = 3; } }); if (boolean == 1) { this.jzDataOtherData = newData; this.ShowSpecialIsError = false; } else if (boolean == 2) { this.errorTiShi("修改错误,使用数量不得大于数量"); } else if (boolean == 3) { this.errorTiShi("修改错误,使用数量不得为0或为空"); } //刷新 this.jzshows5 = false; this.IsLoading5 = true; this.IsLoadingFlag1 = false; setTimeout(() => { this.SelectedOtherDataArr = []; this.IsLoading5 = false; this.jzshows5 = true; }, 1000); setTimeout(() => { this.IsLoadingFlag1 = true; }, 2000); } //特约错误提示 errorTiShi(str){ this.ShowSpecialIsError = true; this.ShowSpecial = true; this.ShowSpecialError = str; } //特约折扣模态框取消按钮方法 cancelSpecial() { this.ShowSpecial = false this.ShowSpecialIsError = false; this.SelectedFnDataSpecial = []; this.SelectedOtherDataArr = []; } //特约折扣模态框保存按钮方法 SavesSpecial() { this.ShowSpecialIsError = false; this.ShowSpecial = false; var ItempTempData = { ...{}, ...this.SelectedFnDataSpecial[0] }; if (this.SelectedOtherDataArr.length == 0 && this.SelectedFnDataSpecial.length != 0) { this.errorTiShi("请选择特约折扣产品!"); } else if (this.SelectedFnDataSpecial.length == 0 && this.SelectedOtherDataArr.length != 0) { this.errorTiShi("请选择特约折扣方案!"); } else if (this.SelectedFnDataSpecial.length == 0 && this.SelectedOtherDataArr.length == 0) { this.errorTiShi("请选择特约折扣方案和产品!"); } else { ItempTempData.itemss = this.SelectedOtherDataArr; ItempTempData.IsTempItems = true; ItempTempData.NormalDiscount__c_Input = ItempTempData.NormalDiscount__c; ItempTempData.GuaranteeDiscount__c_Input = ItempTempData.GuaranteeDiscount__c; this.SelectedFnDataSpecial[0] = ItempTempData; this.UpdateDiscountData(this.SelectedFnDataSpecial); this.SpecialSavesChange("特约折扣", ItempTempData, this.SelectedFnDataSpecial[0].Id, this.SelectedFnDataSpecial[0].CompareId); this.Alert("特约折扣选择完成", 'success'); this.ConsolidatedDiscountPolicy(this.jzDataDiscount); this.ComputeDiscount(ItempTempData.Id, ItempTempData.NormalDiscount__c, ItempTempData.GuaranteeDiscount__c, ItempTempData.Category__c, ItempTempData.JxsType); this.SelectedFnDataSpecial = []; this.SelectedOtherDataArr = []; } } //计算折扣政策 ComputeDiscount(id, NormalDiscount__c_Input, GuaranteeDiscount__c_Input, Category__c, JxsType) { //todu2 this.updateIdStr("1"); var arrProductTemp = this.jzDataProduct; // PromotionId 产品明细 this.updateIdStr("2"); var arrTemp1 = this.jzDataDiscount; //折扣政策 arrTemp1.forEach(item => { //item折扣政策 if (JxsType == '特约折扣') { if (item.JxsType == '特约折扣') { if (id == item.Id) { if (item.iftrue != "改过" && item.GuaranteeDiscount__c_Input == undefined && item.NormalDiscount__c_Input == undefined) { item.GuaranteeDiscount__c_Input = item.GuaranteeDiscount__c; item.NormalDiscount__c_Input = item.NormalDiscount__c; } if (NormalDiscount__c_Input == item.NormalDiscount__c_Input && //非对象品折扣录入 GuaranteeDiscount__c_Input == item.GuaranteeDiscount__c_Input) { //对象品折扣录入 arrProductTemp = ComputeDiscountAuthorizerLogic(this.newArrsTemp,this.newArrsTemp2,item,arrProductTemp); this.newArrsTemp = newArrsTempExp; this.newArrsTemp2 = newArrsTemp2Exp; this.jzDataProduct = arrProductTemp; //合同价格汇总 this.ContractPriceCompute(); } } } } else if (JxsType == '一般折扣') { if (item.JxsType == '一般折扣') { if (NormalDiscount__c_Input == item.NormalDiscount__c_Input && Category__c == item.Category__c) { this.newArrsTemp = []; this.newArrsTemp2 = []; arrProductTemp.forEach(itemss => { //itemss产品明细 if (itemss.NormalDiscount__c_Input == item.NormalDiscount__c_Input && itemss.Category__c == item.Category__c) { itemss = commonlyDiscountLogic(itemss, item); //一般折扣计算逻辑 this.newArrsTemp.push(itemss); } else if (itemss.Category__c != item.Category__c || itemss.NormalDiscount__c_Input != item.NormalDiscount__c_Input) { this.newArrsTemp2.push(itemss); } }); this.jzDataProduct = arrProductTemp; //合同价格汇总 this.ContractPriceCompute(); } } } }); this.jzDataDiscount = [].concat(arrTemp1);//20230214 } //折扣政策匹配规则 SpecialSavesChange(SaveName, SelectedData, IdStr, CompareId) { var newDicountData = []; newDicountData=SpecialSavesChangePartLogic(this.jzDataDefault,SaveName, SelectedData, IdStr, CompareId,0,newDicountData,this.jzDataDiscount); this.jzDataDefault = NewDefaultDatass; this.jzDataProduct =this.jzDataProduct.concat(AddProductDatass);//20230213 //合同价格汇总 this.ContractPriceCompute(); this.jzDataDiscount = newDicountData; } //合并折扣政策重复方案 ConsolidatedDiscountPolicy(SchemeSet) { var arr = []; arr = ConsolidatedDiscountPolicyLogic(SchemeSet, arr); this.jzDataDiscount = [].concat(arr); this.ConsolidatedDiscountDetails(arr); } //合并折扣政策产品明细 ConsolidatedDiscountDetails(arrSchemes) { var jzdataList = [].concat(this.jzDataProduct); this.jzDataProduct = ConsolidatedDiscountDetailsLogic(arrSchemes, jzdataList); } //=======特约折扣模态框 end====== //========一般折扣模态框 start======== //一般折扣模态框开关 @track ShowCommonly; //一般折扣待选产品列表外加载动图标识 IsLoading4 = false; //一般折扣待选产品展示标识 jzshows4 = true; // IsLoadingFlag = true; //一般折扣待选产品编辑列保存方法 SaveGeneralDiscount(event) { var data = event.detail.rows; let newData = SaveGeneralDiscountLogic(data,this.jzDataCommonly); var boolean = booleanExp; if (boolean == 1) { this.jzDataCommonly = newData; this.ShowCommonlyIsError = false; } else if (boolean == 2) { this.ShowCommonlyIsError = true; this.ShowCommonlyError = "修改错误,使用数量不得大于数量"; } else if (boolean == 3) { this.ShowCommonlyIsError = true; this.ShowCommonlyError = "修改错误,使用数量不得为0或为空"; } //刷新 this.jzshows4 = false; this.IsLoading4 = true; this.IsLoadingFlag = false; setTimeout(() => { this.SelectedFnCommonlyData = []; this.IsLoading4 = false; this.jzshows4 = true; }, 1000); setTimeout(() => { this.IsLoadingFlag = true; }, 2000); } //一般折扣模态框取消按钮方法 cancelCommonly() { this.ShowCommonly = false; this.ShowCommonlyIsError = false; this.SelectedFnCommonlyData = []; this.SaveLb = ''; this.SaveZk = ''; } //一般折扣待选产品列表列配置 @track initDataTableCommonly = initDataTableCommonly2; //一般折扣待选产品列表数据 @track jzDataCommonly = []; //一般折扣待选产品列表加载动图标识 @track tableIsLodingCommonly = true; //一般折扣待选方案列表加载方法 getTableDataCommonly(event) { if (!this.IsLoadingFlag) { return }; this.jzDataCommonly = this.jzDataDefault; this.jzDataCommonly = getTableDataCommonlyLogic(this.jzDataCommonly); this.tableIsLodingCommonly = false; } //一般折扣待选产品列表选择数据 SelectedFnCommonlyData = []; //一般折扣待选产品列表选中方法 SelectedFnCommonly(event) { let arr = event.detail.rows; this.SelectedFnCommonlyData = SelectedFnCommonlyLogic(arr); } //产品系列数据 SaveLb = ''; //使用折扣数据 SaveZk = ''; //产品系列方法 handleChangeLb(event) { this.SaveLb = event.target.value; } //使用折扣方法 handleChangeZk(event) { if (event.target.value !== '') { event.target.value = parseFloat(event.target.value) + "%"; } this.SaveZk = event.target.value; } //一般折扣模态框错误提示方法 errorTiShiYi(str){ this.ShowCommonlyIsError = true; this.ShowCommonlyError = str; } //一般折扣模态框错误提示默认内容 ShowCommonlyError = "请选择一般产品!"; //一般折扣模态框错误提示开关 ShowCommonlyIsError = false; //一般折扣模态框取消按钮方法 cancelSaveCommonly() { //处理数据 var arr = this.SelectedFnCommonlyData; this.ShowCommonlyIsError = false; if (this.SelectedFnCommonlyData.length != 0) { var ItempTempData = {}; ItempTempData.Id = GetUUID(); ItempTempData.CompareId = GetUUID(); ItempTempData.Name = '一般折扣'; ItempTempData.JxsType = "一般折扣"; ItempTempData.itemss = arr; if (this.SaveLb == '' || this.SaveZk == '') { if (this.SaveLb == '' && this.SaveZk != '') { this.errorTiShiYi("请选择产品类别!"); } else if (this.SaveZk == '' && this.SaveLb != '') { this.errorTiShiYi("请输入使用折扣!"); } else if (this.SaveZk == '' && this.SaveLb == '') { this.errorTiShiYi("请输入使用折扣和产品类别!"); } } else { ItempTempData.Category__c = this.SaveLb; ItempTempData.NormalDiscount__c_Input = this.SaveZk; ItempTempData.if_Contain_Nod__c = false; var TempList = []; TempList.push(ItempTempData); this.UpdateDiscountData(TempList); this.SpecialSavesChange("一般折扣", ItempTempData, ItempTempData.Id, ItempTempData.CompareId); this.cancelCommonly(); this.Alert("一般折扣选择完成", 'success'); this.ConsolidatedDiscountPolicy(this.jzDataDiscount); //计算折扣政策价格 this.ComputeDiscount(ItempTempData.Id, ItempTempData.NormalDiscount__c_Input, ItempTempData.GuaranteeDiscount__c, ItempTempData.Category__c, ItempTempData.JxsType); } } else { this.errorTiShiYi("请选择一般产品!"); } } //将产品与方案匹配 UpdateDiscountData(arrs) { //选中的数据 if (this.jzDataDiscount == null || this.jzDataDiscount.length <= 0) { this.jzDataDiscount = arrs; } else { this.jzDataDiscount = this.jzDataDiscount.concat(arrs); } } //========一般折扣模态框 end======= //产品明细删除方法 delectTableProduct(){ this.DeleteIsChangesFnSingle(this.SelectedFnProductData); } DeleteIsChangesFnSingle(list) { let num = 0; list.forEach(item => { num++; var falg = true; if (item.TypeName == "价格政策") { this.DeleteIsChangelogic(item, item.TypeName, num, list); var TempItem = DeleteIsChangesFnjiage(this.jzDataFixedPrice,this.jzDataProduct,falg,item); falg = falgExp; if (TempItem && falg) { this.SelectedFnDataFixedPrice.push(TempItem); this.deleteFixedPriceTemp(); } } else if (item.TypeName == "折扣政策") { this.DeleteIsChangelogic(item, item.TypeName, num, list); var TempItemTOName = DeleteIsChangesFnzhekou(this.jzDataDiscount,this.jzDataProduct,falg,item); falg = falgExp; if (TempItemTOName != undefined && falg) { this.SelectedFnDataDiscount.push(TempItemTOName); this.delectTableDiscountTemp(); } } this.ContractPriceCompute(); }) } //删除产品明细和待选产品 item是选中的产品明细对象 TypeName是选中的产品明细对对应的方案类型 DeleteIsChangelogic(item, TypeName, num, list) { var boofag = DeleteIsChangelogicExp(item,TypeName,this.jzDataProduct,this.jzDataDefault,this.jzDataDefaultCopy); this.jzDataProduct = jzDataProductExp; this.jzDataDefault = jzDataDefaultExp; this.jzDataDefaultCopy = jzDataDefaultCopyExp; if(boofag == 1){ this.Alert("促销方案内产品型号,数量固定,不可删除明细",'error'); }else if(boofag == 2){ this.Alert("该产品为一般产品,不可删除明细",'error'); } //合同价格汇总 this.ContractPriceCompute(); } delectTableDiscountTemp() { this.jzDataDiscount = delectTableDiscountTempLogic(this.SelectedFnDataDiscount,this.jzDataDiscount); this.SelectedFnDataDiscount = []; } //产品明细列表数据加载方法 getTableDataProduct(event) { this.tableIsLodingProduct = false; } //产品明细选中列表数据 @track SelectedFnProductData = []; //产品明细选中列表方法 SelectedFnProduct(event) { let arr = event.detail.rows; this.SelectedFnProductData = arr; } //产品明细列表列配置 @track initDataTableProduct = initDataTableProduct2; //产品明细列表数据 @track jzDataProduct = []; //产品明细列表加载动图标识 @track tableIsLodingProduct = true; //产品明细列表展示标识 jzshows= true; //打印客户名称 start selection_hp = ''; options_hp = []; options_hpflg = true; get PrintCustomerNameoptions() { if (this.accountid) { if(this.options_hpflg){ selectAccountById({accountid : this.accountid}).then(accs =>{ this.options_hp = PrintCustomerNameoptionsvlue(this.options_hp,this.selection_hp,this.quo,this.options_hpflg,accs); this.selection_hp = selection_hpExp; this.options_hpflg = options_hpflgExp; }); }else{ return this.options_hp; } }else{ return this.options_hp; } } PrintCustomerNamehandleChange(event) { this.selection_hp = event.detail.value; } }