using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WZ.Useful.Commons.Collections;
using yunneiWCS.EnumDefine;
using yunneiWCS.ExtendFunction;
using yunneiWCS.ORM;
namespace yunneiWCS.DataAccess
{
///
/// 出入库记录(为推送MES)
///
public class OutInStockRecord_V2_MesHandler
{
///
/// 人工删除的场景
///
///
///
///
///
///
///
///
///
public static void AddRecordForPersonDelete(dbmodel mod, OutInFlag _outInFlag, string remark,
System.Collections.Generic.List productStocks, productStock modfiyStock)
{
try
{
//var isMaterilStockMove = MyExtend.IsMaterilStockMove(currentTaskType);
//if (isMaterilStockMove == false)
//{
// return;
//}
//if (string.IsNullOrEmpty(modfiyStock.materialCode))
//{
// return;//认为是空拖
//}
Wms_outInStockRecord_V2_Mes log = new Wms_outInStockRecord_V2_Mes()
{
ID = Yitter.IdGenerator.YitIdHelper.NextId(),
sourcePlace = "",
toPlace = "",
containerCode = modfiyStock.containerCode,
LastModifier = modfiyStock.creator,
LastModifyTime = DateTime.Now,
outInFlag = (int)_outInFlag,
outInFlagName = _outInFlag.ToString(),
CreateTime = DateTime.Now,
// Creator = _task.creator,
Remark = remark,
materialCode = productStocks.First().productCode,
materialName = productStocks.First().productName,
qty = productStocks.Count(),
supplier = modfiyStock.supplier,
isSendToMes = 0,
//version = modfiyStock.version,
//taskId = _task.taskId.ToString(),
//taskType = (int)_task.taskType,
//taskTypeName = _task.taskTypeName,
//taskName = _task.taskName,
};
mod.Wms_outInStockRecord_V2_Mes.Add(log);
//同时把明细也新增进去
foreach (var item in productStocks)
{
var d_id = Yitter.IdGenerator.YitIdHelper.NextId();
Wms_outInStockRecord_Details_V2_Mes wms_OutInStockRecord_Details_V2_Mes = new Wms_outInStockRecord_Details_V2_Mes()
{
ID = d_id,
mainId = log.ID,
containerCode = log.containerCode,
productCode = item.productCode,
productName = item.productName,
serialNumber = item.serialNumber,
CreateTime = DateTime.Now
};
mod.Wms_outInStockRecord_Details_V2_Mes.Add(wms_OutInStockRecord_Details_V2_Mes);
}
}
catch (Exception ex)
{
throw ex;
}
}
private static void AddRecord(dbmodel mod, OutInFlag _outInFlag, string sourcePlace, string toPlace, task _task, string remark,
System.Collections.Generic.List productStocks, taskType currentTaskType)
{
try
{
//var isMaterilStockMove = MyExtend.IsMaterilStockMove(currentTaskType);
//if (isMaterilStockMove == false)
//{
// return;
//}
if (string.IsNullOrEmpty(_task.materialCode))
{
return;//认为是空拖
}
Wms_outInStockRecord_V2_Mes log = new Wms_outInStockRecord_V2_Mes()
{
ID = Yitter.IdGenerator.YitIdHelper.NextId(),
sourcePlace = sourcePlace,
toPlace = toPlace,
containerCode = _task.containerCode,
LastModifier = _task.creator,
LastModifyTime = DateTime.Now,
outInFlag = (int)_outInFlag,
outInFlagName = _outInFlag.ToString(),
CreateTime = DateTime.Now,
Creator = _task.creator,
Remark = remark,
materialCode = _task.materialCode,
materialName = _task.materialName,
qty = _task.quantity,
supplier = _task.supplier,
version = _task.version,
taskId = _task.taskId.ToString(),
taskType = (int)_task.taskType,
taskTypeName = _task.taskTypeName,
taskName = _task.taskName,
isSendToMes = 0,
};
mod.Wms_outInStockRecord_V2_Mes.Add(log);
//同时把明细也新增进去
foreach (var item in productStocks)
{
Wms_outInStockRecord_Details_V2_Mes wms_OutInStockRecord_Details_V2_Mes = new Wms_outInStockRecord_Details_V2_Mes()
{
ID = Yitter.IdGenerator.YitIdHelper.NextId(),
mainId = log.ID,
containerCode = log.containerCode,
productCode = item.productCode,
productName = item.productName,
serialNumber = item.serialNumber,
CreateTime = DateTime.Now
};
mod.Wms_outInStockRecord_Details_V2_Mes.Add(wms_OutInStockRecord_Details_V2_Mes);
}
}
catch (Exception ex)
{
throw ex;
}
}
public static void AddRecord(dbmodel mod, OutInFlag _outInFlag, string sourcePlace, string toPlace, task _task, string remark,
taskType currentTaskType)
{
var stock = mod.productStock.Where(a => a.containerCode == _task.containerCode).FirstOrDefault();
if (stock != null)
{
System.Collections.Generic.List productStocks = mod.productStockList.Where(a => a.stockId == stock.stockId).ToList();
AddRecord(mod, _outInFlag, sourcePlace, toPlace, _task, remark,
productStocks, currentTaskType);
}
}
}
}