/// <summary> /// 新增 /// </summary> public override int EntityAdd() { IOFormRule rule = new IOFormRule(); IOForm entity = EntityGet(); IOFormDts[] entitydts = EntityDtsGet(); entity.SubmitFlag = this.HTSubmitFlagInsertGet(); rule.RAdd(entity, entitydts); return(entity.ID); }
/// <summary> /// 新增 /// </summary> public override int EntityAdd() { IOFormRule rule = new IOFormRule(); IOForm entity = EntityGet(); IOFormDts[] entitydts = EntityDtsGet(); decimal TotalQty = 0; decimal TotalAmount = 0; for (int i = 0; i < entitydts.Length; i++) { TotalQty += SysConvert.ToDecimal(entitydts[i].Qty); TotalAmount += SysConvert.ToDecimal(entitydts[i].Amount); } entity.TotalQty = TotalQty; entity.TotalAmount = TotalAmount; entity.SubmitFlag = this.HTSubmitFlagInsertGet(); rule.RAdd(entity, entitydts); return(entity.ID); }
/// <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); }