| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using CoreFS.CA06;
- using Core.Mes.Client.Comm.Tool;
- using com.steering.pss.plnsaleord.order.model;
- using Core.Mes.Client.Comm;
- using System.Collections;
- using Core.Mes.Client.Comm.Server;
- using Infragistics.Win.UltraWinGrid;
- using com.steering.pss.plnsaleord.ordAmCal.model;
- using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
- namespace Core.StlMes.Client.PlnSaleOrd.PopupWindow
- {
- public partial class FrmChangeIndex : FrmBase
- {
- /// <summary>
- /// 交货pk
- /// </summary>
- private string ordLnDlyPk = "";
- /// <summary>
- /// 补量需求编号
- /// </summary>
- private string rNumId = "";
- private string ordLnDlyPkL = "";
- private string plnDivideId = "";
- private string orderSource = "";
- public FrmChangeIndex()
- {
- InitializeComponent();
- EntityHelper.ShowGridCaption<PlnSaleordProcEntity>(ultraGridProc.DisplayLayout.Bands[0]);
- }
- public FrmChangeIndex(OpeBase _ob, string _ordLnDlyPk, string _plnDivideId,string _orderSource)
- {
- this.ob = _ob;
- ordLnDlyPkL = _ordLnDlyPk;
- plnDivideId = _plnDivideId;
- orderSource = _orderSource;
- this.IsLoadUserView = true;
- InitializeComponent();
- EntityHelper.ShowGridCaption<PlnSaleordProcEntity>(ultraGridProc.DisplayLayout.Bands[0]);
- }
- private void FrmChangeIndex_Load(object sender, EventArgs e)
- {
- this.comMscPilneCtrl1.ComBLL(this.ob);
- string ordLnPk = "";
- if (ordLnDlyPk.Length > 3)
- {
- ordLnPk = ordLnDlyPk.Substring(0, ordLnDlyPk.Length - 3);
- }
- this.comMscPilneCtrl1.OrdLnPk = ordLnPk;
- if (!rNumId.Equals(""))
- {
- ultraToolbarsManager1.Tools.Remove(ultraToolbarsManager1.Tools["Add"]);
- ultraToolbarsManager1.Tools.Remove(ultraToolbarsManager1.Tools["Save"]);
- ultraToolbarsManager1.Tools.Remove(ultraToolbarsManager1.Tools["Delete"]);
- ultraGridProc.DisplayLayout.Bands[0].Columns["RNumId"].Hidden = false;
- PlanComm.setGridActivation(this.ultraGridProc.DisplayLayout.Bands[0], "CHC");
- }
- else
- {
- PlanComm.setGridActivation(this.ultraGridProc.DisplayLayout.Bands[0], "CHC", "OrderQtyD");
- }
- PlanComm.setGridDigitalCol(this.ultraGridProc.DisplayLayout.Bands[0], 5, 3,
- "PlanWtD", "FinishWt", "PlanPMain", "OrderQtyD", "AimLenEnd", "AimLenRoll", "PlanPMainMin", "AimWtEnd", "WeightJg");
- PlanComm.setGridDigitalCol(this.ultraGridProc.DisplayLayout.Bands[0], 5, 2,
- "TotLenOneP", "PlanTotLenD", "HeightYlg", "DimaterYlg", "AimWallthick", "RollLength", "AimOutdiameter", "FeedRate", "Coefficient", "CoefficientMin", "CheckJVal");
- PlanComm.setGridDigitalCol(this.ultraGridProc.DisplayLayout.Bands[0], 7, 0, "PlanNumD", "CutNumP");
- PlanComm.setGridDigitalCol(this.ultraGridProc.DisplayLayout.Bands[0], 3, 6, "WeightPerM", "WeightKzM");
- PlanComm.setGridSummarySet(this.ultraGridProc, 3, "PlanWtD","FinishWt", "PlanPMain", "OrderQtyD","PlanPMainMin");
- DoQuery();
- }
- private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
- {
- switch (e.Tool.Key)
- {
- case "Query":
- DoQuery();
- break;
- case "Add":
- DoNew();
- break;
- case "Modify":
- DoModify();
- break;
- case "Save":
- DoSave();
- break;
- case "Delete":
- DoDelete();
- break;
- case "Colse":
- this.Close();
- break;
- }
- }
- /// <summary>
- /// 查询
- /// </summary>
- private void DoQuery()
- {
- this.slmPlnSaleordProcEntitybindingSource.DataSource = EntityHelper.GetData<PlnSaleordProcEntity>(
- "com.steering.pss.plnsaleord.order.CoreChangeIndex.queryPlnOrderProc", new object[] { ordLnDlyPk, rNumId, plnDivideId }, this.ob);
- DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleStatus",
- new object[] { ordLnDlyPk }, this.ob);
- if (dt != null && dt.Rows.Count > 0)
- {
- ultraNumericOrderWt.Value = 0;
- ultraTextOrderUnit.Value = dt.Rows[0]["ORDER_UNIT"].ToString();
- }
- }
- /// <summary>
- /// 新增交货行拆分
- /// </summary>
- private void DoNew()
- {
- try
- {
- UltraGridRow ugr = ultraGridProc.ActiveRow;
- if (ugr == null)
- {
- return;
- }
- double orderQty = 0;
- double orderQtyD = 0;
- ArrayList list = new ArrayList();
- if (!double.TryParse(ultraNumericOrderWt.Value.ToString(), out orderQtyD))
- {
- MessageUtil.ShowTips("拆分量未指定!");
- return;
- }
- if (orderQtyD <= 0)
- {
- MessageUtil.ShowTips("拆分量未指定!");
- return;
- }
- ArrayList param = new ArrayList();
- PlnSaleordProcEntity ordProcEntity = new PlnSaleordProcEntity();
- comMscPilneCtrl1.UltraGridMscPline.UpdateData();
- IQueryable<UltraGridRow> checkRows = comMscPilneCtrl1.UltraGridMscPline.Rows.AsQueryable().Where("CHC = 'True'");
- if (checkRows.Count() <= 0)
- {
- MessageUtil.ShowError("没有选择的制程工艺!");
- return;
- }
- string desginKey = this.comMscPilneCtrl1.DesginKey;
- ordProcEntity.IndexSeq = this.comMscPilneCtrl1.CheMscPline;
- ordProcEntity.CraftFileMan = this.comMscPilneCtrl1.CheCraftName;
- ordProcEntity.CraftFileNo = this.comMscPilneCtrl1.CheCraftNo;
- ordProcEntity.CraftSeq = this.comMscPilneCtrl1.CheCraftSeq;
- ordProcEntity.GradecodeAll = this.comMscPilneCtrl1.GradeNameAll;
- ordProcEntity.OrdLnDlyPk = ordLnDlyPk;
- ordProcEntity.OrderSource = "销售合同";
- string finalUser = ""; //最终用户
- string produccode = ""; //品名代码
- double outdiameter = 0;
- double wallthick = 0;
- double delvryRangeMax = 0;
- double delvryRangeMin = 0;
- double lengthmax = 0;
- double lengthmin = 0;
- string delvryRangeTpe = "";
- DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.queryPlnSaleOrderProc",
- new object[] { ordLnDlyPk }, this.ob);
- if (dtStatus != null && dtStatus.Rows.Count > 0)
- {
- //判断制程有误重复
- //foreach (DataRow dr in dtStatus.Rows)
- //{
- // if (dr["CRAFT_SEQ"].Equals(comMscPilneCtrl1.CheCraftSeq))
- // {
- // MessageUtil.ShowError("序号:“" + comMscPilneCtrl1.CheCraftSeq + "”的工艺已经被使用!");
- // return;
- // }
- //}
- if (dtStatus.Rows[0]["MERGETYPE"].ToString().Equals("3"))
- {
- MessageUtil.ShowError("管坯类型的合同不允许拆分!");
- return;
- }
- DataTable dtProc = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.queryPlnOrdProcById",
- new object[] { ordLnDlyPk, ugr.Cells["PlnDivideId"].Value.ToString() }, this.ob);
- if (dtProc == null || dtProc.Rows.Count <= 0)
- {
- return;
- }
- if (dtProc.Rows[0]["PLANSTATUS"].ToString().CompareTo("1") > 0)
- {
- MessageUtil.ShowTips("交货行拆分项已经下发,不可用再进行拆分!");
- return;
- }
- if (!double.TryParse(dtProc.Rows[0]["ORDER_QTY_D"].ToString(), out orderQty))
- {
- return;
- }
- if (orderQty <= 0)
- {
- MessageUtil.ShowTips("合同原订货量有误!");
- return;
- }
- if (orderQtyD > orderQty)
- {
- MessageUtil.ShowTips("拆分量不能大于原订货量!");
- return;
- }
- double.TryParse(dtStatus.Rows[0]["OUTDIAMETER"].ToString(), out outdiameter);
- double.TryParse(dtStatus.Rows[0]["WALLTHICK"].ToString(), out wallthick);
- double.TryParse(dtStatus.Rows[0]["DELVRY_RANGE_MAX"].ToString(), out delvryRangeMax);
- double.TryParse(dtStatus.Rows[0]["DELVRY_RANGE_MIN"].ToString(), out delvryRangeMin);
- double.TryParse(dtStatus.Rows[0]["LENGTHMAX"].ToString(), out lengthmax);
- double.TryParse(dtStatus.Rows[0]["LENGTHMIN"].ToString(), out lengthmin);
- delvryRangeTpe = dtStatus.Rows[0]["DELVRY_RANGE_TPE"].ToString();
- finalUser = dtStatus.Rows[0]["FINAL_USER"].ToString();
- produccode = dtStatus.Rows[0]["PRODUCCODE"].ToString();
- ordProcEntity.Msc = dtStatus.Rows[0]["MSC"].ToString();
- ordProcEntity.MaterialNo = dtStatus.Rows[0]["MATERIAL_NO"].ToString();
- ordProcEntity.WeightPerM = dtProc.Rows[0]["WEIGHT_PER_M"].ToString();
- ordProcEntity.OrderUnit = dtProc.Rows[0]["ORDER_UNIT"].ToString();
- ordProcEntity.Prdcrpro = FrmPlnSaleOrder.getOrdPrdcrpro(
- dtStatus.Rows[0]["PRDCR_NO"].ToString(),
- comMscPilneCtrl1.CheMscPline, this.ob);
- ordProcEntity.GradecodeAll = dtProc.Rows[0]["GRADECODE_ALL"].ToString();
- ordProcEntity.IfExport = dtProc.Rows[0]["IF_EXPORT"].ToString();
- }
- string outsStlPipeFl = dtStatus.Rows[0]["OUTS_STL_PIPE_FL"].ToString();
- string outsBilletFl = dtStatus.Rows[0]["OUTS_BILLET_FL"].ToString();
- param.Add(desginKey);
- param.Add(ordProcEntity.IndexSeq);
- DataTable dtProcess = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryMscplPrc",
- new object[] { param }, this.ob);
- if (dtProcess != null && dtProcess.Rows.Count > 0)
- {
- ordProcEntity.ProcessSeq = dtProcess.Rows[0]["WHOLE_BACKLOG"].ToString();
- if (ordProcEntity.ProcessSeq.Equals(""))
- {
- MessageUtil.ShowError("未找到制程经过的工序点,请联系管理员。");
- return;
- }
- ordProcEntity.BjType = "/";
- ordProcEntity.EIsOk = "2";
- foreach (DataRow dr in dtProcess.Rows)
- {
- if (dr["PROCESS_CODE"].ToString().Equals("E"))
- {
- //经过镦拔扩工序
- ordProcEntity.EIsOk = "0";
- ordProcEntity.BjType = dr["PROCESS_DESC_C"].ToString();
- }
- }
- }
- double weightJg=0;
- double checkJval=0;
- DataTable dtJg = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryJgBase",
- new object[] { dtStatus.Rows[0]["CODE_JG"].ToString() }, this.ob);
- if(dtJg!=null&&dtJg.Rows.Count>0){
- weightJg=double.Parse(dtJg.Rows[0]["WEIGHT_JG"].ToString());
- checkJval=double.Parse(dtJg.Rows[0]["CHECK_J_VAL"].ToString());
- }
- //查询物料信息
- //param.Clear();
- //param.Add(ordProcEntity.IndexSeq);
- //param.Add(ordProcEntity.Msc);
- //param.Add(ordProcEntity.MaterialNo);
- //param.Add(ordProcEntity.ProcessSeq);
- string outsBillet = "0";
- if (outsStlPipeFl.Equals("")
- || outsStlPipeFl.Equals("121901"))
- {
- if (outsBilletFl.Equals("121801"))
- {
- outsBilletFl = "1";
- }
- else
- {
- outsBilletFl = "0";
- }
- }
- else
- {
- if (outsBilletFl.Equals("121802"))
- {
- outsBilletFl = "0";
- }
- else
- {
- outsBilletFl = "1";
- }
- }
- DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom",
- new object[] { desginKey, ordProcEntity.Msc, ordProcEntity.IndexSeq }, this.ob);
- if (dtBom != null && dtBom.Rows.Count > 0)
- {
- bool isAvailBom = false;//是否存在可用BOM
- string errReason = "";//不可用原因
- foreach (DataRow dr in dtBom.Rows)
- {
- //查询是否自炼,外购钢种
- DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getGradeCode",
- new object[] { dr["GRADECODE"].ToString(), outsBillet }, this.ob);
- if (dt != null && dt.Rows.Count > 0)
- {
- ordProcEntity.Gradecode = dr["GRADECODE"].ToString();
- }
- else
- {
- continue;
- }
- ordProcEntity.Bom = dr["BOM"].ToString();
- ordProcEntity.GroupRollAll = dr["D_PLINE"].ToString();
-
- ordProcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString();
- ordProcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString();
- ordProcEntity.DimaterYlg = dr["DIMATER"].ToString();
- ordProcEntity.HeightYlg = dr["HEIGHT"].ToString();
- ordProcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
- ordProcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
- ordProcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
- ordProcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
- #region 判断坯料的属性
- string dinMaterial = "";
- ///轧管投入物料(炼钢末工序产出物料)
- if (!dr["D_IN_MATERIAL_NO"].ToString().Equals(""))
- {
- dinMaterial = dr["D_IN_MATERIAL_NO"].ToString();
- }
- else if (!dr["C_OUT_MATERIAL_NO"].ToString().Equals(""))
- {
- dinMaterial = dr["C_OUT_MATERIAL_NO"].ToString();
- }
- else if (!dr["B_OUT_MATERIAL_NO"].ToString().Equals(""))
- {
- dinMaterial = dr["B_OUT_MATERIAL_NO"].ToString();
- }
- else
- {
- dinMaterial = dr["A_OUT_MATERIAL_NO"].ToString();
- }
- ordProcEntity.StuffProperty = PlnSaleOrderBase.stuffProperty(dinMaterial);
- #endregion
- //轧管去向
- ordProcEntity.Abc = PlnSaleOrderBase.getPlnOrdZgAbc(dr["WHOLE_BACKLOG"].ToString(), dr["WHOLE_BACKLOG_DESC"].ToString());
- if (ordProcEntity.ProcessSeq.Contains("D"))
- {
- #region 默认轧管产线
- ArrayList paramPline = new ArrayList();
- paramPline.Add(dr["D_IN_MATERIAL_NO"].ToString());
- paramPline.Add(dr["D_OUT_MATERIAL_NO"].ToString());
- paramPline.Add(desginKey);
- paramPline.Add(ordProcEntity.IndexSeq);
- paramPline.Add(finalUser);
- paramPline.Add(produccode);
- DataTable dtDpl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getBomMaterialDpl",
- new object[] { paramPline }, this.ob);
- if (dtDpl != null && dtDpl.Rows.Count > 0)
- {
- //如果存在ASSEL机组,优选ASSEL机组
- if (PlanComm.isInDataTable(dtDpl, "PLINE_CODE", "C012"))
- {
- if (FrmPlnSaleOrder.queryAsselFl(this.comMscPilneCtrl1.OrdLnPk, this.ob))
- {
- ordProcEntity.GroupRoll = "C012";
- }
- else
- {
- bool isPline = false;
- foreach (DataRow drPine in dtDpl.Rows)
- {
- if (!drPine["PLINE_CODE"].ToString().Equals("C012"))
- {
- isPline = true;
- ordProcEntity.GroupRoll = drPine["PLINE_CODE"].ToString();
- break;
- }
- }
- if (!isPline)
- {
- ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
- }
- }
- }
- else
- {
- ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
- }
- }
- #endregion
- }
- if (ordProcEntity.ProcessSeq.Contains("D")
- && !ordProcEntity.GroupRoll.Trim().Equals("C072")
- && !outsStlPipeFl.Equals("121903")
- && !outsStlPipeFl.Equals("121902")
- || ordProcEntity.OrderUnit.Trim().Equals("支"))
- {
- #region 合同量转换
- OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
- InOrdParamEntity inOrdParam = new InOrdParamEntity();
- PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob);
- DateTime date = new DateTime();
- string errMessage = "";
- double putRate = 1;
- double height = 0;
- if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
- {
- //投料率
- putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, this.ob);
- }
- inOrdParam = ordAmountCal.getInOrdPlnQtyParam(
- orderQtyD, ordProcEntity.OrderUnit, desginKey, ordProcEntity.IndexSeq,
- ordLnDlyPk, ordProcEntity.GroupRoll, ordProcEntity.Bom,
- dtStatus.Rows[0]["CODE_JG"].ToString(), putRate);
- if (!ordAmountCal.isRightParam(inOrdParam, desginKey, dtStatus.Rows[0]["CODE_JG"].ToString(),
- ordProcEntity.Bom, ordProcEntity.GroupRoll, out errMessage))
- {
- errReason = errMessage;
- continue;
- }
- ordAmountCal.InEnity = inOrdParam;
- outOrdParam = ordAmountCal.getOrdAmount();
- if (outOrdParam.ErrCode == -1)
- {
- errReason = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
- continue;
- }
- ordProcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
- ordProcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
- ordProcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
- ordProcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
- ordProcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
- ordProcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
- ordProcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
- ordProcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
- ordProcEntity.CutNumP = outOrdParam.CutNumP.ToString();
- ordProcEntity.RollLength = outOrdParam.RollLength.ToString();
- ordProcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
- ordProcEntity.OrderQtyD = orderQtyD.ToString();
- ordProcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
- ordProcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
- ordProcEntity.AimOutdiameter = outOrdParam.AimOutdiameter.ToString();
- ordProcEntity.FeedRate = putRate.ToString();
- ordProcEntity.Coefficient = outOrdParam.Coefficient.ToString();
- ordProcEntity.CoefficientMin = outOrdParam.CoefficientMin.ToString();
- ordProcEntity.PlanPMainMin = outOrdParam.PlanPMainMin.ToString();
- ordProcEntity.AimWtEnd = outOrdParam.AimWtEnd.ToString();
- ordProcEntity.WeightKzM = outOrdParam.WeightKzM.ToString();
- // 查询控制壁厚
- if (inOrdParam.StdWallthickMax == inOrdParam.NkWallthickMax
- && inOrdParam.StdWallthickMin == inOrdParam.NkWallthickMin
- && inOrdParam.Wallthick > 0)
- {
- ordProcEntity.HeightNkMax = (100 * inOrdParam.StdWallthickMax
- / inOrdParam.Wallthick).ToString();
- ordProcEntity.HeightNkMin = (100 * inOrdParam.StdWallthickMin
- / inOrdParam.Wallthick).ToString();
- }
- else if (double.TryParse(dr["HEIGHT"].ToString(), out height)
- && height > 0)
- {
- ordProcEntity.HeightNkMax = (100 * inOrdParam.NkWallthickMax / height).ToString();
- ordProcEntity.HeightNkMin = (100 * inOrdParam.NkWallthickMin / height).ToString();
- }
- #endregion
- }
- else
- {
- #region 外购管
- double orderWeight = 0; //合同量
- double aimlength = 0; //目标长度
- int planNum = 0;//合同支数
- OrderStdSic std = new OrderStdSic(this.ob);
- std.DesginKey = desginKey;
- std.Outdiameter = outdiameter;
- std.Wallthick = wallthick;
- std.getStdTolerance();
- double weightMI = PlanComm.WeightOfMi(outdiameter, std.AimWallthick);//米单重
- double rate = 0;
- double rateMin = 0;
- DateTime date = new DateTime();
- if (delvryRangeTpe.Trim().Equals("绝对值"))
- {
- delvryRangeMax = (delvryRangeMax / orderQtyD) * 100;
- delvryRangeMin = (delvryRangeMin / orderQtyD) * 100;
- }
- if (ordProcEntity.OrderUnit.Equals("米"))
- {
- orderWeight = Math.Round((orderQtyD * weightMI), 3);
- }
- else if (ordProcEntity.OrderUnit.Equals("英尺"))
- {
- double lengqty = PlanComm.FootoMi(orderQtyD);
- orderWeight = Math.Round((lengqty * weightMI), 3);
- }
- else if (ordProcEntity.OrderUnit.Equals("英磅"))
- {
- orderWeight = PlanComm.PoundtoTon(orderQtyD);
- }
- else
- {
- orderWeight = orderQtyD;
- }
- //目标长度,取长度上下限中间值,计算计划支数
- aimlength = (lengthmax + lengthmin) / 2;
- if ((orderWeight % (aimlength * weightMI)) == 0)
- {
- planNum = (int)(orderWeight / (aimlength * weightMI));
- }
- else
- {
- planNum = (int)(orderWeight / (aimlength * weightMI)) + 1;
- }
- double putrate= FrmPlnSaleOrder.queryPutRate(
- date.Year, date.Month, this.ob);
- if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
- {
- rate = ((delvryRangeMax + delvryRangeMin) * putrate - delvryRangeMin) / 100;
- rateMin = 1 - delvryRangeMin / 100;
- }
- ordProcEntity.OrderQtyD = orderQtyD.ToString();
- ordProcEntity.PlanWtD = orderWeight.ToString();
- ordProcEntity.PlanNumD = planNum.ToString();
- ordProcEntity.WeightPerM = Math.Round(weightMI, 6).ToString();
- ordProcEntity.AimLenEnd = aimlength.ToString();
- ordProcEntity.PlanPMain = ((1 + rate) * orderWeight).ToString();
- ordProcEntity.PlanTotLenD = (planNum * aimlength).ToString();
- ordProcEntity.AimWallthick = std.AimWallthick.ToString();
- ordProcEntity.AimOutdiameter =outdiameter.ToString();
- ordProcEntity.FeedRate =putrate.ToString();
- ordProcEntity.Coefficient =(1 + rate).ToString();
- ordProcEntity.CoefficientMin = rateMin.ToString();
- ordProcEntity.AimWtEnd = (weightJg / 1000 + weightMI * (aimlength - checkJval / 1000)).ToString();
- ordProcEntity.WeightKzM = Math.Round(weightMI, 6).ToString();
- ordProcEntity.PlanPMainMin = (rateMin * orderWeight).ToString();
- // 查询控制壁厚
- ordProcEntity.HeightNkMax = (100 * std.StdMax / wallthick).ToString();
- ordProcEntity.HeightNkMin = (100 * std.StdMin / wallthick).ToString();
- #endregion
- }
- isAvailBom = true;
- break;
- }
- if (!isAvailBom)
- {
- MessageUtil.ShowError(errReason);
- return;
- }
- }
- #region 各工序信息确认
- if (ordProcEntity.ProcessSeq.Contains("F"))
- {
- //判断是否经过热处理工序
- ordProcEntity.FIsOk = "0";
- }
- else
- {
- ordProcEntity.FIsOk = "2";
- }
- if (ordProcEntity.ProcessSeq.Contains("G"))
- {
- //判断是否经过管加工工序
- ordProcEntity.GIsOk = "0";
- }
- else
- {
- ordProcEntity.GIsOk = "2";
- }
- if (ordProcEntity.ProcessSeq.Contains("D"))
- {
- //判断是否经过轧管工序
- ordProcEntity.DIsOk = "0";
- }
- else
- {
- ordProcEntity.DIsOk = "2";
- }
- if (ordProcEntity.ProcessSeq.Contains("E"))
- {
- //判断是否经过镦拔扩工序
- ordProcEntity.EIsOk = "0";
- }
- else
- {
- ordProcEntity.EIsOk = "2";
- }
- #endregion
- list.Add((orderQty - orderQtyD).ToString());
- list.Add(OrdLnDlyPk);
- list.Add(ugr.Cells["PlnDivideId"].Value.ToString());
- int succeed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.newPlnOrdProc",
- new object[] { ordProcEntity, list }, this.ob);
- if (succeed > 0)
- {
- MessageUtil.ShowTips("新增成功。");
- }
- }
- catch (Exception ex)
- {
- if (!(ex is MESException))
- {
- MessageUtil.ShowError(ex.Message);
- }
- }
- DoQuery();
- }
- /// <summary>
- /// 修改
- /// </summary>
- private void DoModify()
- {
- try
- {
- ArrayList param = new ArrayList();
- PlnSaleordProcEntity ordProcEntity = new PlnSaleordProcEntity();
- UltraGridRow ugr = ultraGridProc.ActiveRow;
- if (ugr == null)
- {
- return;
- }
- comMscPilneCtrl1.UltraGridMscPline.UpdateData();
- IQueryable<UltraGridRow> checkRows = comMscPilneCtrl1.UltraGridMscPline.Rows.AsQueryable().Where("CHC = 'True'");
- if (checkRows.Count() <= 0)
- {
- MessageUtil.ShowError("没有选择的制程工艺!");
- return;
- }
- string desginKey = this.comMscPilneCtrl1.DesginKey;
- ordProcEntity.IndexSeq = this.comMscPilneCtrl1.CheMscPline;
- ordProcEntity.CraftFileMan = this.comMscPilneCtrl1.CheCraftName;
- ordProcEntity.CraftFileNo = this.comMscPilneCtrl1.CheCraftNo;
- ordProcEntity.CraftSeq = this.comMscPilneCtrl1.CheCraftSeq;
- ordProcEntity.GradecodeAll = this.comMscPilneCtrl1.GradeNameAll;
- ordProcEntity.OrdLnDlyPk = ordLnDlyPk;
- ordProcEntity.PlnDivideId = ugr.Cells["PlnDivideId"].Value.ToString();
- string finalUser = ""; //最终用户
- string produccode = ""; //品名代码
- DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.queryPlnSaleOrderProc",
- new object[] { ordLnDlyPk }, this.ob);
- if (dtStatus != null && dtStatus.Rows.Count > 0)
- {
- if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("3") > 0)
- {
- MessageUtil.ShowTips("合同:" + dtStatus.Rows[0]["ORDER_NO"].ToString() + "/"
- + dtStatus.Rows[0]["ORDER_SEQ"].ToString()
- + dtStatus.Rows[0]["DELIVERY_NO"].ToString() + "已经生产完成了。");
- return;
- }
- //判断制程有误重复
- //foreach (DataRow dr in dtStatus.Rows)
- //{
- // if (dr["CRAFT_SEQ"].Equals(comMscPilneCtrl1.CheCraftSeq))
- // {
- // MessageUtil.ShowError("序号:“" + comMscPilneCtrl1.CheCraftSeq + "”的工艺已经被使用!");
- // return;
- // }
- //}
- finalUser = dtStatus.Rows[0]["FINAL_USER"].ToString();
- produccode = dtStatus.Rows[0]["PRODUCCODE"].ToString();
- ordProcEntity.Msc = dtStatus.Rows[0]["MSC"].ToString();
- ordProcEntity.MaterialNo = dtStatus.Rows[0]["MATERIAL_NO"].ToString();
- ordProcEntity.OrderNo = dtStatus.Rows[0]["ORDER_NO"].ToString();
- ordProcEntity.OrderSeq = dtStatus.Rows[0]["ORDER_SEQ"].ToString();
- ordProcEntity.WeightPerM = dtStatus.Rows[0]["WEIGHT_PER_M"].ToString();
- }
- string outsStlPipeFl = dtStatus.Rows[0]["OUTS_STL_PIPE_FL"].ToString();
- string outsBilletFl = dtStatus.Rows[0]["OUTS_BILLET_FL"].ToString();
- DataTable dtProc = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.queryPlnOrdProcById",
- new object[] { ordLnDlyPk, ugr.Cells["PlnDivideId"].Value.ToString() }, this.ob);
- if (dtProc == null || dtProc.Rows.Count <= 0)
- {
- MessageUtil.ShowError("找不到排产记录:"
- + ugr.Cells["PlnDivideId"].Value.ToString());
- return;
- }
- if (!dtProc.Rows[0]["INDEX_SEQ"].ToString().Equals(ordProcEntity.IndexSeq)
- || !dtProc.Rows[0]["DESGIN_KEY"].ToString().Equals(desginKey))
- {
- param.Add(desginKey);
- param.Add(ordProcEntity.IndexSeq);
- DataTable dtProcess = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryMscplPrc",
- new object[] { param }, this.ob);
- if (dtProcess != null && dtProcess.Rows.Count > 0)
- {
- ordProcEntity.ProcessSeq = dtProcess.Rows[0]["WHOLE_BACKLOG"].ToString();
- if (ordProcEntity.ProcessSeq.Equals(""))
- {
- MessageUtil.ShowError("未找到制程经过的工序点,请联系管理员。");
- return;
- }
- ordProcEntity.BjType = "/";
- ordProcEntity.EIsOk = "2";
- foreach (DataRow dr in dtProcess.Rows)
- {
- if (dr["PROCESS_CODE"].ToString().Equals("E"))
- {
- //经过镦拔扩工序
- ordProcEntity.EIsOk = "0";
- ordProcEntity.BjType = dr["PROCESS_DESC_C"].ToString();
- }
- if (dr["PROCESS_CODE"].ToString().Equals("F"))
- {
- //经过热处理工序
- ordProcEntity.ProcDescCRcl = dr["PROCESS_DESC_C"].ToString();
- }
- }
- }
- //查询物料信息
- //param.Clear();
- //param.Add(ordProcEntity.IndexSeq);
- //param.Add(ordProcEntity.Msc);
- //param.Add(ordProcEntity.MaterialNo);
- //param.Add(ordProcEntity.ProcessSeq);
- string outsBillet = "0";
- if (outsStlPipeFl.Equals("")
- || outsStlPipeFl.Equals("121901"))
- {
- if (outsBilletFl.Equals("121801"))
- {
- outsBilletFl = "1";
- }
- else
- {
- outsBilletFl = "0";
- }
- }
- else
- {
- if (outsBilletFl.Equals("121802"))
- {
- outsBilletFl = "0";
- }
- else
- {
- outsBilletFl = "1";
- }
- }
- DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom",
- new object[] { desginKey, ordProcEntity.Msc, ordProcEntity.IndexSeq }, this.ob);
- if (dtBom != null && dtBom.Rows.Count > 0)
- {
- bool isAvailBom = false;//是否存在可用BOM
- string errReason = "";//不可用原因
- foreach (DataRow dr in dtBom.Rows)
- {
- if (outsBillet.Equals("1"))
- {
- //查询是否自炼,外购钢种
- DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getGradeCode",
- new object[] { dr["GRADECODE"].ToString(), outsBillet }, this.ob);
- if (dt != null && dt.Rows.Count > 0)
- {
- ordProcEntity.Gradecode = dr["GRADECODE"].ToString();
- }
- else
- {
- errReason = "无外购钢种!";
- continue;
- }
- }
- ordProcEntity.Bom = dr["BOM"].ToString();
- ordProcEntity.GroupRollAll = dr["D_PLINE"].ToString();
- ordProcEntity.Gradecode = dr["GRADECODE"].ToString();
- ordProcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString();
- ordProcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString();
- ordProcEntity.DimaterYlg = dr["DIMATER"].ToString();
- ordProcEntity.HeightYlg = dr["HEIGHT"].ToString();
- ordProcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey,
- ordProcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
- ordProcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey,
- ordProcEntity.IndexSeq, dr["BOM"].ToString(), this.ob);
- #region 判断坯料的属性
- string dinMaterial = "";
- ///轧管投入物料(炼钢末工序产出物料)
- if (!dr["D_IN_MATERIAL_NO"].ToString().Equals(""))
- {
- dinMaterial = dr["D_IN_MATERIAL_NO"].ToString();
- }
- else if (!dr["C_OUT_MATERIAL_NO"].ToString().Equals(""))
- {
- dinMaterial = dr["C_OUT_MATERIAL_NO"].ToString();
- }
- else if (!dr["B_OUT_MATERIAL_NO"].ToString().Equals(""))
- {
- dinMaterial = dr["B_OUT_MATERIAL_NO"].ToString();
- }
- else
- {
- dinMaterial = dr["A_OUT_MATERIAL_NO"].ToString();
- }
- ordProcEntity.StuffProperty = PlnSaleOrderBase.stuffProperty(dinMaterial);
- #endregion
- //轧管去向
- ordProcEntity.Abc = PlnSaleOrderBase.getPlnOrdZgAbc(dr["WHOLE_BACKLOG"].ToString(), dr["WHOLE_BACKLOG_DESC"].ToString());
- ordProcEntity.DIsOk = "2";
- if (ordProcEntity.ProcessSeq.Contains("D"))
- {
- #region 默认轧管产线
- ArrayList paramPline = new ArrayList();
- paramPline.Add(dr["D_IN_MATERIAL_NO"].ToString());
- paramPline.Add(dr["D_OUT_MATERIAL_NO"].ToString());
- paramPline.Add(desginKey);
- paramPline.Add(ordProcEntity.IndexSeq);
- paramPline.Add(finalUser);
- paramPline.Add(produccode);
- DataTable dtDpl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getBomMaterialDpl",
- new object[] { paramPline }, this.ob);
- if (dtDpl != null && dtDpl.Rows.Count > 0)
- {
- if (PlanComm.isInDataTable(dtDpl, "PLINE_CODE", dtProc.Rows[0]["GROUP_ROLL"].ToString()))
- {
- ordProcEntity.GroupRoll = dtProc.Rows[0]["GROUP_ROLL"].ToString();
- ordProcEntity.DIsOk = "1";
- }
- //如果存在ASSEL机组,优选ASSEL机组
- else
- {
- ordProcEntity.DIsOk = "0";
- if (PlanComm.isInDataTable(dtDpl, "PLINE_CODE", "C012"))
- {
- if (FrmPlnSaleOrder.queryAsselFl(this.comMscPilneCtrl1.OrdLnPk, this.ob))
- {
- ordProcEntity.GroupRoll = "C012";
- }
- else
- {
- bool isPline = false;
- foreach (DataRow drPine in dtDpl.Rows)
- {
- if (!drPine["PLINE_CODE"].ToString().Equals("C012"))
- {
- isPline = true;
- ordProcEntity.GroupRoll = drPine["PLINE_CODE"].ToString();
- break;
- }
- }
- if (!isPline)
- {
- ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
- }
- }
- }
- else
- {
- ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString();
- }
- }
- }
- #endregion
- }
- if (ordProcEntity.ProcessSeq.Contains("D")
- && !ordProcEntity.GroupRoll.Trim().Equals("C072")
- && !outsStlPipeFl.Equals("121903")
- && !outsStlPipeFl.Equals("121902"))
- {
- #region 合同量转换
- OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
- InOrdParamEntity inOrdParam = new InOrdParamEntity();
- PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob);
- DateTime date = new DateTime();
- string errMessage = "";
- double putRate = 1;
- if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
- {
- //投料率
- putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, this.ob);
- }
- inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey, ordProcEntity.IndexSeq,
- ordLnDlyPk, ordProcEntity.PlnDivideId, ordProcEntity.GroupRoll,
- ordProcEntity.Bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate);
- if (!ordAmountCal.isRightParam(inOrdParam, desginKey, dtStatus.Rows[0]["CODE_JG"].ToString(),
- ordProcEntity.Bom, ordProcEntity.GroupRoll, out errMessage))
- {
- errReason = errMessage;
- continue;
- }
- ordAmountCal.InEnity = inOrdParam;
- outOrdParam = ordAmountCal.getOrdAmount();
- if (outOrdParam.ErrCode == -1)
- {
- errReason = "合同量转换出错(" + outOrdParam.ErrMessage + ")。";
- continue;
- }
- ordProcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
- ordProcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
- ordProcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
- ordProcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
- ordProcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
- ordProcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
- ordProcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
- ordProcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
- ordProcEntity.CutNumP = outOrdParam.CutNumP.ToString();
- ordProcEntity.RollLength = outOrdParam.RollLength.ToString();
- ordProcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
- ordProcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
- ordProcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
- #endregion
- }
- isAvailBom = true;
- break;
- }
- if (!isAvailBom)
- {
- MessageUtil.ShowError(errReason);
- return;
- }
- }
- }
- CoreClientParam ccp = new CoreClientParam();
- ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreChangeIndex";
- ccp.MethodName = "updatePlnOrdProcIndex";
- ccp.ServerParams = new object[] { ordProcEntity, desginKey };
- ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
- if (ccp.ReturnCode != -1)
- {
- MessageUtil.ShowTips("修改成功");
- }
- else
- {
- MessageUtil.ShowError("修改失败!" + ccp.ReturnInfo);
- }
- }
- catch (Exception ex)
- {
- if (!(ex is MESException))
- {
- MessageUtil.ShowError(ex.Message);
- }
- }
- DoQuery();
- }
- /// <summary>
- /// 保存
- /// </summary>
- private void DoSave()
- {
- try
- {
- double planQty = 0;
- double orderQty = 0;
- ArrayList list = new ArrayList();
- DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.querySaleStatus",
- new object[] { ordLnDlyPk }, this.ob);
- if (dtStatus == null || dtStatus.Rows.Count <= 0)
- {
- return;
- }
- double.TryParse(dtStatus.Rows[0]["ORDER_QTY"].ToString(), out orderQty);
-
- foreach (UltraGridRow uRow in ultraGridProc.Rows)
- {
- PlnSaleordProcEntity ordProcEntity = new PlnSaleordProcEntity();
- double finishWt = 0;
- double orderQtyD = 0;
- double.TryParse(uRow.Cells["OrderQtyD"].Value.ToString(), out orderQtyD);
- if (orderQtyD != 0)
- {
- DataTable dtProc = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.queryPlnOrdProcById",
- new object[] { ordLnDlyPk, uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob);
- if (dtProc == null || dtProc.Rows.Count <= 0)
- {
- MessageUtil.ShowError("找不到排产记录:"
- + uRow.Cells["PlnDivideId"].Value.ToString());
- return;
- }
- string outsStlPipeFl = dtProc.Rows[0]["OUTS_STL_PIPE_FL"].ToString();
- string processSeq = dtProc.Rows[0]["PROCESS_SEQ"].ToString();
- string desginKey = dtProc.Rows[0]["DESGIN_KEY"].ToString();
- string mscpline = dtProc.Rows[0]["INDEX_SEQ"].ToString();
- string bom = dtProc.Rows[0]["BOM"].ToString();
- string plineD = dtProc.Rows[0]["GROUP_ROLL"].ToString();
- double.TryParse(dtProc.Rows[0]["FINISH_WT"].ToString(), out finishWt);
- double orderWeight = 0;
- if (processSeq.Contains("D")
- && !plineD.Trim().Equals("C072")
- && !outsStlPipeFl.Equals("121903")
- && !outsStlPipeFl.Equals("121902")
- || dtProc.Rows[0]["ORDER_UNIT"].ToString().Trim().Equals("支"))
- {
- #region 合同量转换
- OutOrdParamEntity outOrdParam = new OutOrdParamEntity();
- InOrdParamEntity inOrdParam = new InOrdParamEntity();
- PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob);
- string errMessage = "";
- DateTime date = new DateTime();
- double putRate = 1;
- if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date))
- {
- //投料率
- putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, this.ob);
- }
- inOrdParam = ordAmountCal.getInOrdPlnQtyParam(orderQtyD, dtStatus.Rows[0]["ORDER_UNIT"].ToString(),
- desginKey, mscpline, ordLnDlyPk, plineD,
- bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate);
- if (!ordAmountCal.isRightParam(inOrdParam, desginKey,
- dtStatus.Rows[0]["CODE_JG"].ToString(), bom, plineD, out errMessage))
- {
- MessageUtil.ShowError(errMessage);
- return;
- }
- ordAmountCal.InEnity = inOrdParam;
- outOrdParam = ordAmountCal.getOrdAmount();
- if (outOrdParam.ErrCode == -1)
- {
- MessageUtil.ShowError("合同量转换出错(" + outOrdParam.ErrMessage + ")。");
- return;
- }
- ordProcEntity.WeightPerM = outOrdParam.WeightMi.ToString();
- ordProcEntity.PlanWtD = outOrdParam.WeightInA.ToString();
- ordProcEntity.PlanNumD = outOrdParam.PlanNum.ToString();
- ordProcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString();
- ordProcEntity.AimLenEnd = outOrdParam.AimLength.ToString();
- ordProcEntity.PlanPMain = outOrdParam.WeightPc.ToString();
- ordProcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString();
- ordProcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString();
- ordProcEntity.CutNumP = outOrdParam.CutNumP.ToString();
- ordProcEntity.RollLength = outOrdParam.RollLength.ToString();
- ordProcEntity.AimWallthick = outOrdParam.AimWallthick.ToString();
- ordProcEntity.LenRollMax = outOrdParam.LenRollMax.ToString();
- ordProcEntity.LenRollMin = outOrdParam.LenRollMin.ToString();
- orderWeight = outOrdParam.WeightInA;
- ordProcEntity.AimOutdiameter = outOrdParam.AimOutdiameter.ToString();
- ordProcEntity.FeedRate = putRate.ToString();
- ordProcEntity.Coefficient = outOrdParam.Coefficient.ToString();
- ordProcEntity.CoefficientMin = outOrdParam.CoefficientMin.ToString();
- ordProcEntity.PlanPMainMin = outOrdParam.PlanPMainMin.ToString();
- ordProcEntity.AimWtEnd = outOrdParam.AimWtEnd.ToString();
- ordProcEntity.WeightKzM = outOrdParam.WeightKzM.ToString();
- #endregion
- }
- else
- {
- #region 外购管
- double aimLenEnd = 0;
- double weightPerM = 0;
- int planNum = 0;
- double rateMin = 0;
- double.TryParse(dtProc.Rows[0]["WEIGHT_PER_M"].ToString(), out weightPerM);
- double.TryParse(dtProc.Rows[0]["AIM_LEN_END"].ToString(), out aimLenEnd);
- double.TryParse(dtProc.Rows[0]["COEFFICIENT_MIN"].ToString(), out rateMin);
- if (dtProc.Rows[0]["ORDER_UNIT"].ToString().Equals("米"))
- {
- orderWeight = Math.Round((orderQtyD * weightPerM), 3);
- }
- else if (dtProc.Rows[0]["ORDER_UNIT"].ToString().Equals("英尺"))
- {
- double lengqty = PlanComm.FootoMi(orderQtyD);
- orderWeight = Math.Round((lengqty * weightPerM), 3);
- }
- else if (dtProc.Rows[0]["ORDER_UNIT"].ToString().Equals("英磅"))
- {
- orderWeight = PlanComm.PoundtoTon(orderQtyD);
- }
- else
- {
- orderWeight = orderQtyD;
- }
- //目标长度,取长度上下限中间值,计算计划支数
- if ((orderWeight % (aimLenEnd * weightPerM)) == 0)
- {
- planNum = (int)(orderWeight / (aimLenEnd * weightPerM));
- }
- else
- {
- planNum = (int)(orderWeight / (aimLenEnd * weightPerM)) + 1;
- }
- ordProcEntity.PlanWtD = orderWeight.ToString();
- ordProcEntity.PlanNumD = planNum.ToString();
- ordProcEntity.AimLenEnd = aimLenEnd.ToString();
- ordProcEntity.PlanPMain = orderWeight.ToString();
- ordProcEntity.PlanTotLenD = (planNum * aimLenEnd).ToString();
- ordProcEntity.PlanPMainMin = (rateMin*orderWeight).ToString();
- #endregion
- }
- if (Math.Round(orderWeight, 3) < Math.Round(finishWt, 3))
- {
- MessageUtil.ShowError("计划量必须大于等于已完成量!");
- return;
- }
- }
- ordProcEntity.OrderQtyD = orderQtyD.ToString();
- ordProcEntity.OrdLnDlyPk = ordLnDlyPk;
- ordProcEntity.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString();
- planQty += orderQtyD;
- list.Add(ordProcEntity);
- }
- planQty = Math.Round(planQty, 3);
- if (planQty != orderQty)
- {
- MessageUtil.ShowError("合同订货量" + orderQty.ToString()
- + "吨,与合同分解订货总量" + planQty.ToString() + "不符合!");
- return;
- }
- int succeed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.updatePlnOrdProc",
- new object[] { list }, this.ob);
- if (succeed > 0)
- {
- MessageUtil.ShowTips("保存成功。");
- }
- }
- catch (Exception ex)
- {
- if (!(ex is MESException))
- {
- MessageUtil.ShowError(ex.Message);
- }
- }
- DoQuery();
- }
- /// <summary>
- /// 删除
- /// </summary>
- private void DoDelete()
- {
- try
- {
- double planWtD = 0;
- ArrayList list = new ArrayList();
- ArrayList param = new ArrayList();
- UltraGridRow ugr = ultraGridProc.ActiveRow;
- if (ugr == null)
- {
- return;
- }
- DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.queryPlnOrdProcById",
- new object[] { ordLnDlyPk, ugr.Cells["PlnDivideId"].Value.ToString() }, this.ob);
- if (dtStatus == null || dtStatus.Rows.Count <= 0)
- {
- return;
- }
- if (!double.TryParse(dtStatus.Rows[0]["PLAN_WT_D"].ToString(), out planWtD))
- {
- return;
- }
- if (planWtD != 0)
- {
- MessageUtil.ShowError("该交货行分解量大于零,不能删除!");
- return;
- }
- param.Add(ordLnDlyPk);
- param.Add(ugr.Cells["PlnDivideId"].Value.ToString());
- list.Add(param);
- int succeed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CoreChangeIndex.deletePlnOrdProc",
- new object[] { list }, this.ob);
- if (succeed > 0)
- {
- MessageUtil.ShowTips("删除成功。");
- }
- }
- catch (Exception ex)
- {
- if (!(ex is MESException))
- {
- MessageUtil.ShowError(ex.Message);
- }
- }
- DoQuery();
- }
- private void ultraGridProc_AfterRowActivate(object sender, EventArgs e)
- {
- this.comMscPilneCtrl1.CheMscPline = ultraGridProc.ActiveRow.Cells["IndexSeq"].Value.ToString();
- this.comMscPilneCtrl1.CheCraftSeq = ultraGridProc.ActiveRow.Cells["CraftSeq"].Value.ToString();
- this.comMscPilneCtrl1.OrderSource = orderSource;
- this.comMscPilneCtrl1.OrdLnDivPk = ordLnDlyPk;
- this.comMscPilneCtrl1.DoQuery();
- }
- /// <summary>
- /// 交货pk
- /// </summary>
- public string OrdLnDlyPk
- {
- get { return ordLnDlyPk; }
- set { ordLnDlyPk = value; }
- }
- /// <summary>
- /// 补量需求编号
- /// </summary>
- public string RNumId
- {
- get { return rNumId; }
- set { rNumId = value; }
- }
- }
- }
|