/// <summary> /// 新增(传入事务处理) /// </summary> /// <param name="p_BE">要新增的实体</param> /// <param name="sqlTrans">事务类</param> public void RAdd(int p_ID, string p_IDStr, IDBTransAccess sqlTrans) { try { string sql = "SELECT SectionID,JarNum,Batch FROM WH_PackBox WHERE ID IN (" + p_IDStr + ")"; sql += " GROUP BY SectionID,JarNum,Batch"; DataTable dt = sqlTrans.Fill(sql); int MaxSeq = GetMaxSeq(p_ID); decimal Qty = 0; FHFormDtsRule rule = new FHFormDtsRule(); for (int i = 0; i < dt.Rows.Count; i++) { if (i == 0)//第一行更新 { sql = "SELECT * FROM WH_PackBox WHERE ID IN (" + p_IDStr + ")"; sql += " AND SectionID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["SectionID"])); sql += " AND JarNum=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["JarNum"])); sql += " AND Batch=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["Batch"])); DataTable dtsql = sqlTrans.Fill(sql); FHFormDts entitydts = new FHFormDts(sqlTrans); entitydts.ID = p_ID; entitydts.SelectByID(); entitydts.SectionID = SysConvert.ToString(dt.Rows[i]["SectionID"]); entitydts.JarNum = SysConvert.ToString(dt.Rows[i]["JarNum"]); entitydts.Batch = SysConvert.ToString(dt.Rows[i]["Batch"]); entitydts.Qty = SysConvert.ToDecimal(dtsql.Compute("SUM(Qty)", "")); entitydts.PieceQty = dtsql.Rows.Count; entitydts.PackFlag = 1; entitydts.Amount = entitydts.Qty * entitydts.SingPrice; rule.RUpdate(entitydts, sqlTrans); FHFormDtsPackRule prule = new FHFormDtsPackRule(); sql = "DELETE Sale_FHFormDtsPack WHERE MainID=" + SysString.ToDBString(entitydts.MainID); sql += " AND Seq=" + SysString.ToDBString(entitydts.Seq); sqlTrans.ExecuteNonQuery(sql); for (int j = 0; j < dtsql.Rows.Count; j++) { FHFormDtsPack pentity = new FHFormDtsPack(sqlTrans); pentity.MainID = entitydts.MainID; pentity.Seq = entitydts.Seq; pentity.SubSeq = j + 1; pentity.BoxNo = SysConvert.ToString(dtsql.Rows[j]["BoxNo"]); pentity.Qty = SysConvert.ToDecimal(dtsql.Rows[j]["Qty"]); pentity.DID = entitydts.ID; prule.RAdd(pentity, sqlTrans); } } else { sql = "SELECT * FROM WH_PackBox WHERE ID IN (" + p_IDStr + ")"; sql += " AND SectionID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["SectionID"])); sql += " AND JarNum=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["JarNum"])); sql += " AND Batch=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["Batch"])); DataTable dtsql = sqlTrans.Fill(sql); FHFormDts entitydts = new FHFormDts(sqlTrans); entitydts.ID = p_ID; entitydts.SelectByID(); entitydts.Seq = MaxSeq + i; entitydts.SectionID = SysConvert.ToString(dt.Rows[i]["SectionID"]); entitydts.JarNum = SysConvert.ToString(dt.Rows[i]["JarNum"]); entitydts.Batch = SysConvert.ToString(dt.Rows[i]["Batch"]); entitydts.Qty = SysConvert.ToDecimal(dtsql.Compute("SUM(Qty)", "")); entitydts.PieceQty = dtsql.Rows.Count; entitydts.PackFlag = 1; entitydts.Amount = entitydts.Qty * entitydts.SingPrice; sql = "SELECT ID FROM Sale_FHFormDts WHERE MainID=" + SysString.ToDBString(entitydts.MainID); sql += " AND Seq=" + SysString.ToDBString(entitydts.Seq); if (sqlTrans.Fill(sql).Rows.Count > 0) { throw new BaseException("不能增行,该行已存在"); } rule.RAdd(entitydts, sqlTrans); IOFormDtsPackRule prule = new IOFormDtsPackRule(); sql = "DELETE Sale_FHFormDtsPack WHERE MainID=" + SysString.ToDBString(entitydts.MainID); sql += " AND Seq=" + SysString.ToDBString(entitydts.Seq); sqlTrans.ExecuteNonQuery(sql); for (int j = 0; j < dtsql.Rows.Count; j++) { FHFormDtsPack pentity = new FHFormDtsPack(sqlTrans); pentity.MainID = entitydts.MainID; pentity.Seq = entitydts.Seq; pentity.SubSeq = j + 1; pentity.BoxNo = SysConvert.ToString(dtsql.Rows[j]["BoxNo"]); pentity.Qty = SysConvert.ToDecimal(dtsql.Rows[j]["Qty"]); pentity.DID = entitydts.ID; prule.RAdd(pentity, sqlTrans); } } } } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 保存(传入事务处理) /// </summary> /// <param name="p_BE">要新增的实体</param> /// <param name="sqlTrans">事务类</param> public void RSave(int p_ID, int p_MainID, int p_Seq, BaseEntity[] p_BE, bool p_UpdateFlag, IDBTransAccess sqlTrans) { try { string sql = ""; if (p_UpdateFlag) //修改状态下首先清除被删除的码单明细 { string idStr = string.Empty; //ID字符串 idStr = "0"; for (int i = 0; i < p_BE.Length; i++) { IOFormDtsPack entity = (IOFormDtsPack)p_BE[i]; if (entity.ID != 0)//有ID { if (idStr != string.Empty) { idStr += ","; } idStr += entity.ID.ToString(); } } if (idStr != string.Empty) { sql = "DELETE FROM WH_PackBox WHERE BoxNo IN (SELECT BoxNo FROM WH_IOFormDtsPack WHERE DID=" + SysString.ToDBString(p_ID) + " AND ID NOT IN(" + idStr + ") )"; sqlTrans.ExecuteNonQuery(sql); //执行条形码删除 sql = "DELETE FROM WH_IOFormDtsPack WHERE DID=" + SysString.ToDBString(p_ID) + " AND ID NOT IN(" + idStr + ")"; //WH_IOFormDtsPack WH_PackBox sqlTrans.ExecuteNonQuery(sql); } } else//新增状态 { sql = "SELECT TOP 1 ID FROM WH_IOFormDtsPack WHERE DID=" + SysString.ToDBString(p_ID); DataTable dt = sqlTrans.Fill(sql); if (dt.Rows.Count > 0) { throw new BaseException("不能重复保存!"); } } IOForm p_Main = new IOForm(sqlTrans); p_Main.ID = p_MainID; p_Main.SelectByID(); IOFormDts p_MainDts = new IOFormDts(sqlTrans); p_MainDts.ID = p_ID; p_MainDts.SelectByID(); IOFormDtsPackRule rule = new IOFormDtsPackRule(); PackBoxRule Brule = new PackBoxRule(); decimal Qty = 0; decimal Weight = 0; decimal Yard = 0; decimal PieceQty = 0; for (int i = 0; i < p_BE.Length; i++) { FormNoControlRule frule = new FormNoControlRule(); IOFormDtsPack entity = (IOFormDtsPack)p_BE[i]; int boxNoCreateTypeID = 0;//箱号条码来源 if (entity.ID == 0) { if (entity.BoxNo == string.Empty)//没有箱号条码 { entity.BoxNo = frule.RGetFormNo((int)FormNoControlEnum.码单箱号, sqlTrans); rule.RAdd(entity, sqlTrans); frule.RAddSort((int)FormNoControlEnum.码单箱号, sqlTrans); } else//有箱号条码说明是验布产生的条码 { boxNoCreateTypeID = 1;//验布来源 } } else { rule.RUpdate(entity, sqlTrans); } PackBox entityBox = new PackBox(); if (entity.ID != 0)//仓库明细已生成,则寻找箱号ID 此处判断其实无意义,经过上面的代码肯定有ID值了 { sql = "SELECT ID FROM WH_PackBox WHERE BoxNo=" + SysString.ToDBString(entity.BoxNo); DataTable dtPackBox = sqlTrans.Fill(sql); if (dtPackBox.Rows.Count != 0)//如果找到条码 { entityBox.ID = SysConvert.ToInt32(dtPackBox.Rows[0]["ID"]); } else//如果未找到条码 { entityBox.CreateSourceID = boxNoCreateTypeID;////原始条码表加个字段表示来源 0:表示入库录入 } } entityBox.BoxNo = entity.BoxNo; entityBox.WHID = p_MainDts.WHID; entityBox.SectionID = p_MainDts.SectionID; entityBox.SBitID = p_MainDts.SBitID; entityBox.ColorName = p_MainDts.ColorName; entityBox.ColorNum = p_MainDts.ColorNum; entityBox.CompanyTypeID = p_MainDts.CompanyTypeID; entityBox.GoodsCode = p_MainDts.GoodsCode; // entityBox.GoodsLevel = p_MainDts.GoodsLevel; entityBox.ItemCode = p_MainDts.ItemCode; entityBox.ItemModel = p_MainDts.ItemModel; entityBox.ItemName = p_MainDts.ItemName; entityBox.ItemStd = p_MainDts.ItemStd; entityBox.JarNum = p_MainDts.JarNum; entityBox.Batch = p_MainDts.Batch; entityBox.VendorBatch = p_MainDts.VendorBatch; entityBox.MWeight = p_MainDts.MWeight; entityBox.MWidth = p_MainDts.MWidth; entityBox.Qty = entity.Qty; entityBox.Weight = entity.Weight; entityBox.Yard = entity.Yard; entityBox.GoodsLevel = entity.GoodsLevel; entityBox.Unit = p_MainDts.Unit; entityBox.BoxStatusID = (int)EnumBoxStatus.未入库; entityBox.DID = p_ID; entityBox.InFormNo = p_Main.FormNo; entityBox.OrderFormNo = p_MainDts.DtsOrderFormNo; //合同号明细 entityBox.SubSeq = entity.SubSeq; //卷号 if (entityBox.ID == 0) //没有ID则新增 { Brule.RAdd(entityBox, sqlTrans); } else//有ID则修改 { Brule.RUpdate(entityBox, sqlTrans); } Qty += entity.Qty; Weight += entity.Weight; Yard += entity.Yard; PieceQty++; } //if (PieceQty == 0) //{ // throw new BaseException("请填写细码后点击保存"); //} sql = "UPDATE WH_IOFormDts SET Qty=" + SysString.ToDBString(Qty); sql += ",Weight=" + SysString.ToDBString(Weight); sql += ",Yard=" + SysString.ToDBString(Yard); sql += ",PieceQty=" + SysString.ToDBString(PieceQty); sql += ",PackFlag=1 "; sql += " WHERE ID=" + SysString.ToDBString(p_ID); sqlTrans.ExecuteNonQuery(sql); sql = "UPDATE WH_IOFormDts SET Amount=ISNULL(SinglePrice,0)*("; sql += "CASE"; sql += " WHEN Unit='RMB/KG' OR Unit='USD/KG' THEN ISNULL(Weight,0)"; sql += " WHEN Unit='RMB/Y' OR Unit='USD/Y' THEN ISNULL(Yard,0) "; sql += " WHEN Unit='RMB/M' OR Unit='USD/M' THEN ISNULL(Qty,0) "; sql += " ELSE 0 END)"; sql += " WHERE ID=" + SysString.ToDBString(p_ID); sqlTrans.ExecuteNonQuery(sql); } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 新增(传入事务处理) /// </summary> /// <param name="p_BE">要新增的实体</param> /// <param name="sqlTrans">事务类</param> public void RAdd(int p_ID, string p_IDStr, IDBTransAccess sqlTrans) { try { string sql = "SELECT WHID,SectionID,SBitID,JarNum,Batch FROM WH_PackBox WHERE ID IN (" + p_IDStr + ")"; sql += " GROUP BY WHID,SectionID,SBitID,JarNum,Batch"; DataTable dt = sqlTrans.Fill(sql); int MaxSeq = GetMaxSeq(p_ID); decimal Qty = 0; IOFormDtsRule rule = new IOFormDtsRule(); for (int i = 0; i < dt.Rows.Count; i++) { if (i == 0)//第一行更新 { sql = "SELECT * FROM WH_PackBox WHERE ID IN (" + p_IDStr + ")"; sql += " AND WHID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["WHID"])); sql += " AND SectionID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["SectionID"])); sql += " AND SBitID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["SBitID"])); sql += " AND JarNum=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["JarNum"])); sql += " AND Batch=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["Batch"])); DataTable dtsql = sqlTrans.Fill(sql); IOFormDts entitydts = new IOFormDts(sqlTrans); entitydts.ID = p_ID; entitydts.SelectByID(); entitydts.WHID = SysConvert.ToString(dt.Rows[i]["WHID"]); entitydts.SectionID = SysConvert.ToString(dt.Rows[i]["SectionID"]); entitydts.SBitID = SysConvert.ToString(dt.Rows[i]["SBitID"]); entitydts.JarNum = SysConvert.ToString(dt.Rows[i]["JarNum"]); entitydts.Batch = SysConvert.ToString(dt.Rows[i]["Batch"]); entitydts.Qty = SysConvert.ToDecimal(SysConvert.ToDecimal(dtsql.Compute("SUM(Qty)", "")), 2); entitydts.Weight = SysConvert.ToDecimal(SysConvert.ToDecimal(dtsql.Compute("SUM(Weight)", "")), 2); entitydts.Yard = SysConvert.ToDecimal(SysConvert.ToDecimal(dtsql.Compute("SUM(Yard)", "")), 2); entitydts.PieceQty = dtsql.Rows.Count; entitydts.PackFlag = 1; if (entitydts.Unit == "RMB/KG" || entitydts.Unit == "USD/KG") { entitydts.Amount = entitydts.Weight * entitydts.SinglePrice; } if (entitydts.Unit == "RMB/M" || entitydts.Unit == "USD/M") { entitydts.Amount = entitydts.Qty * entitydts.SinglePrice; } if (entitydts.Unit == "RMB/Y" || entitydts.Unit == "USD/Y") { entitydts.Amount = entitydts.Yard * entitydts.SinglePrice; } rule.RUpdate(entitydts, sqlTrans); IOFormDtsPackRule prule = new IOFormDtsPackRule(); sql = "DELETE WH_IOFormDtsPack WHERE MainID=" + SysString.ToDBString(entitydts.MainID); sql += " AND Seq=" + SysString.ToDBString(entitydts.Seq); sqlTrans.ExecuteNonQuery(sql); for (int j = 0; j < dtsql.Rows.Count; j++) { IOFormDtsPack pentity = new IOFormDtsPack(sqlTrans); pentity.MainID = entitydts.MainID; pentity.Seq = entitydts.Seq; pentity.SubSeq = SysConvert.ToInt32(dtsql.Rows[j]["SubSeq"]); //zhoufc 2014.10.17 SubSeq表示卷号 pentity.GoodsLevel = SysConvert.ToString(dtsql.Rows[j]["GoodsLevel"]); pentity.BoxNo = SysConvert.ToString(dtsql.Rows[j]["BoxNo"]); pentity.Weight = SysConvert.ToDecimal(dtsql.Rows[j]["Weight"]); pentity.Qty = SysConvert.ToDecimal(dtsql.Rows[j]["Qty"]); pentity.Yard = SysConvert.ToDecimal(dtsql.Rows[j]["Yard"]); pentity.DID = entitydts.ID; prule.RAdd(pentity, sqlTrans); } } else { sql = "SELECT * FROM WH_PackBox WHERE ID IN (" + p_IDStr + ")"; sql += " AND WHID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["WHID"])); sql += " AND SectionID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["SectionID"])); sql += " AND SBitID=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["SBitID"])); sql += " AND JarNum=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["JarNum"])); sql += " AND Batch=" + SysString.ToDBString(SysConvert.ToString(dt.Rows[i]["Batch"])); DataTable dtsql = sqlTrans.Fill(sql); IOFormDts entitydts = new IOFormDts(sqlTrans); entitydts.ID = p_ID; entitydts.SelectByID(); entitydts.Seq = MaxSeq + i; entitydts.WHID = SysConvert.ToString(dt.Rows[i]["WHID"]); entitydts.SectionID = SysConvert.ToString(dt.Rows[i]["SectionID"]); entitydts.SBitID = SysConvert.ToString(dt.Rows[i]["SBitID"]); entitydts.JarNum = SysConvert.ToString(dt.Rows[i]["JarNum"]); entitydts.Batch = SysConvert.ToString(dt.Rows[i]["Batch"]); entitydts.Qty = SysConvert.ToDecimal(SysConvert.ToDecimal(dtsql.Compute("SUM(Qty)", ""))); entitydts.Weight = SysConvert.ToDecimal(SysConvert.ToDecimal(dtsql.Compute("SUM(Weight)", "")), 2); entitydts.Yard = SysConvert.ToDecimal(SysConvert.ToDecimal(dtsql.Compute("SUM(Yard)", "")), 2); entitydts.PieceQty = dtsql.Rows.Count; entitydts.PackFlag = 1; if (entitydts.Unit == "RMB/KG" || entitydts.Unit == "USD/KG") { entitydts.Amount = entitydts.Weight * entitydts.SinglePrice; } if (entitydts.Unit == "RMB/M" || entitydts.Unit == "USD/M") { entitydts.Amount = entitydts.Qty * entitydts.SinglePrice; } if (entitydts.Unit == "RMB/Y" || entitydts.Unit == "USD/Y") { entitydts.Amount = entitydts.Yard * entitydts.SinglePrice; } sql = "SELECT ID FROM WH_IOFormDts WHERE MainID=" + SysString.ToDBString(entitydts.MainID); sql += " AND Seq=" + SysString.ToDBString(entitydts.Seq); if (sqlTrans.Fill(sql).Rows.Count > 0) { throw new BaseException("不能增行,该行已存在"); } rule.RAdd(entitydts, sqlTrans); IOFormDtsPackRule prule = new IOFormDtsPackRule(); sql = "DELETE WH_IOFormDtsPack WHERE MainID=" + SysString.ToDBString(entitydts.MainID); sql += " AND Seq=" + SysString.ToDBString(entitydts.Seq); sqlTrans.ExecuteNonQuery(sql); for (int j = 0; j < dtsql.Rows.Count; j++) { IOFormDtsPack pentity = new IOFormDtsPack(sqlTrans); pentity.MainID = entitydts.MainID; pentity.Seq = entitydts.Seq; pentity.SubSeq = SysConvert.ToInt32(dtsql.Rows[j]["SubSeq"]); //zhoufc 2014.10.17 SubSeq表示卷号 pentity.GoodsLevel = SysConvert.ToString(dtsql.Rows[j]["GoodsLevel"]); pentity.BoxNo = SysConvert.ToString(dtsql.Rows[j]["BoxNo"]); pentity.Weight = SysConvert.ToDecimal(dtsql.Rows[j]["Weight"]); pentity.Qty = SysConvert.ToDecimal(dtsql.Rows[j]["Qty"]); pentity.Yard = SysConvert.ToDecimal(dtsql.Rows[j]["Yard"]); pentity.DID = entitydts.ID; prule.RAdd(pentity, sqlTrans); } } } } catch (BaseException) { throw; } catch (Exception E) { throw new BaseException(E.Message); } }
/// <summary> /// 创建单据 /// </summary> /// <param name="entity"></param> /// <param name="sqlTrans"></param> /// <returns></returns> IOForm RAutoCreateWHForm(FabricWHOutForm entity, IDBTransAccess sqlTrans) { IOForm entitywh = new IOForm(sqlTrans); FabricProcess entityjg = new FabricProcess(sqlTrans); entityjg.ID = entity.MainID; entityjg.SelectByID(); #region 赋值出入库单据主实体 /*赋值出入库单据主实体 Begin*/ SaleProcedureRule rulesalePro = new SaleProcedureRule(); int saleProcedureID = rulesalePro.GetSaleProcedureByWOTypeID(entityjg.ProcessTypeID);//加工业务单据类型ID string sql = string.Empty; sql = "SELECT JGFormListID FROM Enum_SaleProcedure WHERE ID=" + saleProcedureID; DataTable dtSalePro = sqlTrans.Fill(sql);//配置表 if (dtSalePro.Rows.Count != 0) { entitywh.SubType = SysConvert.ToInt32(dtSalePro.Rows[0]["JGFormListID"]); FormListRule ruleformlist = new FormListRule(); entitywh.HeadType = ruleformlist.GetFormListIDBySubTypeID(entitywh.SubType, sqlTrans); } else { throw new Exception("业务单据类型配置异常"); } entitywh.WHID = entity.WHID; entitywh.WHOP = ParamConfig.LoginName; entitywh.VendorID = entityjg.DyeFactorty;//加工厂 entitywh.FormDate = DateTime.Now.Date; entitywh.WHType = entity.WHID; entitywh.SpecialNo = entity.FormNo;//源单据号;自动扣料的单据号 FormNoControlRule formconrule = new FormNoControlRule(); entitywh.FormNo = formconrule.RGetWHFormNo(entitywh.SubType, "", sqlTrans); /*赋值出入库单据主实体End */ #endregion #region 赋值出入库单据明细实体 /*赋值出入库单据明细实体 Begin*/ sql = "SELECT * FROM WO_FabricWHOutFormDts WHERE MainID=" + entity.ID; DataTable dtDts = sqlTrans.Fill(sql); IOFormDts[] entityDtswh = new IOFormDts[dtDts.Rows.Count]; if (dtDts.Rows.Count == 0) { throw new Exception("没有数据明细,不应进行数据保存"); } for (int i = 0; i < dtDts.Rows.Count; i++) { entityDtswh[i] = new IOFormDts(); entityDtswh[i].Seq = i + 1; entityDtswh[i].WHID = dtDts.Rows[i]["WHID"].ToString(); entityDtswh[i].SectionID = dtDts.Rows[i]["SectionID"].ToString(); entityDtswh[i].SBitID = dtDts.Rows[i]["SBitID"].ToString(); entityDtswh[i].ItemCode = dtDts.Rows[i]["ItemCode"].ToString(); entityDtswh[i].ItemName = dtDts.Rows[i]["ItemName"].ToString(); entityDtswh[i].ItemStd = dtDts.Rows[i]["ItemStd"].ToString(); entityDtswh[i].ItemModel = dtDts.Rows[i]["ItemModel"].ToString(); entityDtswh[i].Batch = dtDts.Rows[i]["Batch"].ToString(); entityDtswh[i].VendorBatch = dtDts.Rows[i]["VendorBatch"].ToString(); entityDtswh[i].ColorNum = dtDts.Rows[i]["ColorNum"].ToString(); entityDtswh[i].ColorName = dtDts.Rows[i]["ColorName"].ToString(); entityDtswh[i].JarNum = dtDts.Rows[i]["JarNum"].ToString(); entityDtswh[i].PieceQty = SysConvert.ToInt32(dtDts.Rows[i]["PieceQty"]); entityDtswh[i].Remark = dtDts.Rows[i]["Remark"].ToString(); entityDtswh[i].Qty = SysConvert.ToDecimal(dtDts.Rows[i]["Qty"]); entityDtswh[i].Unit = dtDts.Rows[i]["Unit"].ToString(); entityDtswh[i].Weight = SysConvert.ToDecimal(dtDts.Rows[i]["Weight"]); entityDtswh[i].SinglePrice = SysConvert.ToDecimal(dtDts.Rows[i]["SinglePrice"]); entityDtswh[i].DYPrice = SysConvert.ToDecimal(dtDts.Rows[i]["DYPrice"]); entityDtswh[i].Amount = SysConvert.ToDecimal(dtDts.Rows[i]["Amount"]); entityDtswh[i].GoodsCode = dtDts.Rows[i]["GoodsCode"].ToString(); entityDtswh[i].GoodsLevel = dtDts.Rows[i]["GoodsLevel"].ToString(); entityDtswh[i].VColorNum = dtDts.Rows[i]["VColorNum"].ToString(); entityDtswh[i].VColorName = dtDts.Rows[i]["VColorName"].ToString(); entityDtswh[i].VItemCode = dtDts.Rows[i]["VItemCode"].ToString(); entityDtswh[i].MWeight = dtDts.Rows[i]["MWeight"].ToString(); entityDtswh[i].MWidth = dtDts.Rows[i]["MWidth"].ToString(); entityDtswh[i].WeightUnit = dtDts.Rows[i]["WeightUnit"].ToString(); entityDtswh[i].PackDts = dtDts.Rows[i]["PackDts"].ToString(); //entityDtswh[i].DtsSO = dtDts.Rows[i]["DtsSO"].ToString(); //entityDtswh[i].DtsOrderFormNo = dtDts.Rows[i]["DtsOrderFormNo"].ToString(); entityDtswh[i].DtsInVendorID = dtDts.Rows[i]["DtsInVendorID"].ToString(); entityDtswh[i].InSO = dtDts.Rows[i]["InSO"].ToString(); entityDtswh[i].InOrderFormNo = dtDts.Rows[i]["InOrderFormNo"].ToString(); entityDtswh[i].InSaleOPID = dtDts.Rows[i]["InSaleOPID"].ToString(); entityDtswh[i].MLType = SysConvert.ToInt32(dtDts.Rows[i]["MLType"]); //entityDtswh[i].LoadDtsID = SysConvert.ToInt32(dtDts.Rows[i]["LoadDtsID"]); entityDtswh[i].LoadDtsID = SysConvert.ToInt32(dtDts.Rows[i]["ID"]); //明细表ID entityDtswh[i].DtsSO = entityjg.FormNo; //关联单据 entityDtswh[i].DtsOrderFormNo = dtDts.Rows[i]["DtsSO"].ToString(); //订单号 } decimal TotalQty = 0; decimal TotalAmount = 0; for (int i = 0; i < entityDtswh.Length; i++) { TotalQty += SysConvert.ToDecimal(entityDtswh[i].Qty); TotalAmount += SysConvert.ToDecimal(entityDtswh[i].Amount); } entitywh.TotalQty = TotalQty; entitywh.TotalAmount = TotalAmount; /*赋值出入库单据明细实体 End*/ #endregion IOFormRule rulewh = new IOFormRule(); rulewh.RAdd(entitywh, entityDtswh, sqlTrans);//保存主从数据 #region 保存孙表数据 /*赋值出入库单据码单明细数据 Begin*/ sql = "SELECT TOP 1 ID FROM WO_FabricWHOutFormDtsPack WHERE MainID=" + SysString.ToDBString(entity.ID); DataTable dtPackCheck = sqlTrans.Fill(sql); if (dtPackCheck.Rows.Count != 0)//如果有码单明细表示需要保存码单明细值 { sql = "SELECT LoadDtsID,ID,Seq FROM WH_IOFormDts WHERE MainID=" + SysString.ToDBString(entitywh.ID); dtPackCheck = sqlTrans.Fill(sql); for (int i = 0; i < dtPackCheck.Rows.Count; i++) { int LoadDtsID = SysConvert.ToInt32(dtPackCheck.Rows[i]["LoadDtsID"]); int Seq = SysConvert.ToInt32(dtPackCheck.Rows[i]["Seq"]); int ID = SysConvert.ToInt32(dtPackCheck.Rows[i]["ID"]); int SubSeq = 1; if (LoadDtsID > 0) { sql = "SELECT * FROM WO_FabricWHOutFormDtsPack WHERE DID=" + SysString.ToDBString(LoadDtsID); DataTable dtfh = sqlTrans.Fill(sql); for (int j = 0; j < dtfh.Rows.Count; j++) { IOFormDtsPackRule rulePack = new IOFormDtsPackRule(); IOFormDtsPack entityPack = new IOFormDtsPack(); entityPack.MainID = entitywh.ID; entityPack.Seq = Seq; entityPack.DID = ID; entityPack.SubSeq = SubSeq; entityPack.BoxNo = SysConvert.ToString(dtfh.Rows[j]["BoxNo"]); entityPack.Remark = SysConvert.ToString(dtfh.Rows[j]["BoxNo"]); entityPack.Qty = SysConvert.ToDecimal(dtfh.Rows[j]["Qty"]); SubSeq++; rulePack.RAdd(entityPack, sqlTrans); } } } } /*赋值出入库单据码单明细数据 End*/ #endregion rulewh.RSubmit(entitywh.ID, (int)YesOrNo.Yes, sqlTrans);//提交 return(entitywh); }