556 lines
25 KiB
C#
556 lines
25 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using WMS.Model.Stock;
|
|
using System.Data;
|
|
using WMS.IData;
|
|
using WMS.Common;
|
|
using WMS.Model.Base;
|
|
|
|
namespace WMS.Business.Stock
|
|
{
|
|
public class BussMoveLoc : IBussFactory
|
|
{
|
|
/// <summary>
|
|
/// 修改移位单(包括明细)
|
|
/// </summary>
|
|
/// <param name="MoveLocModel">移位单Model</param>
|
|
/// <param name="listMoveLocTab">明细ModelList</param>
|
|
/// <returns>是否成功</returns>
|
|
public string UpdateMoveLocAndTab(MoveLocModel moveLocModel, List<MoveLocTabModel> listMoveLocTab, List<SKUTabModel> listSKU)
|
|
{
|
|
//修改移位单
|
|
DataProvider.Instance.MoveLoc.UpdateMoveLoc(moveLocModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
|
|
//获取原来的所有明细,减去原来的已占用库存
|
|
MoveLocTabModel tab = new MoveLocTabModel();
|
|
tab.MOVELOC_ID = moveLocModel.MOVELOC_ID;
|
|
DataTable table = DataProvider.Instance.MoveLocTab.GetMoveLocTabDT(tab);
|
|
List<MoveLocTabModel> moveLocTabList = ConvertHelper<MoveLocTabModel>.ConvertToList(table);
|
|
foreach (var item in moveLocTabList)
|
|
{
|
|
MIStockModel mi = new MIStockModel();
|
|
mi.PUTIN_ID = item.PUTIN_ID;
|
|
mi.GOODS_ID = item.GOODS_ID;
|
|
mi.LOCATION_ID = item.OLD_LOC_ID;
|
|
mi.OCCUPY_NUM = -item.PLAN_NUM;
|
|
DataProvider.Instance.MIStock.UpdateMIStockOccupyNum(mi);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
|
|
//删除库存占用记录表相应记录
|
|
MIStockOccupyModel queryOccupy = new MIStockOccupyModel();
|
|
queryOccupy.GOODS_ID = mi.GOODS_ID;
|
|
queryOccupy.LOCATION_ID = mi.LOCATION_ID;
|
|
queryOccupy.PUTIN_ID = mi.PUTIN_ID;
|
|
List<MIStockOccupyModel> occupy = ConvertHelper<MIStockOccupyModel>.ConvertToList(DataProvider.Instance.MIStockOccupy.GetMIStockOccupyDT(queryOccupy));
|
|
DataProvider.Instance.MIStockOccupy.DeleteMIStockOccupy(occupy[0]);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
|
|
//删除所有明细
|
|
DataProvider.Instance.MoveLocTab.DeleteMoveLocTab(moveLocModel.MOVELOC_ID);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//增加明细
|
|
foreach (MoveLocTabModel moveLocTabModel in listMoveLocTab)
|
|
{
|
|
DataProvider.Instance.MoveLocTab.InsertMoveLocTab(moveLocTabModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//根据计划数修改已占用库存
|
|
MIStockModel mi = new MIStockModel();
|
|
mi.PUTIN_ID = moveLocTabModel.PUTIN_ID;
|
|
mi.GOODS_ID = moveLocTabModel.GOODS_ID;
|
|
mi.LOCATION_ID = moveLocTabModel.OLD_LOC_ID;
|
|
mi.OCCUPY_NUM = moveLocTabModel.PLAN_NUM;
|
|
DataProvider.Instance.MIStock.UpdateMIStockOccupyNum(mi);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//写入库存占用记录表
|
|
MIStockModel mistock = ConvertHelper<MIStockModel>.ConvertToList(DataProvider.Instance.MIStock.GetMIStockDT(mi))[0];
|
|
MIStockOccupyModel occupy = new MIStockOccupyModel();
|
|
occupy.AREA_ID = mistock.AREA_ID;
|
|
occupy.DOCCTNUMBER = moveLocTabModel.MOVELOC_ID;
|
|
occupy.GOODS_ID = mistock.GOODS_ID;
|
|
occupy.LOCATION_ID = mistock.LOCATION_ID;
|
|
occupy.OCCUPY_NUM = moveLocTabModel.PLAN_NUM;
|
|
occupy.PUTIN_ID = mistock.PUTIN_ID;
|
|
occupy.STOCK_ID = mistock.STOCK_ID;
|
|
occupy.STORAGE_ID = mistock.STORAGE_ID;
|
|
DataProvider.Instance.MIStockOccupy.InsertMIStockOccupy(occupy);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
|
|
if (moveLocModel.STATE == "2")
|
|
{//状态为完成
|
|
List<MIStockModel> hadUpdeteList = new List<MIStockModel>();//已经被修改过的库存记录
|
|
|
|
foreach (MoveLocTabModel item in listMoveLocTab)
|
|
{
|
|
/*操作库存表*/
|
|
|
|
MIStockModel model = new MIStockModel();//出
|
|
model.LOCATION_ID = item.OLD_LOC_ID;
|
|
model.GOODS_ID = item.GOODS_ID;
|
|
model.PUTIN_ID = item.PUTIN_ID;
|
|
|
|
//得到库存记录
|
|
bool hadMIStock = false;
|
|
foreach (MIStockModel i in hadUpdeteList)
|
|
{
|
|
if (i.LOCATION_ID == model.LOCATION_ID && i.GOODS_ID == model.GOODS_ID && i.PUTIN_ID == model.PUTIN_ID)
|
|
{
|
|
hadMIStock = true;
|
|
model = i;
|
|
break;
|
|
}
|
|
}
|
|
if (!hadMIStock)
|
|
{
|
|
model = ConvertHelper<MIStockModel>.ConvertToList(DataProvider.Instance.MIStock.GetMIStockDT(model))[0];
|
|
}
|
|
|
|
model.SHELVES_NUM -= item.REAL_NUM;//修改库存记录
|
|
//model.OCCUPY_NUM -= item.PLAN_NUM;
|
|
|
|
if (model.SHELVES_NUM == 0)
|
|
{ //删该条库存
|
|
DataProvider.Instance.MIStock.DeleteMIStock(model);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
else
|
|
{
|
|
hadUpdeteList.Add(model);//保存修改过的库存记录
|
|
|
|
DataProvider.Instance.MIStock.UpdateMIStock(model);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
|
|
|
|
//操作库存日志表
|
|
MIStockBackModel backModel = new MIStockBackModel();//出
|
|
backModel.AREA_ID = model.AREA_ID;
|
|
backModel.CHANGE_NUM = model.SHELVES_NUM;
|
|
backModel.GOODS_ID = model.GOODS_ID;
|
|
backModel.GOODS_NAME = model.GOODS_NAME;
|
|
backModel.GOODS_NUM = item.REAL_NUM;
|
|
backModel.GOODS_TYPEID = model.GOODS_TYPEID;
|
|
backModel.ID = DataProvider.Instance.MIStockBack.GetSerialNum();
|
|
backModel.LOCATION_ID = model.LOCATION_ID;
|
|
backModel.OPERATOR_MAN = moveLocModel.MOVE_PERSON;
|
|
backModel.OPERATOR_MAN_NAME = moveLocModel.MOVE_PERSON_NAME;
|
|
backModel.OPERATOR_TYPE = "1";
|
|
backModel.ORI_NUM = model.SHELVES_NUM + item.REAL_NUM;
|
|
backModel.OUT_ID = item.MOVELOC_TAB_ID;
|
|
backModel.PRODUCTION_DATE = model.PRODUCTION_DATE;
|
|
backModel.REMARK = model.REMARK;
|
|
backModel.STOCK_ID = model.STOCK_ID;
|
|
backModel.STORAGE_ID = model.STORAGE_ID;
|
|
backModel.STORAGE_NAME = model.STORAGE_NAME;
|
|
backModel.VERSION = model.VERSION;
|
|
backModel.PUTIN_ID = model.PUTIN_ID;
|
|
DataProvider.Instance.MIStockBack.AddBMiStockack(backModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
/*操作库存表*/
|
|
|
|
MIStockModel inModel = new MIStockModel();//入
|
|
//inModel.LOCATION_ID = item.NEW_LOC_ID;
|
|
//inModel.GOODS_ID = item.GOODS_ID;
|
|
|
|
////得到库存记录
|
|
//hadMIStock = false;
|
|
//foreach (MIStockModel i in hadUpdeteList)
|
|
//{
|
|
// if (i.LOCATION_ID == inModel.LOCATION_ID && i.GOODS_ID == inModel.GOODS_ID)
|
|
// {
|
|
// hadMIStock = true;
|
|
// inModel = i;
|
|
// break;
|
|
// }
|
|
//}
|
|
//if (!hadMIStock)
|
|
//{
|
|
// List<MIStockModel> nowMIStock = ConvertHelper<MIStockModel>.ConvertToList(DataProvider.Instance.MIStock.GetMIStockDT(inModel));
|
|
// if (nowMIStock.Count > 0)//有该记录但没改过
|
|
// {
|
|
// inModel = nowMIStock[0];
|
|
// inModel.SHELVES_NUM += item.REAL_NUM;
|
|
// DataProvider.Instance.MIStock.UpdateMIStock(inModel);
|
|
// logList.Add(DataProvider.Instance.logData);
|
|
// }
|
|
// else//没有该记录添加
|
|
// {
|
|
inModel = model;
|
|
|
|
inModel.OCCUPY_NUM = 0;
|
|
inModel.LOCATION_ID = item.NEW_LOC_ID;
|
|
inModel.GOODS_ID = item.GOODS_ID;
|
|
inModel.PUTIN_ID = item.PUTIN_ID;
|
|
inModel.SHELVES_NUM = item.REAL_NUM;
|
|
inModel.WARE_DATE = System.DateTime.Now;
|
|
inModel.DOCCTNUMBER = item.MOVELOC_ID;
|
|
inModel.STOCK_ID = DataProvider.Instance.MIStock.InsertMIStock(inModel);//////////////////////////////////////////////////
|
|
logList.Add(DataProvider.Instance.logData);
|
|
// }
|
|
//}
|
|
//else {//已经改过
|
|
// inModel.SHELVES_NUM += item.REAL_NUM;
|
|
// DataProvider.Instance.MIStock.UpdateMIStock(inModel);
|
|
// logList.Add(DataProvider.Instance.logData);
|
|
//}
|
|
|
|
//hadUpdeteList.Add(inModel);//保存修改过的库存记录
|
|
|
|
|
|
//操作库存日志表
|
|
backModel = new MIStockBackModel();//入
|
|
backModel.AREA_ID = inModel.AREA_ID;
|
|
backModel.CHANGE_NUM = inModel.SHELVES_NUM;
|
|
backModel.GOODS_ID = inModel.GOODS_ID;
|
|
backModel.GOODS_NAME = inModel.GOODS_NAME;
|
|
backModel.GOODS_NUM = item.REAL_NUM;
|
|
backModel.GOODS_TYPEID = inModel.GOODS_TYPEID;
|
|
backModel.ID = DataProvider.Instance.MIStockBack.GetSerialNum();
|
|
backModel.LOCATION_ID = inModel.LOCATION_ID;
|
|
backModel.OPERATOR_MAN = moveLocModel.MOVE_PERSON;
|
|
backModel.OPERATOR_MAN_NAME = moveLocModel.MOVE_PERSON_NAME;
|
|
backModel.OPERATOR_TYPE = "0";
|
|
backModel.ORI_NUM = inModel.SHELVES_NUM - item.REAL_NUM;
|
|
backModel.PUTIN_ID = item.PUTIN_ID;
|
|
backModel.PRODUCTION_DATE = inModel.PRODUCTION_DATE;
|
|
backModel.REMARK = inModel.REMARK;
|
|
backModel.STOCK_ID = inModel.STOCK_ID;
|
|
backModel.STORAGE_ID = inModel.STORAGE_ID;
|
|
backModel.STORAGE_NAME = inModel.STORAGE_NAME;
|
|
backModel.VERSION = inModel.VERSION;
|
|
|
|
DataProvider.Instance.MIStockBack.AddBMiStockack(backModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//修改库位已占用体积
|
|
GoodsInfoModel goods = new GoodsInfoModel();
|
|
Decimal perVo = Convert.ToDecimal(DataProvider.Instance.Goods.GetGoodsDataTable(item.GOODS_ID, "", "", "").Rows[0]["GVOLUME"].ToString());
|
|
Decimal allVo = 0;
|
|
allVo = item.REAL_NUM * perVo;
|
|
if (allVo != 0)
|
|
{
|
|
//原库位
|
|
StorageAreaLocationModel loc = new StorageAreaLocationModel();
|
|
loc.STORAGE_ID = moveLocModel.STORAGE_ID;
|
|
loc.LOCATION_ID = item.OLD_LOC_ID;
|
|
loc = ConvertHelper<StorageAreaLocationModel>.ConvertToList(DataProvider.Instance.StorageAreaLocation.GetLocationInfoDS(loc))[0];
|
|
|
|
loc.HASVOLUME -= allVo;
|
|
loc.OPERATORID = moveLocModel.MOVE_PERSON;
|
|
DataProvider.Instance.StorageAreaLocation.UpdateLocHasVolume(loc);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//新库位
|
|
loc = new StorageAreaLocationModel();
|
|
loc.STORAGE_ID = moveLocModel.STORAGE_ID;
|
|
loc.LOCATION_ID = item.NEW_LOC_ID;
|
|
loc = ConvertHelper<StorageAreaLocationModel>.ConvertToList(DataProvider.Instance.StorageAreaLocation.GetLocationInfoDS(loc))[0];
|
|
|
|
loc.HASVOLUME += allVo;
|
|
loc.OPERATORID = moveLocModel.MOVE_PERSON;
|
|
DataProvider.Instance.StorageAreaLocation.UpdateLocHasVolume(loc);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
//修改规格明细
|
|
|
|
TaCmtOrRak();
|
|
return ErrText;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 新增移位单(包括明细)
|
|
/// </summary>
|
|
/// <param name="MoveLocModel">移位单Model</param>
|
|
/// <param name="listMoveLocTab">明细ModelList</param>
|
|
/// <returns>是否成功</returns>
|
|
public string InsertMoveLocAndTab(MoveLocModel moveLocModel, List<MoveLocTabModel> listMoveLocTab, List<SKUTabModel> listSKU)
|
|
{
|
|
//新增移位单
|
|
moveLocModel.MOVELOC_ID = IBussFactory<WMS.Business.Base.BussDocumentTable>.Instance().GetDocumentStream("移位单");
|
|
DataProvider.Instance.MoveLoc.InsertMoveLoc(moveLocModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
|
|
////删除所有明细
|
|
//DataProvider.Instance.MoveLocTab.DeleteMoveLocTab(MoveLocModel.MOVELOC_ID);
|
|
//logList.Add(DataProvider.Instance.logData);
|
|
|
|
//增加明细
|
|
foreach (MoveLocTabModel moveLocTabModel in listMoveLocTab)
|
|
{
|
|
if (!string.IsNullOrEmpty(moveLocModel.MOVELOC_ID))
|
|
{
|
|
moveLocTabModel.MOVELOC_ID = moveLocModel.MOVELOC_ID;
|
|
}
|
|
|
|
DataProvider.Instance.MoveLocTab.InsertMoveLocTab(moveLocTabModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
////根据计划数修改已占用库存
|
|
//MIStockModel mi = new MIStockModel();
|
|
//mi.PUTIN_ID = moveLocTabModel.PUTIN_ID;
|
|
//mi.GOODS_ID = moveLocTabModel.GOODS_ID;
|
|
//mi.LOCATION_ID = moveLocTabModel.OLD_LOC_ID;
|
|
//mi.OCCUPY_NUM = moveLocTabModel.PLAN_NUM;
|
|
//DataProvider.Instance.MIStock.UpdateMIStockOccupyNum(mi);
|
|
//logList.Add(DataProvider.Instance.logData);
|
|
|
|
////写入库存占用记录表
|
|
//MIStockModel mistock = ConvertHelper<MIStockModel>.ConvertToList(DataProvider.Instance.MIStock.GetMIStockDT(mi))[0];
|
|
//MIStockOccupyModel occupy = new MIStockOccupyModel();
|
|
//occupy.AREA_ID = mistock.AREA_ID;
|
|
//occupy.DOCCTNUMBER = moveLocTabModel.MOVELOC_ID;
|
|
//occupy.GOODS_ID = mistock.GOODS_ID;
|
|
//occupy.LOCATION_ID = mistock.LOCATION_ID;
|
|
//occupy.OCCUPY_NUM = moveLocTabModel.PLAN_NUM;
|
|
//occupy.PUTIN_ID = mistock.PUTIN_ID;
|
|
//occupy.STOCK_ID = mistock.STOCK_ID;
|
|
//occupy.STORAGE_ID = mistock.STORAGE_ID;
|
|
//DataProvider.Instance.MIStockOccupy.InsertMIStockOccupy(occupy);
|
|
//logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
|
|
|
|
TaCmtOrRak();
|
|
|
|
|
|
#region 新增消息
|
|
MessageModel messModel = new MessageModel();
|
|
messModel.ID = "YW" + DateTime.Now.ToString("yyyyMMddHHmmss") + DataProvider.Instance.Message.GetSerialNum();
|
|
messModel.MENU_FORM = "FrmMoveLoc";
|
|
messModel.MESS_CONTENT = "新增移位单,单据编号:" + moveLocModel.MOVELOC_ID;
|
|
messModel.MESS_DATE = DateTime.Now;
|
|
messModel.MESS_DEP = moveLocModel.STORAGE_ID;
|
|
messModel.MESS_FLAG = "0";
|
|
messModel.MESS_STAR = moveLocModel.CREATE_PERSON;
|
|
messModel.MESS_TO = moveLocModel.MOVE_PERSON;
|
|
messModel.MESS_STATUS = "0";
|
|
messModel.WORK_TYPE = "worktype005";
|
|
messModel.WORK_KIND = "0";
|
|
messModel.MESS_TYPE = "6";
|
|
messModel.RELATIVE_NUMBER = moveLocModel.MOVELOC_ID;
|
|
messModel.STO_ID = moveLocModel.STORAGE_ID;
|
|
DataProvider.Instance.Message.Add(messModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
TaCmtOrRak();
|
|
#endregion
|
|
return ErrText;
|
|
}
|
|
/// <summary>
|
|
/// 获取移位单结果集
|
|
/// </summary>
|
|
/// <returns>移位单</returns>
|
|
public List<MoveLocModel> GetMoveLocList(MoveLocModel model)
|
|
{
|
|
DataTable table = DataProvider.Instance.MoveLoc.GetMoveLocDT(model);
|
|
List<MoveLocModel> MoveLocModel = ConvertHelper<MoveLocModel>.ConvertToList(table);
|
|
|
|
if (DataLogErrWrite(table, "获取移位单"))
|
|
{
|
|
return MoveLocModel;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除移位单信息
|
|
/// </summary>
|
|
/// <param name="MoveLoc">移位单</param>
|
|
/// <returns>是否成功</returns>
|
|
public string DeleteMoveLoc(string MoveLocID)
|
|
{
|
|
|
|
DataProvider.Instance.MoveLoc.DeleteMoveLoc(MoveLocID);
|
|
|
|
TaCmtOrRak();
|
|
return ErrText;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除移位单信息与属于它的商品清单信息
|
|
/// </summary>
|
|
/// <param name="MoveLoc">移位单</param>
|
|
/// <returns>是否成功</returns>
|
|
public string DeleteMoveLocAndTab(string MoveLocID)
|
|
{
|
|
DataProvider.Instance.MoveLoc.DeleteMoveLoc(MoveLocID);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
|
|
//获取原来的所有明细,减去原来的已占用库存
|
|
MoveLocTabModel tab = new MoveLocTabModel();
|
|
tab.MOVELOC_ID = MoveLocID;
|
|
DataTable table = DataProvider.Instance.MoveLocTab.GetMoveLocTabDT(tab);
|
|
List<MoveLocTabModel> moveLocTabList = ConvertHelper<MoveLocTabModel>.ConvertToList(table);
|
|
foreach (var item in moveLocTabList)
|
|
{
|
|
MIStockModel mi = new MIStockModel();
|
|
mi.PUTIN_ID = item.PUTIN_ID;
|
|
mi.GOODS_ID = item.GOODS_ID;
|
|
mi.LOCATION_ID = item.OLD_LOC_ID;
|
|
mi.OCCUPY_NUM = -item.PLAN_NUM;
|
|
DataProvider.Instance.MIStock.UpdateMIStockOccupyNum(mi);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//删除库存占用记录表相应记录
|
|
MIStockOccupyModel queryOccupy = new MIStockOccupyModel();
|
|
queryOccupy.GOODS_ID = mi.GOODS_ID;
|
|
queryOccupy.LOCATION_ID = mi.LOCATION_ID;
|
|
queryOccupy.PUTIN_ID = mi.PUTIN_ID;
|
|
List<MIStockOccupyModel> occupy = ConvertHelper<MIStockOccupyModel>.ConvertToList(DataProvider.Instance.MIStockOccupy.GetMIStockOccupyDT(queryOccupy));
|
|
DataProvider.Instance.MIStockOccupy.DeleteMIStockOccupy(occupy[0]);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
|
|
DataProvider.Instance.MoveLocTab.DeleteMoveLocTab(MoveLocID);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
TaCmtOrRak();
|
|
return ErrText;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 修改移位单Status
|
|
/// </summary>
|
|
/// <param name="MoveLocModel">移位单Model</param>
|
|
/// <returns>是否成功</returns>
|
|
public string UpdateMoveLocState(MoveLocModel MoveLocModel)
|
|
{
|
|
//修改移位单Status
|
|
DataProvider.Instance.MoveLoc.UpdateMoveLocState(MoveLocModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
|
|
if (MoveLocModel.STATE == "1")
|
|
{
|
|
MoveLocTabModel m = new MoveLocTabModel();
|
|
m.MOVELOC_ID = MoveLocModel.MOVELOC_ID;
|
|
DataTable table = DataProvider.Instance.MoveLocTab.GetMoveLocTabDT(m);
|
|
List<MoveLocTabModel> list = ConvertHelper<MoveLocTabModel>.ConvertToList(table);
|
|
|
|
foreach (var moveLocTabModel in list)
|
|
{
|
|
//根据计划数修改已占用库存
|
|
MIStockModel mi = new MIStockModel();
|
|
mi.PUTIN_ID = moveLocTabModel.PUTIN_ID;
|
|
mi.GOODS_ID = moveLocTabModel.GOODS_ID;
|
|
mi.LOCATION_ID = moveLocTabModel.OLD_LOC_ID;
|
|
mi.OCCUPY_NUM = moveLocTabModel.PLAN_NUM;
|
|
DataProvider.Instance.MIStock.UpdateMIStockOccupyNum(mi);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//写入库存占用记录表
|
|
MIStockModel mistock = ConvertHelper<MIStockModel>.ConvertToList(DataProvider.Instance.MIStock.GetMIStockDT(mi))[0];
|
|
MIStockOccupyModel occupy = new MIStockOccupyModel();
|
|
occupy.AREA_ID = mistock.AREA_ID;
|
|
occupy.DOCCTNUMBER = moveLocTabModel.MOVELOC_ID;
|
|
occupy.GOODS_ID = mistock.GOODS_ID;
|
|
occupy.LOCATION_ID = mistock.LOCATION_ID;
|
|
occupy.OCCUPY_NUM = moveLocTabModel.PLAN_NUM;
|
|
occupy.PUTIN_ID = mistock.PUTIN_ID;
|
|
occupy.STOCK_ID = mistock.STOCK_ID;
|
|
occupy.STORAGE_ID = mistock.STORAGE_ID;
|
|
DataProvider.Instance.MIStockOccupy.InsertMIStockOccupy(occupy);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
}
|
|
|
|
TaCmtOrRak();
|
|
return ErrText;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将已完成的或已关闭的移位单与属于它的移位单明细放到备份表中
|
|
/// </summary>
|
|
/// <param name="moveLocModel">移位单</param>
|
|
/// <returns>是否成功</returns>
|
|
public string MoveMoveLocAndTabIntoBack(MoveLocModel moveLocModel)
|
|
{
|
|
DataProvider.Instance.MoveLoc.UpdateMoveLocState(moveLocModel);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
Transaction = DataProvider.Instance.TranOracle;
|
|
|
|
DataProvider.Instance.MoveLoc.InsertMoveLocBack(moveLocModel.MOVELOC_ID);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
DataProvider.Instance.MoveLocTab.InsertMoveLocTabBack(moveLocModel.MOVELOC_ID);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
DataProvider.Instance.MoveLoc.DeleteMoveLoc(moveLocModel.MOVELOC_ID);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//获取原来的所有明细,减去原来的已占用库存
|
|
MoveLocTabModel tab = new MoveLocTabModel();
|
|
tab.MOVELOC_ID = moveLocModel.MOVELOC_ID;
|
|
DataTable table = DataProvider.Instance.MoveLocTab.GetMoveLocTabDT(tab);
|
|
List<MoveLocTabModel> moveLocTabList = ConvertHelper<MoveLocTabModel>.ConvertToList(table);
|
|
foreach (var item in moveLocTabList)
|
|
{
|
|
MIStockModel mi = new MIStockModel();
|
|
mi.PUTIN_ID = item.PUTIN_ID;
|
|
mi.GOODS_ID = item.GOODS_ID;
|
|
mi.LOCATION_ID = item.OLD_LOC_ID;
|
|
mi.OCCUPY_NUM = -item.PLAN_NUM;
|
|
DataProvider.Instance.MIStock.UpdateMIStockOccupyNum(mi);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
//删除库存占用记录表相应记录
|
|
MIStockOccupyModel queryOccupy = new MIStockOccupyModel();
|
|
queryOccupy.GOODS_ID = mi.GOODS_ID;
|
|
queryOccupy.LOCATION_ID = mi.LOCATION_ID;
|
|
queryOccupy.PUTIN_ID = mi.PUTIN_ID;
|
|
List<MIStockOccupyModel> occupy = ConvertHelper<MIStockOccupyModel>.ConvertToList(DataProvider.Instance.MIStockOccupy.GetMIStockOccupyDT(queryOccupy));
|
|
DataProvider.Instance.MIStockOccupy.DeleteMIStockOccupy(occupy[0]);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
}
|
|
|
|
DataProvider.Instance.MoveLocTab.DeleteMoveLocTab(moveLocModel.MOVELOC_ID);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
|
|
|
|
TaCmtOrRak();
|
|
return ErrText;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 打印完成
|
|
/// </summary>
|
|
/// <param name="model">移位单</param>
|
|
/// <returns>是否成功</returns>
|
|
public string PrintOK(MoveLocModel model)
|
|
{
|
|
//修改捡货单打印次数
|
|
model.PRINT_COUNT += 1;
|
|
DataProvider.Instance.MoveLoc.UpdateMoveLoc(model);
|
|
logList.Add(DataProvider.Instance.logData);
|
|
TaCmtOrRak();
|
|
return ErrText;
|
|
}
|
|
}
|
|
}
|