New file |
| | |
| | | using Demo.BillView.PRD; |
| | | using Demo.Model.Model; |
| | | using Demo.Model.Model.PODemandPlan; |
| | | using K3Cloud.Extend.Utils; |
| | | using Kingdee.BOS.Core; |
| | | using Kingdee.BOS.Core.Bill; |
| | | using Kingdee.BOS.Core.CommonFilter; |
| | | using Kingdee.BOS.Core.Const; |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel; |
| | | using Kingdee.BOS.Core.List; |
| | | using Kingdee.BOS.Core.Metadata; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.JSON; |
| | | using Kingdee.BOS.KDThread; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using Kingdee.BOS.ServiceHelper.FileServer; |
| | | using Kingdee.BOS.Util; |
| | | using Kingdee.K3.Core.SCM.STK; |
| | | using Kingdee.K3.SCM.ServiceHelper; |
| | | using Newtonsoft.Json.Linq; |
| | | using NPOI.HSSF.UserModel; |
| | | using NPOI.SS.UserModel; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Linq; |
| | | using System.Web; |
| | | using ZD.Cloud.Logger; |
| | | using ZD.Cloud.WebApi; |
| | | using ZD.Share.Common; |
| | | |
| | | namespace Demo.BillView.PRD |
| | | { |
| | | [Description("生产计划平台(月度计划)按钮功能")] |
| | | [HotUpdate] |
| | | public class Pro_WorkBillPlatformMonth : AbstractDynamicFormPlugIn |
| | | { |
| | | string _OutServicePath = ""; |
| | | string PathName = "日计划导入模板.xlsx"; |
| | | List<PRD_Inventory> ListInventory;//库存明细 |
| | | List<PRD_Inventory> ListInventoryByStockOrgId;//物料总库存 |
| | | |
| | | private bool isSearched = false; |
| | | /// <summary> |
| | | /// 页面初始化 渲染界面 将T0-T60更改为日期显示 |
| | | /// </summary> |
| | | /// <param name="e"></param> |
| | | public override void OnInitialize(InitializeEventArgs e) |
| | | { |
| | | base.OnInitialize(e); |
| | | DateTime DateNow = DateTime.Now; |
| | | for (int m = 0; m <= 60; m++) |
| | | { |
| | | this.View.GetControl("FT" + "" + m + "").ControlAppearance.TextColor = "#FFFF00"; |
| | | this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString(); |
| | | } |
| | | this.View.SendDynamicFormAction(View); |
| | | } |
| | | public override void DataChanged(DataChangedEventArgs e) |
| | | { |
| | | if (!isSearched) return; |
| | | base.DataChanged(e); |
| | | var columns = new List<string>() { "", "" }; |
| | | for (int i = 0; i < 100; i++) |
| | | { |
| | | columns.Add("FT" + i.ToString()); |
| | | } |
| | | var model = this.View.Model; |
| | | if (columns.Contains(e.Field.Key)) |
| | | { |
| | | var sum = columns.Select(x => Convert.ToDouble(model.GetValue(x, e.Row))).Sum();//日计划总和 |
| | | var scOrderCount = Convert.ToDouble(model.GetValue("FOrderQuantity", e.Row));//生产订单数量 |
| | | var FQTYLS = Convert.ToDouble(model.GetValue("FQTYLS", e.Row));//历史 |
| | | this.View.Model.SetValue("FNoScheduled", scOrderCount - sum - FQTYLS, e.Row); |
| | | this.View.Model.SetValue("FDayPlanQuantity", sum, e.Row); |
| | | } |
| | | } |
| | | public override void BarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | base.BarItemClick(e); |
| | | try |
| | | { |
| | | if (e.BarItemKey.ToUpper() == "TBSEARCH") |
| | | { |
| | | isSearched = false; |
| | | SearchList(); |
| | | isSearched = true; |
| | | } |
| | | //保存 |
| | | if (e.BarItemKey.ToUpper() == "BTNSAVE") |
| | | { |
| | | Save(); |
| | | } |
| | | //选单 |
| | | if (e.BarItemKey.ToUpper().Contains("TBSELECTMENU")) |
| | | { |
| | | SelectMenu(e.BarItemKey.ToString()); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | | public override void EntryBarItemClick(BarItemClickEventArgs e) |
| | | { |
| | | base.EntryBarItemClick(e); |
| | | if (e.BarItemKey.ToUpper() == "TBEDIT") |
| | | { |
| | | isSearched = false; |
| | | SearchListEdit(); |
| | | isSearched = true; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 行双击 跳出齐套分析明细列表 |
| | | /// </summary> |
| | | /// <param name="e"></param> |
| | | public override void EntityRowDoubleClick(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EntityRowClickEventArgs e) |
| | | { |
| | | //LogHelper.Info("[行双击事件]"); |
| | | |
| | | base.EntityRowClick(e); |
| | | DynamicFormShowParameter formPa = new DynamicFormShowParameter(); |
| | | if (e.ColKey == "FDELAYLNUM") |
| | | { |
| | | //生产计划平台拖期明细跳转 |
| | | formPa.FormId = "paez_TardinessDetails"; |
| | | formPa.CustomParams.Add("FID", Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString())); |
| | | this.View.ShowForm(formPa); |
| | | } |
| | | else if (e.ColKey == "FQTYLS") |
| | | { |
| | | //生产计划平台 |
| | | string pageId = Guid.NewGuid().ToString(); |
| | | BillShowParameter showParameter = new BillShowParameter(); |
| | | showParameter.FormId = "Paez_Sc_WorkBillAutoSortBill"; |
| | | showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage; |
| | | showParameter.PageId = pageId; |
| | | showParameter.Status = OperationStatus.EDIT; |
| | | // 传入需要修改的日计划工单内码, |
| | | showParameter.PKey = Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString()); |
| | | this.View.ShowForm(showParameter); |
| | | |
| | | } |
| | | else |
| | | { |
| | | var type = this.View.Model.GetValue("FQTTYPE"); |
| | | if (type == "标准Bom") |
| | | formPa.CustomParams.Add("tempName", "JIT_MOMaterReadysBomBill"); |
| | | //齐套分析明细列表跳转 |
| | | formPa.FormId = "paez_CompleteAnalysisDetail"; |
| | | formPa.CustomParams.Add("FHICMOInterID", Convert.ToString(this.View.Model.GetValue("FDayPlanWorkID", e.Row).ToString())); |
| | | this.View.ShowForm(formPa); |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 保存功能 |
| | | /// </summary> |
| | | public void Save() |
| | | { |
| | | List<string> sqlList = new List<string>(); |
| | | string sql; |
| | | //获取单据体信息 |
| | | Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | //单据体信息转换为列表集合 |
| | | DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); |
| | | DateTime date = Convert.ToDateTime(DateTime.Now.ToString("d")); |
| | | string _result = ""; |
| | | foreach (DynamicObject current in entityDataObjoct) |
| | | { |
| | | if (Convert.ToInt32(current["FNoScheduled"]) < 0) |
| | | _result += "序号:" + Convert.ToString(current["SEQ"]) + ",日计划总数量超出生产订单数量"; |
| | | } |
| | | if (_result != "") |
| | | { |
| | | this.View.ShowErrMessage(_result); |
| | | return; |
| | | } |
| | | foreach (DynamicObject current in entityDataObjoct) |
| | | { |
| | | if (Convert.ToInt32(current["FDayPlanWorkID"]) > 0) |
| | | { |
| | | JObject jsonRoot = new JObject(); |
| | | jsonRoot.Add("Creator", ""); |
| | | jsonRoot.Add("NeedUpDateFields", new JArray()); |
| | | jsonRoot.Add("NeedReturnFields", new JArray()); |
| | | jsonRoot.Add("IsDeleteEntry", "false"); |
| | | jsonRoot.Add("SubSystemId", ""); |
| | | jsonRoot.Add("IsVerifyBaseDataField", ""); |
| | | JObject jsonModel = new JObject(); |
| | | jsonModel.Add("FID", Convert.ToString(current["FDayPlanWorkID"])); |
| | | if (Convert.ToString(current["FResourcesId_Id"]) != "0") |
| | | { |
| | | jsonModel.Add("FHSourceID", new JObject() { ["Fnumber"] = (current["FResourcesId"] as DynamicObject)?["Number"].ToString() });//生产资源 |
| | | } |
| | | jsonModel.Add("FOrderQuantity", Convert.ToString(current["FOrderQuantity"])); |
| | | jsonModel.Add("FDayPlanQuantity", Convert.ToDecimal(current["FDayPlanQuantity"]) + Convert.ToDecimal(current["FQTYLS"])); |
| | | jsonModel.Add("FNoScheduled", Convert.ToString(current["FNoScheduled"])); |
| | | sql = $" /*dialect*/ select FEntryID, FHMASTERDATE from SC_WORKBILLSORTBILLSub where FID={Convert.ToString(current["FDayPlanWorkID"])} "; |
| | | List<DayPlanModel> dayPlanModel = new List<DayPlanModel>(); |
| | | dayPlanModel = DBServiceHelper.ExecuteDataSet(Context, sql).ToModelList<DayPlanModel>(); |
| | | JArray Entry = new JArray(); |
| | | for (int i = 0; i <= 60; i++) |
| | | { |
| | | if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0") |
| | | continue; |
| | | JObject jsonFPOOrderEntry = new JObject(); |
| | | jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期 |
| | | jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量 |
| | | List<DayPlanModel> _dayPlanModel = dayPlanModel.Where(x => x.FHMASTERDATE == date.AddDays(i)).ToList(); |
| | | if (_dayPlanModel.Count > 0) |
| | | { |
| | | jsonFPOOrderEntry.Add("FEntryID", _dayPlanModel.FirstOrDefault().FEntryID); ;//序号 |
| | | } |
| | | Entry.Add(jsonFPOOrderEntry); |
| | | } |
| | | jsonModel.Add("FEntity", Entry); |
| | | jsonRoot.Add("Model", jsonModel); |
| | | CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); |
| | | var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString()); |
| | | JObject saveObj = JObject.Parse(result); |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | //LogHelper.Error("生产计划平台保存失败:" + jsonRoot.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //验证日计划工单是否存在数据 生产订单号加明细行号 已生成过日计划的不生成 (关闭后的) |
| | | string moSql = string.Format(@"/*dialect*/ select FID from SC_WORKBILLSORTBILLMAIN |
| | | where FDOCUMENTSTATUS NOT IN ('E') AND FSCORDERNO ='{0}' and FSRCBILLENTRYSEQ = '{1}'", Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FSRCBILLENTRYSEQ"])); |
| | | int fDayPlanFID = DBServiceHelper.ExecuteScalar<int>(Context, moSql, 0); |
| | | if (fDayPlanFID > 0) |
| | | continue; |
| | | string FOrderType = Convert.ToString(current["FOrderType"]) ?? ""; |
| | | string FTempName = "T_PRD_MO"; |
| | | string FTempNameEntry = "T_PRD_MOENTRY"; |
| | | if (FOrderType == "委外订单") |
| | | { |
| | | FTempName = "T_SUB_REQORDER"; |
| | | FTempNameEntry = "T_SUB_REQORDERENTRY"; |
| | | } |
| | | ///查询生产订单数据 |
| | | sql = string.Format(@" |
| | | /*dialect*/ |
| | | SELECT t4.FNAME as FMoFBillType,T1.FBILLNO,T2.*,t3.FNUMBER as FUnitNumber,tBom.FNUMBER as FBomNumber FROM {0} T1 |
| | | LEFT JOIN {1} T2 ON T1.FID = T2.FID |
| | | LEFT JOIN T_ENG_BOM tBom on t2.FBOMID = tBom.FID |
| | | join T_BD_UNIT t3 on t2.FUNITID=t3.FUNITID |
| | | join ( select A.FBILLTYPEID,B.FNAME from T_BAS_BILLTYPE A |
| | | JOIN T_BAS_BILLTYPE_L B ON A.FBILLTYPEID =B.FBILLTYPEID |
| | | where FBILLFORMID in ('PRD_MO','SUB_SUBREQORDER') AND b.FLOCALEID = 2052)t4 on t1.FBILLTYPE =t4.FBILLTYPEID |
| | | WHERE T1.FBILLNO = '{2}' AND T2.FMATERIALID = '{3}' AND T2.FSEQ = '{4}'", FTempName, FTempNameEntry, Convert.ToString(current["FSCOrderNo"]), Convert.ToString(current["FMatrailId_Id"]), Convert.ToString(current["FSRCBILLENTRYSEQ"])); |
| | | DataTable dt = new DataTable(); |
| | | dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | if (dt.Rows.Count == 0) |
| | | continue; |
| | | string FID = "";//FID 源单主内码 |
| | | string FENTRYID = "";//FENTRYID 源单子内码 |
| | | string FLOT = "";//FLOT 批次 |
| | | string FQTY = "";//FQTY 生产订单数量 |
| | | string FBILLNO = "";//FBILLNO 原单号 |
| | | string FHUnitID = "";//单位 |
| | | string FPlanBeginDate = "";//开始日期 |
| | | string FPlanEndDate = "";//结束日期 |
| | | string FMoFBillType = "";// |
| | | string FBomNumber = "";//Bom 版本 |
| | | if (dt.Rows.Count > 0) |
| | | { |
| | | FID = dt.Rows[0]["FID"].ToString(); |
| | | FENTRYID = dt.Rows[0]["FENTRYID"].ToString(); |
| | | FLOT = dt.Rows[0]["FLOT"].ToString(); |
| | | FQTY = dt.Rows[0]["FQTY"].ToString(); |
| | | FBILLNO = dt.Rows[0]["FBILLNO"].ToString(); |
| | | FHUnitID = dt.Rows[0]["FUnitNumber"].ToString(); |
| | | FPlanBeginDate = dt.Rows[0]["FPlanStartDate"].ToString(); |
| | | FPlanEndDate = dt.Rows[0]["FPlanFinishDate"].ToString(); |
| | | FMoFBillType = dt.Rows[0]["FMoFBillType"].ToString(); |
| | | FBomNumber = dt.Rows[0]["FBomNumber"].ToString(); |
| | | } |
| | | |
| | | //选单数据 做新增 |
| | | JObject jsonRoot = new JObject(); |
| | | jsonRoot.Add("Creator", ""); |
| | | jsonRoot.Add("NeedUpDateFields", new JArray()); |
| | | jsonRoot.Add("NeedReturnFields", new JArray()); |
| | | jsonRoot.Add("IsDeleteEntry", "false"); |
| | | jsonRoot.Add("SubSystemId", ""); |
| | | jsonRoot.Add("IsVerifyBaseDataField", ""); |
| | | JObject jsonModel = new JObject(); |
| | | jsonModel.Add("FPreparatDate", Convert.ToString(current["FBzDate"]));//编制日期(改为预计开工日期) |
| | | jsonModel.Add("FMonthPlan", 1);//月度计划标识 |
| | | jsonModel.Add("FMoFBillType", FMoFBillType);// |
| | | jsonModel.Add("FOrderType", FOrderType);// |
| | | jsonModel.Add("FSRCBILLENTRYSEQ", Convert.ToString(current["FSRCBILLENTRYSEQ"]));//生产订单明细行号 |
| | | jsonModel.Add("FSCOrderNo", Convert.ToString(current["FSCOrderNo"])); //生产订单号FSCOrderNo |
| | | jsonModel.Add("FHSeOrderBillNo", Convert.ToString(current["FSalOrderNo"]));//销售订单号 |
| | | jsonModel.Add("FHOrderLev", current["FOrderLevel"].ToString());//订单等级 |
| | | jsonModel.Add("FHOrderQty", Convert.ToString(current["FSalOrderCount"]));//销售订单数量 |
| | | jsonModel.Add("FHOrderCommitDate", Convert.ToString(current["FDeliveryDate"]));//交货期HOrderCommitDate |
| | | jsonModel.Add("FHUnitID", new JObject() { ["Fnumber"] = FHUnitID });//单位 |
| | | jsonModel.Add("FBOMID", new JObject() { ["Fnumber"] = FBomNumber });//BOM版本 |
| | | jsonModel.Add("FHPlanBeginDate", FPlanBeginDate);//计划开始日期 |
| | | jsonModel.Add("FHPlanEndDate", FPlanEndDate);//计划完工日期 |
| | | //jsonModel.Add("FBatch", current["FBatch"].ToString());//批次 |
| | | jsonModel.Add("FBatch", FLOT);//批次 |
| | | jsonModel.Add("FHOrderNeedQty", FQTY);// 订单需求数量 |
| | | jsonModel.Add("FPrdBillNo", FBILLNO); ;//源单编号 |
| | | jsonModel.Add("FPRDMOMAINID", FID); ;//源单主内码 |
| | | jsonModel.Add("FPRDMOENTYID", FENTRYID); ;//源单子内码 |
| | | jsonModel.Add("FMoFID", FID); ;//源单主内码 |
| | | jsonModel.Add("FMoFentryId", FENTRYID); ;//源单子内码 |
| | | jsonModel.Add("FOrderQuantity", Convert.ToString(current["FOrderQuantity"])); ;//生产订单数量 |
| | | jsonModel.Add("FDayPlanQuantity", Convert.ToString(current["FDayPlanQuantity"])); ;//日计划数量 |
| | | jsonModel.Add("FNoScheduled", Convert.ToString(current["FNoScheduled"])); ;//未排数量 |
| | | JObject jsonFHMaterID = new JObject(); |
| | | jsonFHMaterID.Add("FNumber", (current["FMatrailId"] as DynamicObject)["Number"].ToString()); |
| | | jsonModel.Add("FHMaterID", jsonFHMaterID);//FHMaterID 物料 |
| | | if (Convert.ToString(current["FORGID_Id"]) != "0") |
| | | { |
| | | JObject jsonFHPRDORGID = new JObject(); |
| | | jsonFHPRDORGID.Add("FNumber", (current["FORGID"] as DynamicObject)["Number"].ToString()); |
| | | jsonModel.Add("FHPRDORGID", jsonFHPRDORGID);//FHMaterID 生产组织 |
| | | |
| | | } |
| | | if (Convert.ToString(current["FResourcesId_Id"]) != "0") |
| | | { |
| | | JObject jsonFProductWorkShopId = new JObject(); |
| | | jsonFProductWorkShopId.Add("FNumber", (current["FResourcesId"] as DynamicObject)["Number"].ToString()); |
| | | jsonModel.Add("FHSourceID", jsonFProductWorkShopId);//FHSourceID 生产车间 |
| | | } |
| | | if (Convert.ToString(current["FProductWorkShopId_Id"]) != "0") |
| | | { |
| | | JObject jsonFResourcesId = new JObject(); |
| | | jsonFResourcesId.Add("FNumber", (current["FProductWorkShopId"] as DynamicObject)["Number"].ToString()); |
| | | jsonModel.Add("FHWorkShopID", jsonFResourcesId);//FHWorkShopID 生产资源 |
| | | } |
| | | JArray Entry = new JArray(); |
| | | for (int i = 0; i <= 60; i++) |
| | | { |
| | | if (Convert.ToString(current["FT" + "" + i + ""]) == "" || Convert.ToString(current["FT" + "" + i + ""]) == "0") |
| | | continue; |
| | | JObject jsonFPOOrderEntry = new JObject(); |
| | | jsonFPOOrderEntry.Add("FHMasterDate", date.AddDays(i).ToShortDateString()); ;//主日期 |
| | | jsonFPOOrderEntry.Add("FHQty ", Convert.ToString(current["FT" + "" + i + ""])); ;//日计划数量 |
| | | Entry.Add(jsonFPOOrderEntry); |
| | | } |
| | | jsonModel.Add("FEntity", Entry); |
| | | jsonRoot.Add("Model", jsonModel); |
| | | CloudClient cloudClient = new CloudClient("http://localhost//k3cloud/"); |
| | | var result = cloudClient.Save("Paez_Sc_WorkBillAutoSortBill", jsonRoot.ToString()); |
| | | JObject saveObj = JObject.Parse(result); |
| | | string saveIsSuc = saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper(); |
| | | if (saveIsSuc != "TRUE") |
| | | { |
| | | //LogHelper.Error("生产计划平台新增保存失败:" + saveObj.ToString()); |
| | | this.View.ShowMessage(saveObj["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString()); |
| | | } |
| | | if (saveIsSuc == "TRUE") |
| | | { |
| | | string FDayPlanBillNo = saveObj["Result"]["Number"].ToString(); |
| | | string FDayPlanID = saveObj["Result"]["Id"].ToString(); |
| | | this.Model.SetValue("FDayPlanBillNo", FDayPlanBillNo, Convert.ToInt32(current["SEQ"]) - 1);// |
| | | this.Model.SetValue("FDayPlanID", FDayPlanID, Convert.ToInt32(current["SEQ"]) - 1);// |
| | | } |
| | | } |
| | | } |
| | | this.View.ShowMessage("操作成功"); |
| | | SearchList(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询 |
| | | /// </summary> |
| | | public void SearchList() |
| | | { |
| | | string sqlwhere = " and 1=1"; |
| | | if ((this.Model.GetValue("FProWorkShopId") as DynamicObject) != null) |
| | | { |
| | | string FProWorkShopId = (this.Model.GetValue("FProWorkShopId") as DynamicObject)["Id"].ToString(); |
| | | if (!string.IsNullOrEmpty(FProWorkShopId)) |
| | | sqlwhere += $" and FHWorkShopID='{FProWorkShopId}'"; |
| | | } |
| | | //销售订单号 |
| | | string FSalOrder = Convert.ToString((this.Model.GetValue("FSalOrder"))); |
| | | if (!string.IsNullOrEmpty(FSalOrder)) |
| | | sqlwhere += $" and FHSeOrderBillNo like '%{FSalOrder}%'"; |
| | | //生产订单号 |
| | | string FScOrderMainNo = Convert.ToString((this.Model.GetValue("FScOrderMainNo"))); |
| | | if (!string.IsNullOrEmpty(FScOrderMainNo)) |
| | | sqlwhere += $" and FSCORDERNO like '%{FScOrderMainNo}%'"; |
| | | //物料 |
| | | if ((this.Model.GetValue("FMatralId") as DynamicObject) != null) |
| | | { |
| | | string FMatralId = (this.Model.GetValue("FMatralId") as DynamicObject)["Number"].ToString(); |
| | | if (!string.IsNullOrEmpty(FMatralId)) |
| | | sqlwhere += $" and t3.FNumber='{FMatralId}'"; |
| | | } |
| | | //编制日期 |
| | | string FBeginPreparatDate = Convert.ToString((this.Model.GetValue("FBrginPreparatDate"))); |
| | | if (!string.IsNullOrEmpty(FBeginPreparatDate)) |
| | | sqlwhere += $" and FPreparatDate>='{FBeginPreparatDate}'"; |
| | | |
| | | //编制日期 |
| | | string FEndPreparatDate = Convert.ToString((this.Model.GetValue("FEndPreparatDate"))); |
| | | if (!string.IsNullOrEmpty(FEndPreparatDate)) |
| | | sqlwhere += $" and FPreparatDate<='{FEndPreparatDate}'"; |
| | | try |
| | | { |
| | | string sql = @"/*dialect*/ select t1.*,isnull((select SUM(isnull(FNotProductNum,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FNotProductNum ,isnull((select SUM(isnull(FHQTY,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FQTYLS |
| | | from Sc_WorkBillSortBillMain t1 |
| | | left join T_BD_MATERIAL t3 on t1.FHMaterID=t3.FMATERIALID |
| | | where t1.FDOCUMENTSTATUS not in ('E') and t1.FMonthPlan = 1 |
| | | " + sqlwhere; |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | DateTime DateNow = DateTime.Now;//获取当前日期 |
| | | this.Model.DeleteEntryData("FEntity"); |
| | | EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity"); |
| | | for (int i = 0; i < dt.Rows.Count; i++) |
| | | { |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | this.Model.SetValue("FSEQ", i + 1, i);//序号 |
| | | this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//生产订单单据类型 |
| | | this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型 |
| | | this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);// |
| | | this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"].ToString(), i);//销售订单数量 |
| | | this.Model.SetValue("FBatch", dt.Rows[i]["FBatch"].ToString(), i);//批次号 |
| | | this.Model.SetValue("FUnit", dt.Rows[i]["FHUnitID"].ToString(), i);//计量单位 |
| | | this.Model.SetValue("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//生产组织 |
| | | this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//产品代码 |
| | | this.Model.SetValue("FDeliverydate", dt.Rows[i]["FHOrderCommitDate"].ToString(), i);//交货日期 |
| | | this.Model.SetValue("FOrderLevel", dt.Rows[i]["FHOrderLev"].ToString(), i);//订单等级 |
| | | this.Model.SetValue("FSCOrderNo", dt.Rows[i]["FSCOrderNo"].ToString(), i);//生产订单号 |
| | | this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSEORDERBILLNO"].ToString(), i);//销售订单号 |
| | | this.Model.SetValue("FBzDate", dt.Rows[i]["FPreparatDate"].ToString(), i);//预计开工日期 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FHMainSourceInterID", dt.Rows[i]["FPRDMOMAINID"].ToString(), i);//源单主内码FHMainSourceInterID |
| | | this.Model.SetValue("FHMainSourceEntryID", dt.Rows[i]["FPRDMOENTYID"].ToString(), i);//源单子内码FHMainSourceEntryID |
| | | this.Model.SetValue("FDayPlanWorkID", dt.Rows[i]["FID"].ToString(), i);//日计划工单FID |
| | | this.Model.SetValue("FResourcesId", dt.Rows[i]["FHSourceID"].ToString(), i);//生产资源 |
| | | this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//生产车间 |
| | | this.Model.SetValue("FCompleteSetCount", dt.Rows[i]["FCompleteCount"].ToString(), i);//齐套数量 |
| | | this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FDayPlanQuantity", Convert.ToDecimal(dt.Rows[i]["FDAYPLANQUANTITY"]) - Convert.ToDecimal(dt.Rows[i]["FQTYLS"]), i);//日计划数量 |
| | | this.Model.SetValue("FQTYLS", dt.Rows[i]["FQTYLS"].ToString(), i);//历史遗留 |
| | | this.Model.SetValue("FNoScheduled", dt.Rows[i]["FNoScheduled"].ToString(), i);//未排数量 |
| | | this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量 |
| | | sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString(); |
| | | DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | foreach (DataRow dr in _dt.Rows) |
| | | { |
| | | DateTime start = Convert.ToDateTime(DateNow.ToShortDateString()); |
| | | DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString()); |
| | | TimeSpan getDay = end.Subtract(start); |
| | | if (getDay.Days > 60) |
| | | continue; |
| | | this.Model.SetValue("FT" + getDay.Days.ToString(), dr["FHQTY"].ToString(), i);//日计划工单FID |
| | | if (dr["FHLockedSub"].ToString() == "1") |
| | | this.View.GetFieldEditor("FT" + getDay.Days.ToString(), i).Enabled = false; //单据体行锁定字段 |
| | | } |
| | | this.View.InvokeFieldUpdateService("FMatrailId", i);//GetControl |
| | | } |
| | | this.View.UpdateView(); |
| | | for (int j = 0; j < dt.Rows.Count; j++) |
| | | { |
| | | sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[j]["FID"].ToString(); |
| | | DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | foreach (DataRow dr in _dt.Rows) |
| | | { |
| | | DateTime start = Convert.ToDateTime(DateNow.ToShortDateString()); |
| | | DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString()); |
| | | TimeSpan getDay = end.Subtract(start); |
| | | if (getDay.Days > 60) |
| | | continue; |
| | | |
| | | if (dr["FHLockedSub"].ToString() == "1") |
| | | this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段 |
| | | if (dr["FCOMPLETE"].ToString() == "未齐套") |
| | | { |
| | | this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段 |
| | | grid.SetForecolor("FT" + "" + getDay.Days.ToString() + "", "#FF0000", j); |
| | | } |
| | | else if (dr["FCOMPLETE"].ToString() == "齐套") |
| | | { |
| | | this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段 |
| | | grid.SetForecolor("FT" + "" + getDay.Days.ToString() + "", "#00FF00", j); |
| | | } |
| | | } |
| | | } |
| | | for (int m = 0; m <= 60; m++) |
| | | { |
| | | this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 编辑 |
| | | /// </summary> |
| | | public void SearchListEdit() |
| | | { |
| | | string sqlwhere = " and 1=1"; |
| | | |
| | | if ((this.Model.GetValue("FProWorkShopId") as DynamicObject) != null) |
| | | { |
| | | string FProWorkShopId = (this.Model.GetValue("FProWorkShopId") as DynamicObject)["Id"].ToString(); |
| | | if (!string.IsNullOrEmpty(FProWorkShopId)) |
| | | sqlwhere += $" and FHWorkShopID='{FProWorkShopId}'"; |
| | | } |
| | | //销售订单号 |
| | | string FSalOrder = Convert.ToString((this.Model.GetValue("FSalOrder"))); |
| | | if (!string.IsNullOrEmpty(FSalOrder)) |
| | | sqlwhere += $" and FHSeOrderBillNo like '%{FSalOrder}%'"; |
| | | //生产订单号 |
| | | string FScOrderMainNo = Convert.ToString((this.Model.GetValue("FScOrderMainNo"))); |
| | | if (!string.IsNullOrEmpty(FScOrderMainNo)) |
| | | sqlwhere += $" and FSCORDERNO like '%{FScOrderMainNo}%'"; |
| | | //物料 |
| | | if ((this.Model.GetValue("FMatralId") as DynamicObject) != null) |
| | | { |
| | | string FMatralId = (this.Model.GetValue("FMatralId") as DynamicObject)["Number"].ToString(); |
| | | if (!string.IsNullOrEmpty(FMatralId)) |
| | | sqlwhere += $" and t3.FNumber='{FMatralId}'"; |
| | | } |
| | | //编制日期开始 |
| | | string FBeginPreparatDate = Convert.ToString((this.Model.GetValue("FBrginPreparatDate"))); |
| | | if (!string.IsNullOrEmpty(FBeginPreparatDate)) |
| | | sqlwhere += $" and FPreparatDate>='{FBeginPreparatDate}'"; |
| | | //编制日期结束 |
| | | string FEndPreparatDate = Convert.ToString((this.Model.GetValue("FEndPreparatDate"))); |
| | | if (!string.IsNullOrEmpty(FEndPreparatDate)) |
| | | sqlwhere += $" and FPreparatDate<='{FEndPreparatDate}'"; |
| | | try |
| | | { |
| | | string sql = @"/*dialect*/ select t1.*,isnull((select SUM(isnull(FNotProductNum,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FNotProductNum ,isnull((select SUM(isnull(FHQTY,0)) from SC_WORKBILLSORTBILLSub t2 where t2.FID = t1.FID and DATEDIFF(D,FHMASTERDATE,GETDATE())>0),0)FQTYLS |
| | | from Sc_WorkBillSortBillMain t1 |
| | | left join T_BD_MATERIAL t3 on t1.FHMaterID=t3.FMATERIALID |
| | | where t1.FDOCUMENTSTATUS not in ('E') and t1.FMonthPlan = 1 |
| | | " + sqlwhere; |
| | | DataTable dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | DateTime DateNow = DateTime.Now;//获取当前日期 |
| | | this.Model.DeleteEntryData("FEntity"); |
| | | EntryGrid grid = this.View.GetControl<EntryGrid>("FEntity"); |
| | | for (int i = 0; i < dt.Rows.Count; i++) |
| | | { |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | this.Model.SetValue("FSEQ", i + 1, i);//序号 |
| | | this.Model.SetValue("FMOFBILLTYPE", Convert.ToString(dt.Rows[i]["FMOFBILLTYPE"]), i);//生产订单单据类型 |
| | | this.Model.SetValue("FOrderType", Convert.ToString(dt.Rows[i]["FOrderType"]), i);//订单类型 |
| | | this.Model.SetValue("FCompleteSetCount", "", i);//总齐套数量 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FSRCBILLENTRYSEQ", dt.Rows[i]["FSRCBILLENTRYSEQ"].ToString(), i);// |
| | | this.Model.SetValue("FSalOrderCount", dt.Rows[i]["FHOrderQty"].ToString(), i);//销售订单数量 |
| | | this.Model.SetValue("FBatch", dt.Rows[i]["FBatch"].ToString(), i);//批次号 |
| | | this.Model.SetValue("FUnit", dt.Rows[i]["FHUnitID"].ToString(), i);//计量单位 |
| | | this.Model.SetValue("FORGID", dt.Rows[i]["FHPRDORGID"].ToString(), i);//生产组织 |
| | | this.Model.SetValue("FMatrailId", dt.Rows[i]["FHMaterID"].ToString(), i);//产品代码 |
| | | this.Model.SetValue("FDeliverydate", dt.Rows[i]["FHOrderCommitDate"].ToString(), i);//交货日期 |
| | | this.Model.SetValue("FOrderLevel", dt.Rows[i]["FHOrderLev"].ToString(), i);//订单等级 |
| | | this.Model.SetValue("FSCOrderNo", dt.Rows[i]["FSCOrderNo"].ToString(), i);//生产订单号 |
| | | this.Model.SetValue("FSalOrderNo", dt.Rows[i]["FHSEORDERBILLNO"].ToString(), i);//销售订单号 |
| | | this.Model.SetValue("FBzDate", dt.Rows[i]["FPreparatDate"].ToString(), i);//预计开工日期 |
| | | this.Model.SetValue("FProOrderCount", dt.Rows[i]["FHOrderNeedQty"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FHMainSourceInterID", dt.Rows[i]["FPRDMOMAINID"].ToString(), i);//源单主内码FHMainSourceInterID |
| | | this.Model.SetValue("FHMainSourceEntryID", dt.Rows[i]["FPRDMOENTYID"].ToString(), i);//源单子内码FHMainSourceEntryID |
| | | this.Model.SetValue("FDayPlanWorkID", dt.Rows[i]["FID"].ToString(), i);//日计划工单FID |
| | | this.Model.SetValue("FResourcesId", dt.Rows[i]["FHSourceID"].ToString(), i);//生产资源 |
| | | this.Model.SetValue("FProductWorkShopId", dt.Rows[i]["FHWorkShopID"].ToString(), i);//生产车间 |
| | | this.Model.SetValue("FCompleteSetCount", dt.Rows[i]["FCompleteCount"].ToString(), i);//齐套数量 |
| | | this.Model.SetValue("FOrderQuantity", dt.Rows[i]["FOrderQuantity"].ToString(), i);//生产订单数量 |
| | | this.Model.SetValue("FDayPlanQuantity", Convert.ToDecimal(dt.Rows[i]["FOrderQuantity"]) - Convert.ToDecimal(dt.Rows[i]["FQTYLS"]), i);//日计划数量 |
| | | this.Model.SetValue("FQTYLS", dt.Rows[i]["FQTYLS"].ToString(), i);//历史遗留 |
| | | this.Model.SetValue("FNoScheduled", dt.Rows[i]["FNoScheduled"].ToString(), i);//未排数量 |
| | | this.Model.SetValue("FDelaylnUM", dt.Rows[i]["FNotProductNum"].ToString(), i);//拖期数量 |
| | | sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[i]["FID"].ToString(); |
| | | DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | foreach (DataRow dr in _dt.Rows) |
| | | { |
| | | DateTime start = Convert.ToDateTime(DateNow.ToShortDateString()); |
| | | DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString()); |
| | | TimeSpan getDay = end.Subtract(start); |
| | | if (getDay.Days > 60) |
| | | continue; |
| | | this.Model.SetValue("FT" + getDay.Days.ToString(), dr["FHQTY"].ToString(), i);//日计划工单FID |
| | | if (dr["FHLockedSub"].ToString() == "1") |
| | | this.View.GetFieldEditor("FT" + getDay.Days.ToString(), i).Enabled = false; //单据体行锁定字段 |
| | | } |
| | | this.View.InvokeFieldUpdateService("FMatrailId", i);//调用数量值更新 |
| | | } |
| | | this.View.UpdateView(); |
| | | for (int j = 0; j < dt.Rows.Count; j++) |
| | | { |
| | | sql = @"/*dialect*/SELECT * FROM Sc_WorkBillSortBillSub WHERE DATEDIFF(D,GETDATE(),FHMASTERDATE)>=0 and FID=" + dt.Rows[j]["FID"].ToString(); |
| | | DataTable _dt = DBServiceHelper.ExecuteDataSet(Context, sql).Tables[0]; |
| | | foreach (DataRow dr in _dt.Rows) |
| | | { |
| | | DateTime start = Convert.ToDateTime(DateNow.ToShortDateString()); |
| | | DateTime end = Convert.ToDateTime(Convert.ToDateTime(dr["FHMASTERDATE"]).ToShortDateString()); |
| | | TimeSpan getDay = end.Subtract(start); |
| | | if (getDay.Days > 60) |
| | | continue; |
| | | if (dr["FHLockedSub"].ToString() == "1") |
| | | this.View.GetFieldEditor("FT" + getDay.Days.ToString(), j).Enabled = false; //单据体行锁定字段 |
| | | } |
| | | } |
| | | for (int m = 0; m <= 60; m++) |
| | | { |
| | | this.View.GetControl("FT" + "" + m + "").Text = DateNow.AddDays(m).ToShortDateString(); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | this.View.ShowErrMessage(ex.Message.ToString()); |
| | | } |
| | | |
| | | } |
| | | //生产计划平台选单 生产订单数据 |
| | | public void SelectMenu(string FBarItemKey) |
| | | { |
| | | try |
| | | { |
| | | //获取单据体信息 |
| | | Entity entity = this.View.BillBusinessInfo.GetEntity("FEntity"); |
| | | //单据体信息转换为列表集合 |
| | | DynamicObjectCollection entityDataObjoct = this.View.Model.GetEntityDataObject(entity); |
| | | int Fseq = entityDataObjoct.Count(); |
| | | ListShowParameter showParameter = new ListShowParameter(); |
| | | IRegularFilterParameter filterParameter = new ListRegularFilterParameter(); |
| | | filterParameter.Filter = string.Format(" FPickMtrlStatus in (1,2) ");//部分领料 或者 未领料 |
| | | filterParameter.SelectEntitys = new List<string>() { "FTreeEntity" }; |
| | | string pageId = Guid.NewGuid().ToString(); |
| | | showParameter.PageId = pageId; |
| | | showParameter.ListFilterParameter = filterParameter; |
| | | showParameter.UseOrgId = this.Context.CurrentOrganizationInfo.ID; |
| | | showParameter.IsLookUp = true; |
| | | if (FBarItemKey == "tbSelectMenuSC") |
| | | { |
| | | showParameter.FormId = "PRD_MO"; |
| | | this.View.ShowForm(showParameter, delegate (FormResult result) |
| | | { |
| | | object returnData = result.ReturnData; |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | { |
| | | var ret = ""; |
| | | foreach (var listSelectedRow in listSelectedRowCollection) |
| | | { |
| | | if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | { |
| | | //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | continue; |
| | | } |
| | | string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (day > 0) |
| | | { |
| | | //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | ret += "生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | continue; |
| | | } |
| | | //今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_PRD_MOENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | // ret += "计划开工日期在今天之前,生产订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | //} |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | this.View.Model.SetValue("FOrderType", "生产订单", Fseq); |
| | | this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq); |
| | | this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005 |
| | | this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FProductWorkShopId", listSelectedRow.DataRow["FWorkShopID_Id"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FOrderLevel", "3", Fseq); |
| | | this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期 |
| | | //this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq); |
| | | Fseq++; |
| | | } |
| | | if (ret != "") |
| | | { |
| | | this.View.ShowMessage(ret); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | else if (FBarItemKey == "tbSelectMenuWW") |
| | | { |
| | | showParameter.FormId = "SUB_SUBREQORDER"; |
| | | this.View.ShowForm(showParameter, delegate (FormResult result) |
| | | { |
| | | object returnData = result.ReturnData; |
| | | if (returnData is ListSelectedRowCollection) |
| | | { |
| | | ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection; |
| | | //LogHelper.Info("生产计划平台选单 行数" + listSelectedRowCollection.Count().ToString()); |
| | | if (listSelectedRowCollection != null) |
| | | { |
| | | var ret = ""; |
| | | foreach (var listSelectedRow in listSelectedRowCollection) |
| | | { |
| | | if (entityDataObjoct.Where(x => x["FSRCBILLENTRYSEQ"].ToString() == listSelectedRow.DataRow["t1_FSeq"].ToString() && x["FSCOrderNo"].ToString() == listSelectedRow.DataRow["FBillNo"].ToString()).Count() > 0) |
| | | { |
| | | //LogHelper.Info("生产计划平台选单:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选"); |
| | | ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号," + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已选" + "\n"; |
| | | continue; |
| | | } |
| | | string sql = $"select FID from Sc_WorkBillSortBillMain where FDOCUMENTSTATUS NOT IN ('E') and FPRDMOENTYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | int day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | if (day > 0) |
| | | { |
| | | //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | ret += "委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + ",已存在日计划\n"; |
| | | continue; |
| | | } |
| | | //今天以前的数据是显示不出来的 |
| | | //sql = $"select DATEDIFF(d,getdate(),FPlanStartDate)days from T_SUB_REQORDERENTRY where FENTRYID = {listSelectedRow.DataRow["t1_FENTRYID"].ToString()}"; |
| | | //day = DBServiceHelper.ExecuteScalar<int>(Context, sql, 0); |
| | | //if (day < 0) |
| | | //{ |
| | | // //LogHelper.Info("生产计划平台选单:日期太靠后," + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号, " + listSelectedRow.DataRow["t1_FSeq"].ToString() + ", day= " + day.ToString()); |
| | | // ret += "计划开工日期在今天之前,委外订单号:" + listSelectedRow.DataRow["FBillNo"].ToString() + ", 行号:" + listSelectedRow.DataRow["t1_FSeq"].ToString() + "\n"; |
| | | // continue; |
| | | //} |
| | | this.Model.CreateNewEntryRow("FEntity"); |
| | | this.View.Model.SetItemValueByNumber("FORGID", "100", Fseq); |
| | | this.View.Model.SetValue("FOrderType", "委外订单", Fseq); |
| | | this.View.Model.SetValue("FSCOrderNo", listSelectedRow.DataRow["FBillNo"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FSRCBILLENTRYSEQ", listSelectedRow.DataRow["t1_FSeq"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FMatrailId", listSelectedRow.DataRow["FMaterialId_Id"].ToString(), Fseq);//2129900005 |
| | | this.View.Model.SetValue("FFUnit", listSelectedRow.DataRow["FUnitId_Id"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FOrderQuantity", listSelectedRow.DataRow["FQty"].ToString(), Fseq); |
| | | this.View.Model.SetValue("FProductWorkShopId", 0, Fseq); |
| | | this.View.Model.SetValue("FOrderLevel", "3", Fseq); |
| | | this.View.Model.SetValue("FBzDate", DateTime.Now.AddDays(day).ToShortDateString(), Fseq);//预计开工日期 |
| | | //this.View.Model.SetValue("FT" + day.ToString(), listSelectedRow.DataRow["FQty"].ToString(), Fseq); |
| | | Fseq++; |
| | | } |
| | | if (ret != "") |
| | | { |
| | | this.View.ShowMessage(ret); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //LogHelper.Error("选单失败:" + ex.Message); |
| | | } |
| | | } |
| | | } |
| | | } |