using System; using System.Collections.Generic; using System.Linq; using System.Text; using WMS.Model.CK; using System.Data; using WMS.IData; using WMS.Common; using WMS.Model.Base; using WMS.Model.SC; using WMS.Model.Stock; using WMS.Business.CK; using WMS.Business.Base; namespace WMS.Business.SC { public class BussProcessPlan : IBussFactory { /// /// 生成订单 /// /// /// public string ExceOrderPlan(string orderId,string userId) { OrdersModel model = new OrdersModel(); List Orderlist = new List(); PlanGoodsModel goods_model = new PlanGoodsModel(); goods_model.PLAN_ID = orderId; DataTable dt = DataProvider.Instance.PlanGoods.GetPlanGoodsList(goods_model); if(dt!=null) { if(dt.Rows.Count>0) { List list = ConvertHelper.ConvertToList(dt); OrdersModel order = new OrdersModel(); order.Ck_type = "3";///生产领料出库 order.CREATE_MAN = userId; order.ORDER_ID = IBussFactory.Instance().GetDocumentStream("出库通知单"); order.BUSINESSORDERID = list[0].PLAN_ID; order.STATUS = "0"; order.CREATE_MAN = userId; foreach (PlanGoodsModel goods in list) { if (goods.OUT_NUM>0) { if( Orderlist.Count(r=>r.ORDER_ID == order.BUSINESSORDERID && r.GOOD_ID== goods.MATERIAL_ID)>0) { OrderDetailModel orderInfo = Orderlist.Find(r => r.ORDER_ID == order.BUSINESSORDERID && r.GOOD_ID == goods.MATERIAL_ID); orderInfo.GOODS_NUM = orderInfo.GOODS_NUM + goods.OUT_NUM; } else { OrderDetailModel orderInfo = new OrderDetailModel(); orderInfo.GOOD_ID = goods.MATERIAL_ID; orderInfo.GOODS_NUM = goods.OUT_NUM; orderInfo.ORDER_ID = order.BUSINESSORDERID; Orderlist.Add(orderInfo); } } } ErrText = IBussFactory.Instance().InsOrUpdate(order, Orderlist, 0); ///计划状态更改 Obsolete(orderId, "1"); return ErrText; } } return ErrText; } /// /// 更新计划状态 /// /// /// /// public string UpdateStsScPlan(string oderId,string sts) { DataProvider.Instance.ProcessPlan.UpdateStsScPlan(oderId,sts); Transaction = DataProvider.Instance.TranOracle; logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } /// /// 增加一条数据 /// public string AddProcessPlan(ProcessPlanModel model) { DataProvider.Instance.ProcessPlan.AddProcessPlan(model); Transaction = DataProvider.Instance.TranOracle; logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } /// /// 增加一条数据及明细 /// public string AddList(ProcessPlanModel model, List listmodel) { Transaction = DataProvider.Instance.TranOracle; DataProvider.Instance.ProcessPlan.AddProcessPlan(model); logList.Add(DataProvider.Instance.logData); foreach (PlanGoodsModel pmodel in listmodel) { DataProvider.Instance.PlanGoods.AddPlanGoods(pmodel); logList.Add(DataProvider.Instance.logData); } TaCmtOrRak(); return this.ErrText; } /// /// 更新一条数据 /// public string Update(ProcessPlanModel model) { DataProvider.Instance.ProcessPlan.Update(model); Transaction = DataProvider.Instance.TranOracle; logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } /// /// 作废方案 /// public string Obsolete(string planID,string status) { DataProvider.Instance.ProcessPlan.Obsolete(planID,status); Transaction = DataProvider.Instance.TranOracle; logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } /// /// 更新一条数据 /// public string UpdateAndList(ProcessPlanModel planModel, List lstPlanGoods) { Transaction = DataProvider.Instance.TranOracle; DataProvider.Instance.ProcessPlan.Update(planModel); logList.Add(DataProvider.Instance.logData); DataProvider.Instance.PlanGoods.Delete(new PlanGoodsModel() { PLAN_ID = planModel.PLAN_ID }); logList.Add(DataProvider.Instance.logData); if (lstPlanGoods.Count > 0) { foreach (PlanGoodsModel pmodel in lstPlanGoods) { pmodel.PLAN_ID = planModel.PLAN_ID; DataProvider.Instance.PlanGoods.AddPlanGoods(pmodel); logList.Add(DataProvider.Instance.logData); } } TaCmtOrRak(); return this.ErrText; } /// /// 删除一条数据及明细 /// public string Delete(ProcessPlanModel model) { Transaction = DataProvider.Instance.TranOracle; DataProvider.Instance.ProcessPlan.Delete(model); logList.Add(DataProvider.Instance.logData); DataProvider.Instance.PlanGoods.Delete(new PlanGoodsModel() { PLAN_ID = model.PLAN_ID }); logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } /// /// 获取商品原材料对应关系 /// /// 商品原材料对应关系 public List GetScPlanList(ProcessPlanModel model) { DataTable table = DataProvider.Instance.ProcessPlan.GetScPlanList(model); if (table != null) { List list = ConvertHelper.ConvertToList(table); return list; } return null; } /// /// 获取流水号 /// /// public string GetSerialNum() { return DataProvider.Instance.ProcessPlan.GetSerialNum(); } /// /// 插入库区间调拨单信息 /// /// /// public string InsertAreaRep(List lstAreaModel) { DataProvider.Instance.ProcessPlan.InsertAreaRep(lstAreaModel); Transaction = DataProvider.Instance.TranOracle; logList.Add(DataProvider.Instance.logData); TaCmtOrRak(); return this.ErrText; } } }