buli
2023-04-26 d6a096fadfe9c8f261f56a827cfceed663c36b8b
force-app/main/default/lwc/improvedForecastTime/improvedForecastTime.js
@@ -1,251 +1,250 @@
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);
                }
            });
        }
    }
}