| | |
| | | import { LightningElement, track } from "lwc"; |
| | | import GetOppinformationcData from "@salesforce/apex/ImprovedForecastTimeController.GetOppinformationcData"; |
| | | import getReason from "@salesforce/apex/ImprovedForecastTimeController.getReason"; |
| | | import SaveData from "@salesforce/apex/ImprovedForecastTimeController.SaveData"; |
| | | import SystemModstamp from "@salesforce/schema/Account.SystemModstamp"; |
| | | import { LightningElement, track } from 'lwc'; |
| | | import GetOppinformationcData from '@salesforce/apex/ImprovedForecastTimeController.GetOppinformationcData'; |
| | | import getReason from '@salesforce/apex/ImprovedForecastTimeController.getReason'; |
| | | import SaveData from '@salesforce/apex/ImprovedForecastTimeController.SaveData'; |
| | | import SystemModstamp from '@salesforce/schema/Account.SystemModstamp'; |
| | | |
| | | export default class ImprovedForecastTime extends LightningElement { |
| | | //显示与隐藏 |
| | | isAdvance = false; //选着 提前 的标识 |
| | | isDelay = false; //选着 延后 的标识 |
| | | |
| | | RelateOption = [ |
| | | { label: "提前", value: "提前" }, |
| | | { label: "延后", value: "延后" } |
| | | ]; |
| | | //显示与隐藏 |
| | | isAdvance = false; //选着 提前 的标识 |
| | | isDelay = false; //选着 延后 的标识 |
| | | |
| | | handleRelationFn(event) { |
| | | var value = event.target.value; |
| | | this.opp.Date_InAdvance_Delay = value; |
| | | debugger; |
| | | // this.opp.Predicted_date_ChangeReason__c = ''; |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start |
| | | this.opp.Predicted_date_ChangeReason = ""; |
| | | this.opp.Close_Forecasted_Date = ""; |
| | | this.opp.CloseDate = ""; |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end |
| | | if (value == "提前") { |
| | | this.isAdvance = true; |
| | | this.isDelay = false; |
| | | } |
| | | if (value == "延后") { |
| | | this.isAdvance = false; |
| | | this.isDelay = true; |
| | | } |
| | | } |
| | | RelateOption=[ |
| | | {label:"提前",value:"提前"}, |
| | | {label:"延后",value:"延后"}, |
| | | ] |
| | | |
| | | handleRelationFn(event){ |
| | | |
| | | handleRelationFn1(event) { |
| | | var value = event.target.value; |
| | | this.opp.Predicted_date_ChangeReason = value; |
| | | } |
| | | flg = true; |
| | | handleRelationFn2(event) { |
| | | var value = event.target.value; |
| | | this.opp.Close_Forecasted_Date = value; |
| | | this.flg = false; |
| | | debugger; |
| | | this.CloseDateAssignment(value); |
| | | } |
| | | //给预测发货日赋值 |
| | | CloseDateAssignment(value) { |
| | | debugger; |
| | | var value = this.addDay(30, value); |
| | | this.opp.CloseDate = value; |
| | | this.flg = true; |
| | | } |
| | | //加天数 |
| | | addDay(dayNumber, value1) { |
| | | var date = new Date(value1); |
| | | var ms = dayNumber * (1000 * 60 * 60 * 24); |
| | | |
| | | var newDate = new Date(date.getTime() + ms); |
| | | var value = newDate.toLocaleDateString(); |
| | | var value2 = value.split("/"); |
| | | if (value2[1].length == 1) { |
| | | value2[1] = "0" + value2[1]; |
| | | } |
| | | if (value2[2].length == 1) { |
| | | value2[2] = "0" + value2[2]; |
| | | } |
| | | value = value2[0] + "-" + value2[1] + "-" + value2[2]; |
| | | return value; |
| | | } |
| | | handleRelationFn3(event) { |
| | | var value = event.target.value; |
| | | this.opp.CloseDate = value; |
| | | } |
| | | //从url上取得ID |
| | | getQueryVariable(variable) { |
| | | var query = window.location.search.substring(1); |
| | | var vars = query.split("&"); |
| | | for (var i = 0; i < vars.length; i++) { |
| | | var pair = vars[i].split("="); |
| | | if (pair[0] == variable) { |
| | | return pair[1]; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | oppId = ""; |
| | | opp = {}; |
| | | Date_InAdvance_Delay = ""; |
| | | |
| | | AdvanceReasons = []; |
| | | DelayReasons = []; |
| | | |
| | | //初始化 |
| | | connectedCallback() { |
| | | this.oppId = this.getQueryVariable("id"); |
| | | |
| | | GetOppinformationcData({ ParamIdStr: this.oppId }).then((response) => { |
| | | this.opp = JSON.parse(response); |
| | | |
| | | if (this.opp.Date_InAdvance_Delay == "提前") { |
| | | this.isAdvance = true; |
| | | this.isDelay = false; |
| | | } |
| | | if (this.opp.Date_InAdvance_Delay == "延后") { |
| | | this.isAdvance = false; |
| | | this.isDelay = true; |
| | | } |
| | | }); |
| | | |
| | | getReason().then((response) => { |
| | | var options = JSON.parse(response); |
| | | this.AdvanceReasons = options["提前"]; |
| | | this.DelayReasons = options["延后"]; |
| | | }); |
| | | } |
| | | |
| | | //提示 |
| | | SaveShowText = "保存成功"; //提示框的文本 |
| | | Tongzhishow = false; //提示显示的标识 |
| | | TongzhiIcon = "standard:account"; //提示框的图标 |
| | | IsLeftStyle = ""; //提示框的样式 |
| | | BgColorStyle = ""; |
| | | |
| | | //弹框提示 content 内容 error 是否是错误提示框 left 是否居左 |
| | | Alert(content, error = false, left = false) { |
| | | this.SaveShowText = content; |
| | | this.Tongzhishow = true; |
| | | |
| | | if (error) { |
| | | this.TongzhiIcon = "standard:first_non_empty"; |
| | | this.BgColorStyle = "background-color:#f88568"; |
| | | } else { |
| | | this.TongzhiIcon = "standard:account"; |
| | | this.BgColorStyle = "background-color:#69e669"; |
| | | } |
| | | if (left) { |
| | | this.IsLeftStyle = "left: 0.25rem"; |
| | | } else { |
| | | this.IsLeftStyle = ""; |
| | | } |
| | | } |
| | | |
| | | //关闭提示框 |
| | | CloseAlert() { |
| | | this.closeOffRefresh(); |
| | | } |
| | | closeOffRefresh() { |
| | | if (this.Tongzhishow == true) { |
| | | this.Tongzhishow = false; |
| | | } |
| | | if (this.SaveShowText != "") { |
| | | this.SaveShowText = ""; |
| | | } |
| | | } |
| | | //加载 |
| | | IsLoading = false; |
| | | OnLoading(flag) { |
| | | this.IsLoading = flag; |
| | | } |
| | | //保存数据逻辑 |
| | | saveFn() { |
| | | debugger; |
| | | var myDate = new Date(); //今天日期 |
| | | var myDate1 = new Date(this.opp.Close_Forecasted_Check); //当前预测日期 |
| | | var myDate2 = new Date(this.opp.Close_Forecasted_Date); //改变的预测日期 |
| | | var myDate3 = new Date(myDate.toLocaleDateString()); //今天日期 格式化 |
| | | var myDate4 = new Date(myDate1.toLocaleDateString()); //当前预测日期 格式化 |
| | | var myDate5 = new Date(myDate2.toLocaleDateString()); //改变的预测日期 格式化 |
| | | |
| | | var myDate6 = new Date(this.opp.CloseDate); |
| | | var myDate7 = new Date(myDate6.toLocaleDateString()); //发货日期 |
| | | |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 start |
| | | var date1 = new Date(); |
| | | var year = date1.getFullYear(); |
| | | var month = date1.getMonth() + 1; |
| | | if (month > 3) { |
| | | year = year + 1; |
| | | } |
| | | |
| | | var strDate = "-03-31"; |
| | | var Odate = year + 3; |
| | | var Sdate = year + 4; |
| | | var Odate1 = Odate + strDate; |
| | | var Sdate1 = Sdate + strDate; |
| | | var Odate2 = new Date(Odate1); |
| | | var Sdate2 = new Date(Sdate1); |
| | | |
| | | // //订货预测日 |
| | | var OrderDate = new Date(Odate2.toLocaleDateString()); |
| | | // //发货预测日 |
| | | var ShipmentsDate = new Date(Sdate2.toLocaleDateString()); |
| | | |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 end |
| | | |
| | | console.warn("myDatevalue:=" + myDate); |
| | | console.warn("今天日期" + myDate3); |
| | | console.warn("当前预测日期" + myDate4); |
| | | console.warn("1111111111" + myDate2); |
| | | console.warn("改变的预测日期" + myDate5); |
| | | |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start |
| | | // if(this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == undefined || myDate5 == undefined){ |
| | | // if(this.opp.Date_InAdvance_Delay == '' ||this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == '' ||this.opp.Predicted_date_ChangeReason == undefined|| myDate5 == '' || myDate5 == undefined){ |
| | | if ( |
| | | !this.opp.Date_InAdvance_Delay || |
| | | !this.opp.Predicted_date_ChangeReason || |
| | | !this.opp.Close_Forecasted_Date |
| | | ) { |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end |
| | | this.Alert("请选择日期/理由。", false, true); |
| | | } else if ( |
| | | this.opp.Date_InAdvance_Delay == "提前" && |
| | | (myDate5 >= myDate4 || myDate5 < myDate3) |
| | | ) { |
| | | this.Alert( |
| | | "请选择 “提前” 于当前预测OCSM签约日的日期 且 不早于今天。", |
| | | false, |
| | | true |
| | | ); |
| | | } else if (this.opp.Date_InAdvance_Delay == "延后" && myDate5 <= myDate4) { |
| | | this.Alert("请选择 “延后” 于当前预测OCSM签约日的日期。", false, true); |
| | | } else if (myDate7 < myDate5) { |
| | | this.Alert("预测发货日不能小于预测签约日。", false, true); |
| | | } |
| | | |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 start |
| | | else if (myDate5 > OrderDate) { |
| | | this.Alert("订货预测日请在未来三财年内。", false, true); |
| | | } else if (myDate7 > ShipmentsDate) { |
| | | this.Alert("发货预测日请在未来四财年内。", false, true); |
| | | } |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 end |
| | | else { |
| | | this.OnLoading(true); |
| | | SaveData({ JsonData: JSON.stringify(this.opp) }).then((response) => { |
| | | if (response == "成功") { |
| | | this.OnLoading(false); |
| | | this.Alert("保存成功", false, true); |
| | | window.location.hash = "Refresh" + "==" + this.oppId; |
| | | } else { |
| | | this.Alert(response, true); |
| | | var value = event.target.value; |
| | | this.opp.Date_InAdvance_Delay = value; |
| | | debugger |
| | | // this.opp.Predicted_date_ChangeReason__c = ''; |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start |
| | | this.opp.Predicted_date_ChangeReason = '' |
| | | this.opp.Close_Forecasted_Date= ''; |
| | | this.opp.CloseDate= ''; |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end |
| | | if (value == "提前") { |
| | | this.isAdvance = true; |
| | | this.isDelay = false; |
| | | |
| | | } |
| | | }); |
| | | if (value == "延后") { |
| | | this.isAdvance = false; |
| | | this.isDelay = true; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | handleRelationFn1(event){ |
| | | var value = event.target.value; |
| | | this.opp.Predicted_date_ChangeReason = value; |
| | | } |
| | | flg=true; |
| | | handleRelationFn2(event){ |
| | | var value = event.target.value; |
| | | this.opp.Close_Forecasted_Date = value; |
| | | this.flg=false; |
| | | debugger |
| | | this.CloseDateAssignment(value); |
| | | } |
| | | //给预测发货日赋值 |
| | | CloseDateAssignment(value){ |
| | | debugger |
| | | var value=this.addDay(30,value); |
| | | this.opp.CloseDate = value; |
| | | this.flg=true; |
| | | } |
| | | //加天数 |
| | | addDay(dayNumber, value1) { |
| | | var date = new Date(value1); |
| | | var ms = dayNumber * (1000 * 60 * 60 * 24) |
| | | |
| | | var newDate = new Date(date.getTime() + ms); |
| | | var value=newDate.toLocaleDateString(); |
| | | var value2=value.split('/'); |
| | | if(value2[1].length == 1){ |
| | | value2[1]='0'+value2[1]; |
| | | } |
| | | if(value2[2].length == 1){ |
| | | value2[2]='0'+value2[2]; |
| | | } |
| | | value=value2[0]+'-'+value2[1]+'-'+value2[2]; |
| | | return value; |
| | | } |
| | | handleRelationFn3(event){ |
| | | var value = event.target.value; |
| | | this.opp.CloseDate = value; |
| | | } |
| | | //从url上取得ID |
| | | getQueryVariable(variable) |
| | | { |
| | | var query = window.location.search.substring(1); |
| | | var vars = query.split("&"); |
| | | for (var i=0;i<vars.length;i++) { |
| | | var pair = vars[i].split("="); |
| | | if(pair[0] == variable){return pair[1];} |
| | | } |
| | | return(false); |
| | | } |
| | | |
| | | oppId = ''; |
| | | opp = {}; |
| | | Date_InAdvance_Delay = ''; |
| | | |
| | | AdvanceReasons = []; |
| | | DelayReasons = []; |
| | | |
| | | //初始化 |
| | | connectedCallback(){ |
| | | this.oppId = this.getQueryVariable('id'); |
| | | |
| | | GetOppinformationcData({ParamIdStr:this.oppId}).then(response=>{ |
| | | this.opp=JSON.parse(response); |
| | | |
| | | if(this.opp.Date_InAdvance_Delay == '提前'){ |
| | | this.isAdvance = true; |
| | | this.isDelay = false; |
| | | } |
| | | if(this.opp.Date_InAdvance_Delay == '延后'){ |
| | | this.isAdvance = false; |
| | | this.isDelay = true; |
| | | } |
| | | }); |
| | | |
| | | getReason().then(response=>{ |
| | | var options = JSON.parse(response); |
| | | this.AdvanceReasons = options['提前']; |
| | | this.DelayReasons = options['延后']; |
| | | }); |
| | | |
| | | } |
| | | |
| | | //提示 |
| | | SaveShowText="保存成功";//提示框的文本 |
| | | Tongzhishow=false; //提示显示的标识 |
| | | TongzhiIcon = 'standard:account' //提示框的图标 |
| | | IsLeftStyle = "" //提示框的样式 |
| | | BgColorStyle = "" |
| | | |
| | | //弹框提示 content 内容 error 是否是错误提示框 left 是否居左 |
| | | Alert(content,error = false,left = false){ |
| | | this.SaveShowText = content; |
| | | this.Tongzhishow = true; |
| | | |
| | | if (error) { |
| | | this.TongzhiIcon = "standard:first_non_empty"; |
| | | this.BgColorStyle = "background-color:#f88568"; |
| | | }else{ |
| | | this.TongzhiIcon = "standard:account"; |
| | | this.BgColorStyle = "background-color:#69e669"; |
| | | } |
| | | if (left) { |
| | | this.IsLeftStyle = "left: 0.25rem" |
| | | }else{ |
| | | this.IsLeftStyle = "" |
| | | } |
| | | } |
| | | |
| | | //关闭提示框 |
| | | CloseAlert(){ |
| | | this.closeOffRefresh(); |
| | | } |
| | | closeOffRefresh(){ |
| | | if (this.Tongzhishow == true) { |
| | | this.Tongzhishow = false; |
| | | } |
| | | if (this.SaveShowText != "") { |
| | | this.SaveShowText = ""; |
| | | } |
| | | } |
| | | //加载 |
| | | IsLoading = false; |
| | | OnLoading(flag) { |
| | | this.IsLoading = flag; |
| | | } |
| | | //保存数据逻辑 |
| | | saveFn(){ |
| | | debugger |
| | | var myDate = new Date(); //今天日期 |
| | | var myDate1 = new Date(this.opp.Close_Forecasted_Check); //当前预测日期 |
| | | var myDate2 = new Date(this.opp.Close_Forecasted_Date); //改变的预测日期 |
| | | var myDate3 = new Date(myDate.toLocaleDateString()); //今天日期 格式化 |
| | | var myDate4 = new Date(myDate1.toLocaleDateString()); //当前预测日期 格式化 |
| | | var myDate5 = new Date(myDate2.toLocaleDateString()); //改变的预测日期 格式化 |
| | | |
| | | var myDate6 = new Date(this.opp.CloseDate); |
| | | var myDate7 = new Date(myDate6.toLocaleDateString()); //发货日期 |
| | | |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 start |
| | | var date1 = new Date(); |
| | | var year = date1.getFullYear(); |
| | | var month = date1.getMonth() + 1; |
| | | if(month > 3){ |
| | | year = year + 1; |
| | | } |
| | | |
| | | var strDate = "-03-31"; |
| | | var Odate = year + 3; |
| | | var Sdate = year + 4; |
| | | var Odate1 = Odate + strDate; |
| | | var Sdate1 = Sdate + strDate; |
| | | var Odate2 = new Date(Odate1); |
| | | var Sdate2 = new Date(Sdate1); |
| | | |
| | | // //订货预测日 |
| | | var OrderDate = new Date(Odate2.toLocaleDateString()); |
| | | // //发货预测日 |
| | | var ShipmentsDate = new Date(Sdate2.toLocaleDateString()); |
| | | |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 end |
| | | |
| | | console.warn('myDatevalue:='+myDate); |
| | | console.warn('今天日期'+myDate3); |
| | | console.warn('当前预测日期'+myDate4); |
| | | console.warn('1111111111'+myDate2); |
| | | console.warn('改变的预测日期'+myDate5); |
| | | |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy start |
| | | // if(this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == undefined || myDate5 == undefined){ |
| | | // if(this.opp.Date_InAdvance_Delay == '' ||this.opp.Date_InAdvance_Delay == undefined || this.opp.Predicted_date_ChangeReason == '' ||this.opp.Predicted_date_ChangeReason == undefined|| myDate5 == '' || myDate5 == undefined){ |
| | | if(!this.opp.Date_InAdvance_Delay || !this.opp.Predicted_date_ChangeReason || !this.opp.Close_Forecasted_Date){ |
| | | //SWAG-CJR4PC【委托】调查-修改预测日提前理由错误 fy end |
| | | this.Alert("请选择日期/理由。",false,true); |
| | | } |
| | | else if(this.opp.Date_InAdvance_Delay == '提前' && (myDate5 >= myDate4 || myDate5 < myDate3)){ |
| | | this.Alert("请选择 “提前” 于当前预测OCSM签约日的日期 且 不早于今天。",false,true); |
| | | } |
| | | else if(this.opp.Date_InAdvance_Delay == '延后' && myDate5 <= myDate4){ |
| | | this.Alert("请选择 “延后” 于当前预测OCSM签约日的日期。",false,true); |
| | | } |
| | | else if(myDate7 < myDate5){ |
| | | this.Alert("预测发货日不能小于预测签约日。",false,true); |
| | | } |
| | | |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 start |
| | | else if(myDate5 > OrderDate){ |
| | | this.Alert("订货预测日请在未来三财年内。",false,true); |
| | | } |
| | | else if(myDate7 > ShipmentsDate){ |
| | | this.Alert("发货预测日请在未来四财年内。",false,true); |
| | | } |
| | | //20221226 lt DB202212359066增加限制-修改预测日最大日期 end |
| | | |
| | | else{ |
| | | this.OnLoading(true); |
| | | SaveData({JsonData:JSON.stringify(this.opp)}).then((response)=>{ |
| | | if (response == '成功') { |
| | | this.OnLoading(false); |
| | | this.Alert("保存成功",false,true); |
| | | window.location.hash = "Refresh"+"=="+this.oppId; |
| | | }else{ |
| | | this.Alert(response,true); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | } |