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: "延后" } ]; 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; } } 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); } }); } } }