You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Config.AppConfig;
namespace ICSSoft.Frame.Data.DAL { public class ICSAllocationDAL { public static void AddJiLu(FormICSITEMTransUIModel infomodel, FormICSITEMTransLotUIModel lotmodel, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { bool isNew = false; string testid = ""; var info = db.ICSITEMTrans.SingleOrDefault(a => a.TransNO == infomodel.TransNO && a.TransLine == infomodel.TransLine); if (info == null) { isNew = true; info = new ICSITEMTrans(); info.ID = AppConfig.GetGuid(); testid = info.ID; }
testid = info.ID; info.TransNO = infomodel.TransNO; info.TransLine = infomodel.TransLine; info.ITEMCODE = infomodel.ITEMCODE; info.FRMStorageCODE = infomodel.FRMStorageCODE; info.FRMStackCODE = infomodel.FRMStackCODE; info.TOStorageCODE = infomodel.TOStorageCODE; info.TOStackCODE = infomodel.TOStackCODE; //info.LotNO = infomodel.LotNO;
if (!isNew) { info.TransQTY += infomodel.TransQTY; } else { info.TransQTY = infomodel.TransQTY; } info.TransType = infomodel.TransType; info.BusinessCode = infomodel.BusinessCode; info.MUSER = AppConfig.UserId; info.MUSERName = AppConfig.UserName; info.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss"); info.WorkPoint = AppConfig.WorkPointCode; if (isNew) db.ICSITEMTrans.InsertOnSubmit(info); db.SubmitChanges();
ICSITEMTransLot lotinfo = new ICSITEMTransLot(); lotinfo.ID = AppConfig.GetGuid(); lotinfo.ITEMTransID = testid; lotinfo.LotNO = lotmodel.LotNO; lotinfo.ITEMCODE = lotmodel.ITEMCODE; lotinfo.TransQTY = lotmodel.TransQTY; lotinfo.MUSER = AppConfig.UserId; lotinfo.MUSERName = AppConfig.UserName; lotinfo.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss"); lotinfo.WorkPoint = AppConfig.WorkPointCode; db.ICSITEMTransLot.InsertOnSubmit(lotinfo); db.SubmitChanges(); //更新转移单详细表数量
var transdetail = db.ICSInvTransferDetail.SingleOrDefault(a => a.TransferNO == infomodel.TransNO && a.TransferLine == infomodel.TransLine); if (transdetail != null) transdetail.ACTQTY += infomodel.TransQTY; db.SubmitChanges();
var linethree = db.ICSStorage.SingleOrDefault(a => a.StorageCode == infomodel.TOStorageCODE); string whguid = linethree.Serial; var linefour = db.ICSStack.SingleOrDefault(a => a.StackCode == infomodel.TOStackCODE); string binguid = linefour.Serial; var linefive = db.ICSINVENTORY.SingleOrDefault(a => a.INVCODE == infomodel.ITEMCODE); string invguid = linefive.ID; // 更新库存信息
var WareHouseInfoF = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHCode == infomodel.FRMStorageCODE && a.BinCode == infomodel.FRMStackCODE && a.INVCode == infomodel.ITEMCODE); if (WareHouseInfoF != null) { WareHouseInfoF.QTY -= infomodel.TransQTY; } db.SubmitChanges(); var WareHouseInfoT = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHCode == infomodel.TOStorageCODE && a.BinCode == infomodel.TOStackCODE && a.INVCode == infomodel.ITEMCODE); if (WareHouseInfoT != null) WareHouseInfoT.QTY += infomodel.TransQTY; else { ICSWareHouseInfo infoF = new ICSWareHouseInfo(); infoF.WHGUID = whguid; infoF.WHCode = infomodel.TOStorageCODE; infoF.BinGUID = binguid; infoF.BinCode = infomodel.TOStackCODE; ; infoF.INVGUID = invguid; ; infoF.INVCode = infomodel.ITEMCODE; infoF.QTY = infomodel.TransQTY; ; infoF.MUSER = AppConfig.UserCode; infoF.MUSERName = AppConfig.UserName; infoF.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss"); infoF.WorkPoint = AppConfig.WorkPointCode; db.ICSWareHouseInfo.InsertOnSubmit(infoF); } db.SubmitChanges();
var Lot = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.LotNO == lotmodel.LotNO); db.ICSWareHouseLotInfo.DeleteOnSubmit(Lot); db.SubmitChanges(); ICSWareHouseLotInfo InfoLot = new ICSWareHouseLotInfo(); InfoLot.ID = AppConfig.GetGuid(); InfoLot.LotNO = lotmodel.LotNO; InfoLot.WHGUID = whguid; InfoLot.WHCode = infomodel.TOStorageCODE; InfoLot.BinGUID = binguid; InfoLot.BinCode = infomodel.TOStackCODE; InfoLot.INVGUID = invguid; InfoLot.INVCode = infomodel.ITEMCODE; InfoLot.LotQty = infomodel.TransQTY; InfoLot.ReceiveDate = DateTime.Now; InfoLot.MUSER = AppConfig.UserCode; InfoLot.MUSERName = AppConfig.UserName; InfoLot.MTIME = DateTime.Now; InfoLot.WorkPoint = AppConfig.WorkPointCode; db.ICSWareHouseLotInfo.InsertOnSubmit(InfoLot);
db.SubmitChanges(); db.Transaction.Commit();
} catch (Exception ex) { db.Transaction.Rollback(); throw ex; }
}
public static void TransItem(List<FormICSITEMTransUIModel> translist, List<FormICSInvTransferDetailUIModel> transdetail, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try {
foreach (FormICSITEMTransUIModel trans in translist) {
//批次
if (trans.Lot.lotdetail == null || trans.Lot.lotdetail.Count() == 0) {
ICSITEMTrans transmodel = new ICSITEMTrans(); transmodel.ID = AppConfig.GetGuid(); transmodel.TransNO = trans.TransNO; transmodel.TransLine = trans.TransLine; transmodel.ITEMCODE = trans.ITEMCODE; transmodel.FRMStorageCODE = trans.FRMStorageCODE; transmodel.FRMStackCODE = trans.FRMStackCODE; transmodel.TOStorageCODE = trans.TOStorageCODE; transmodel.TOStackCODE = trans.TOStackCODE; transmodel.TransQTY = trans.TransQTY; transmodel.Memo = ""; transmodel.TransType = "发"; transmodel.BusinessCode = ""; transmodel.MUSER = AppConfig.UserId; transmodel.MUSERName = AppConfig.UserName; transmodel.MTIME = DateTime.Now; transmodel.WorkPoint = AppConfig.WorkPointCode; db.ICSITEMTrans.InsertOnSubmit(transmodel);
ICSITEMTransLot lotmodel = new ICSITEMTransLot(); lotmodel.ID = AppConfig.GetGuid(); lotmodel.ITEMTransID = transmodel.ID; lotmodel.LotNO = trans.Lot.LotNO; lotmodel.ITEMCODE = trans.Lot.ITEMCODE; lotmodel.TransQTY = trans.Lot.TransQTY; lotmodel.Memo = ""; lotmodel.MUSER = AppConfig.UserId; lotmodel.MUSERName = AppConfig.UserName; lotmodel.MTIME = DateTime.Now; lotmodel.WorkPoint = AppConfig.WorkPointCode; db.ICSITEMTransLot.InsertOnSubmit(lotmodel);
var lineone = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.LotNO == trans.Lot.LotNO && a.WHCode == trans.FRMStorageCODE && a.BinCode == trans.FRMStackCODE && a.INVCode == trans.ITEMCODE); string guid = lineone.ID; //删除库存
var linetwo = db.ICSWareHouseLotInfo.Where(a => a.ID == guid); db.ICSWareHouseLotInfo.DeleteAllOnSubmit(linetwo); var linethree = db.ICSStorage.SingleOrDefault(a => a.StorageCode == trans.TOStorageCODE); string whguid = linethree.Serial; var linefour = db.ICSStack.SingleOrDefault(a => a.StackCode == trans.TOStackCODE); string binguid = linefour.Serial; var linefive = db.ICSINVENTORY.SingleOrDefault(a => a.INVCODE == trans.ITEMCODE); string invguid = linefive.ID; //添加库存
ICSWareHouseLotInfo ware = new ICSWareHouseLotInfo(); ware.ID = guid; ware.LotNO = trans.Lot.LotNO; ware.WHGUID = whguid; ware.WHCode = transmodel.TOStorageCODE; ware.BinGUID = binguid; ware.BinCode = transmodel.TOStackCODE; ware.INVGUID = invguid; ware.INVCode = transmodel.ITEMCODE; ware.LotQty = transmodel.TransQTY; ware.ReceiveDate = DateTime.Now; ware.MUSER = AppConfig.UserId; ware.MUSERName = AppConfig.UserName; ware.MTIME = DateTime.Now; ware.WorkPoint = AppConfig.WorkPointCode; db.ICSWareHouseLotInfo.InsertOnSubmit(ware); } else {
ICSITEMTrans transmodel = new ICSITEMTrans(); transmodel.ID = AppConfig.GetGuid(); transmodel.TransNO = trans.TransNO; transmodel.TransLine = trans.TransLine; transmodel.ITEMCODE = trans.ITEMCODE; transmodel.FRMStorageCODE = trans.FRMStorageCODE; transmodel.FRMStackCODE = trans.FRMStackCODE; transmodel.TOStorageCODE = trans.TOStorageCODE; transmodel.TOStackCODE = trans.TOStackCODE; transmodel.TransQTY = trans.TransQTY; transmodel.Memo = ""; transmodel.TransType = "发"; transmodel.BusinessCode = ""; transmodel.MUSER = AppConfig.UserId; transmodel.MUSERName = AppConfig.UserName; transmodel.MTIME = DateTime.Now; transmodel.WorkPoint = AppConfig.WorkPointCode; db.ICSITEMTrans.InsertOnSubmit(transmodel);
ICSITEMTransLot lotmodel = new ICSITEMTransLot(); lotmodel.ID = AppConfig.GetGuid(); lotmodel.ITEMTransID = transmodel.ID; lotmodel.LotNO = trans.Lot.LotNO; lotmodel.ITEMCODE = trans.Lot.ITEMCODE; lotmodel.TransQTY = trans.Lot.TransQTY; lotmodel.Memo = ""; lotmodel.MUSER = AppConfig.UserId; lotmodel.MUSERName = AppConfig.UserName; lotmodel.MTIME = DateTime.Now; lotmodel.WorkPoint = AppConfig.WorkPointCode; db.ICSITEMTransLot.InsertOnSubmit(lotmodel);
foreach (FormICSITEMTransLotDetailUIModel details in trans.Lot.lotdetail) { ICSITEMTransLotDetail detailmodel = new ICSITEMTransLotDetail(); detailmodel.ID = AppConfig.GetGuid(); detailmodel.ITEMTransLotID = lotmodel.ID; detailmodel.LotNO = details.LotNO; detailmodel.ITEMCODE = details.ITEMCODE; detailmodel.SERIALNO = details.SERIALNO; detailmodel.MUSER = AppConfig.UserId; detailmodel.MUSERName = AppConfig.UserName; detailmodel.MTIME = DateTime.Now; detailmodel.WorkPoint = AppConfig.WorkPointCode; db.ICSITEMTransLotDetail.InsertOnSubmit(detailmodel);
}
var lineone = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.LotNO == trans.Lot.LotNO && a.WHCode == trans.FRMStorageCODE && a.BinCode == trans.FRMStackCODE && a.INVCode == trans.ITEMCODE); if (lineone.LotQty > trans.TransQTY) { var linetwo = db.ICSStorage.SingleOrDefault(a => a.StorageCode == trans.TOStorageCODE); string whguid = linetwo.Serial; var linethree = db.ICSStack.SingleOrDefault(a => a.StackCode == trans.TOStackCODE); string binguid = linethree.Serial;
string lotnoone = "LOT" + AppConfig.GetSeverDateTime("yyyy-MM-dd").ToString("yyyyMMdd"); lotnoone = AppConfig.GetSerialCode(AppConfig.FrameConnectString, AppConfig.WorkPointCode, "ICSWareHouseLotInfo", "LotNo", lotnoone, 4); lineone.LotQty -= trans.TransQTY; ICSWareHouseLotInfo lotinfomodel = new ICSWareHouseLotInfo(); lotinfomodel.ID = AppConfig.GetGuid(); lotinfomodel.LotNO = lotnoone; lotinfomodel.WHGUID = whguid; lotinfomodel.WHCode = trans.TOStorageCODE; lotinfomodel.BinGUID = binguid; lotinfomodel.BinCode = trans.TOStackCODE; lotinfomodel.INVGUID = lineone.INVGUID; lotinfomodel.INVCode = lineone.INVCode; lotinfomodel.LotQty = trans.TransQTY; lotinfomodel.ReceiveDate = DateTime.Now; lotinfomodel.MUSER = AppConfig.UserId; lotinfomodel.MUSERName = AppConfig.UserName; lotinfomodel.MTIME = DateTime.Now; lotinfomodel.WorkPoint = AppConfig.WorkPointCode; db.ICSWareHouseLotInfo.InsertOnSubmit(lotinfomodel); } else if (lineone.LotQty == trans.TransQTY) { string guid = lineone.ID; //删除库存
var linefour = db.ICSWareHouseLotInfo.Where(a => a.ID == guid); db.ICSWareHouseLotInfo.DeleteAllOnSubmit(linefour); var linefive = db.ICSStorage.SingleOrDefault(a => a.StorageCode == trans.TOStorageCODE); string whguid = linefive.Serial; var linesix = db.ICSStack.SingleOrDefault(a => a.StackCode == trans.TOStackCODE); string binguid = linesix.Serial; var lineseven = db.ICSINVENTORY.SingleOrDefault(a => a.INVCODE == trans.ITEMCODE); string invguid = lineseven.ID; //添加库存
ICSWareHouseLotInfo ware = new ICSWareHouseLotInfo(); ware.ID = guid; ware.LotNO = trans.Lot.LotNO; ware.WHGUID = whguid; ware.WHCode = transmodel.TOStorageCODE; ware.BinGUID = binguid; ware.BinCode = transmodel.TOStackCODE; ware.INVGUID = invguid; ware.INVCode = transmodel.ITEMCODE; ware.LotQty = transmodel.TransQTY; ware.ReceiveDate = DateTime.Now; ware.MUSER = AppConfig.UserId; ware.MUSERName = AppConfig.UserName; ware.MTIME = DateTime.Now; ware.WorkPoint = AppConfig.WorkPointCode; db.ICSWareHouseLotInfo.InsertOnSubmit(ware);
} }
}
foreach (FormICSInvTransferDetailUIModel transdet in transdetail) { var linesix = db.ICSInvTransferDetail.SingleOrDefault(a => a.TransferNO == transdet.TransferNO && a.TransferLine == transdet.TransferLine); linesix.ACTQTY += transdet.ACTQTY; linesix.TOStackCode = transdet.TOStackCode; }
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; }
}
}
}
|