222 lines
8.0 KiB
C#
222 lines
8.0 KiB
C#
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
|
|
{
|
|
|
|
/// <summary>
|
|
/// 生成订单
|
|
/// </summary>
|
|
/// <param name="orderId"></param>
|
|
/// <returns></returns>
|
|
public string ExceOrderPlan(string orderId,string userId)
|
|
{
|
|
|
|
|
|
OrdersModel model = new OrdersModel();
|
|
|
|
List<OrderDetailModel> Orderlist = new List<OrderDetailModel>();
|
|
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<PlanGoodsModel> list = ConvertHelper<PlanGoodsModel>.ConvertToList(dt);
|
|
OrdersModel order = new OrdersModel();
|
|
order.Ck_type = "3";///生产领料出库
|
|
order.CREATE_MAN = userId;
|
|
order.ORDER_ID = IBussFactory<BussDocumentTable>.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<BussOrders>.Instance().InsOrUpdate(order, Orderlist, 0);
|
|
///计划状态更改
|
|
Obsolete(orderId, "1");
|
|
return ErrText;
|
|
}
|
|
}
|
|
|
|
return ErrText;
|
|
}
|
|
/// <summary>
|
|
/// 更新计划状态
|
|
/// </summary>
|
|
/// <param name="oderId"></param>
|
|
/// <param name="sts"></param>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
/// <summary>
|
|
/// 增加一条数据
|
|
/// </summary>
|
|
public string AddProcessPlan(ProcessPlanModel model)
|
|
{
|
|
DataProvider.Instance.ProcessPlan.AddProcessPlan(model);
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
logList.Add(DataProvider.Instance.logData);
|
|
TaCmtOrRak();
|
|
return this.ErrText;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 增加一条数据及明细
|
|
/// </summary>
|
|
public string AddList(ProcessPlanModel model, List<PlanGoodsModel> 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;
|
|
}
|
|
/// <summary>
|
|
/// 更新一条数据
|
|
/// </summary>
|
|
public string Update(ProcessPlanModel model)
|
|
{
|
|
DataProvider.Instance.ProcessPlan.Update(model);
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
logList.Add(DataProvider.Instance.logData);
|
|
TaCmtOrRak();
|
|
return this.ErrText;
|
|
}
|
|
/// <summary>
|
|
/// 作废方案
|
|
/// </summary>
|
|
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;
|
|
}
|
|
/// <summary>
|
|
/// 更新一条数据
|
|
/// </summary>
|
|
public string UpdateAndList(ProcessPlanModel planModel, List<PlanGoodsModel> 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;
|
|
}
|
|
/// <summary>
|
|
/// 删除一条数据及明细
|
|
/// </summary>
|
|
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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取商品原材料对应关系
|
|
/// </summary>
|
|
/// <returns>商品原材料对应关系</returns>
|
|
public List<ProcessPlanModel> GetScPlanList(ProcessPlanModel model)
|
|
{
|
|
DataTable table = DataProvider.Instance.ProcessPlan.GetScPlanList(model);
|
|
if (table != null)
|
|
{
|
|
List<ProcessPlanModel> list = ConvertHelper<ProcessPlanModel>.ConvertToList(table);
|
|
return list;
|
|
}
|
|
return null;
|
|
}
|
|
/// <summary>
|
|
/// 获取流水号
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GetSerialNum()
|
|
{
|
|
return DataProvider.Instance.ProcessPlan.GetSerialNum();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 插入库区间调拨单信息
|
|
/// </summary>
|
|
/// <param name="model"></param>
|
|
/// <returns></returns>
|
|
public string InsertAreaRep(List<AreaRepModel> lstAreaModel)
|
|
{
|
|
DataProvider.Instance.ProcessPlan.InsertAreaRep(lstAreaModel);
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
logList.Add(DataProvider.Instance.logData);
|
|
TaCmtOrRak();
|
|
return this.ErrText;
|
|
}
|
|
}
|
|
}
|