|
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Config.AppConfig; using System.Data; using System.Data.Sql; using System.Data.Linq; using ICSSoft.Base.Config.DBHelper; using System.Data.SqlClient;
namespace ICSSoft.Frame.Data.DAL { public class ICSWareHouseLotInfoLogDAL {
#region 入库
public static void towh(List<FormICSWareHouseLotInfoUIModel> shiftInfoList, string dsconn) {
FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { foreach (FormICSWareHouseLotInfoUIModel shiftInfo in shiftInfoList) {
bool isNew = false; var line = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.ID == shiftInfo.ID); if (line == null) { isNew = true; line = new ICSWareHouseLotInfo(); line.ID = AppConfig.GetGuid();
} //var codes = db.ICSWareHouseLotInfo.Where(a => a.SHIFTSEQ == shiftInfo.SHIFTSEQ && a.SHIFTTYPEID == shiftInfo.SHIFTTYPEID && a.ID != line.ID);
//if (codes.ToList().Count > 0)
//{
// throw new Exception("班次次序在该班制中已存在");
//}
line.ID = shiftInfo.ID; line.LotNO = shiftInfo.LotNO; line.WHGUID = shiftInfo.WHGUID; line.WHCode = shiftInfo.WHCode; line.BinGUID = shiftInfo.BinGUID; line.BinCode = shiftInfo.BinCode;
line.INVGUID = shiftInfo.INVGUID; line.INVCode = shiftInfo.INVCode; line.LotQty = shiftInfo.LotQty; line.ReceiveDate = Convert.ToDateTime(shiftInfo.ReceiveDate);
line.MUSER = shiftInfo.MUSER; line.MUSERName = shiftInfo.MUSERName; line.MTIME = Convert.ToDateTime(shiftInfo.MTIME); line.WorkPoint = shiftInfo.WorkPoint; line.EATTRIBUTE1 = shiftInfo.EATTRIBUTE1;
if (isNew) db.ICSWareHouseLotInfo.InsertOnSubmit(line); db.SubmitChanges(); }
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 库存信息表
public static void WareHouseInfo(ICSWareHouseInfo ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { bool isNew = false; var line = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHGUID == ItemLot.WHGUID && a.BinGUID == ItemLot.BinGUID && a.INVGUID == ItemLot.INVGUID);
if (line == null) { isNew = true; line = new ICSWareHouseInfo(); line.WHGUID = ItemLot.WHGUID; line.WHCode = ItemLot.WHCode; line.BinGUID = ItemLot.BinGUID; line.BinCode = ItemLot.BinCode; line.INVGUID = ItemLot.INVGUID; line.INVCode = ItemLot.INVCode; }
line.QTY = ItemLot.QTY; line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME; line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
if (isNew) db.ICSWareHouseInfo.InsertOnSubmit(line);
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 物料收发交易记录表
public static void trans(ICSITEMTrans ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try {
ICSITEMTrans line = new ICSITEMTrans();
line.ID = ItemLot.ID; line.TransNO = ItemLot.TransNO; line.TransLine = ItemLot.TransLine; line.ITEMCODE = ItemLot.ITEMCODE; line.FRMStorageCODE = ItemLot.FRMStorageCODE; line.FRMStackCODE = ItemLot.FRMStackCODE; line.TOStorageCODE = ItemLot.TOStorageCODE;
line.TOStackCODE = ItemLot.TOStackCODE; line.TransQTY = ItemLot.TransQTY; line.Memo = ItemLot.Memo; line.TransType = ItemLot.TransType; line.BusinessCode = ItemLot.BusinessCode;
line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME; line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1; db.ICSITEMTrans.InsertOnSubmit(line);
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 物料收发交易批号记录表
public static void transLOT(ICSITEMTransLot ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try {
ICSITEMTransLot line = new ICSITEMTransLot();
line.ID = ItemLot.ID; line.ITEMTransID = ItemLot.ITEMTransID; line.LotNO = ItemLot.LotNO; line.ITEMCODE = ItemLot.ITEMCODE; line.TransQTY = ItemLot.TransQTY; line.Memo = ItemLot.Memo;
line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME;
db.ICSITEMTransLot.InsertOnSubmit(line);
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 物料收发交易详细记录表
public static void transLOTDetail(ICSITEMTransLotDetail ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try {
ICSITEMTransLotDetail line = new ICSITEMTransLotDetail();
line.ID = ItemLot.ID; line.ITEMTransLotID = ItemLot.ITEMTransLotID; line.LotNO = ItemLot.LotNO; line.ITEMCODE = ItemLot.ITEMCODE;
line.SERIALNO = ItemLot.SERIALNO; line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME; line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1; db.ICSITEMTransLotDetail.InsertOnSubmit(line);
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 送检单子表
public static void iqcdetail(ICSASNIQCDETAIL ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { ICSASNIQCDETAIL line = new ICSASNIQCDETAIL(); line.STDSTATUS = ItemLot.STDSTATUS; line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss"); line.WORKPOINT = AppConfig.WorkPointCode;
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 物料,产品详细信息
public static void itemlotdetail(ICSITEMLotDetail ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try {
ICSITEMLotDetail line = new ICSITEMLotDetail();
line.SerialStatus = ItemLot.SerialStatus;
line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss"); line.WorkPoint = AppConfig.WorkPointCode;
db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 到货单详细表
public static void receiptdetail(ICSINVReceiptDetail ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { ICSINVReceiptDetail line = new ICSINVReceiptDetail(); line.RECSTATUS = ItemLot.RECSTATUS; line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss"); line.WorkPoint = AppConfig.WorkPointCode; db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 送检单主表
public static void asniqc(ICSASNIQC ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { ICSASNIQC line = new ICSASNIQC(); line.STATUS = ItemLot.STATUS; line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss"); line.WorkPoint = AppConfig.WorkPointCode; db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 到货单主表
public static void invreceipt(ICSINVReceipt ItemLot, string Appconstr) {
FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { ICSINVReceipt line = new ICSINVReceipt(); line.RECSTATUS = ItemLot.RECSTATUS; line.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss"); line.WorkPoint = AppConfig.WorkPointCode; db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion
#region 查询库位信息
public static List<FormICSStackUIModel> SearchStackInfoList(string storageid, string dsconn) { try { List<FormICSStackUIModel> returnstack = new List<FormICSStackUIModel>(); string sql = @"select [Serial],[StackCode],[StackName]
from [ICSStack] where Storage_Serial='" + storageid + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0]; foreach (DataRow dr in dt.Rows) { FormICSStackUIModel itemmodel = new FormICSStackUIModel(); itemmodel.Serial = dr["Serial"].ToString(); itemmodel.StackCode = dr["StackCode"].ToString(); itemmodel.StackName = dr["StackName"].ToString(); if (!returnstack.Contains(itemmodel)) returnstack.Add(itemmodel); } return returnstack;
} catch (Exception ex) { throw ex; } }
#endregion
#region 根据入库单号、入库单行号查询物料批号
public static DataTable SelectLotNO(string no, int line) { string sql = @"select LotNO
from dbo.ICSITEMLot where TransNO='" + no + "'and TransLine="+line+" and WorkPoint='" + AppConfig.WorkPointCode + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据批号查找产品序列号
public static DataTable SelectSeriaNO(string lotNO) { string sql = @"select SERIALNO
from dbo.ICSITEMLotDetail where LotNO='" + lotNO + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据批号查找原始批次数量
public static DataTable SelectLOTQTY(string lotNO) { string sql = @"select LOTQTY
from dbo.ICSITEMLot where LotNO='" + lotNO + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据库房代码查询库房id
public static DataTable SelectStorageID(string storagecode) { string sql = @"select Serial
from dbo.ICSStorage where StorageCode='" + storagecode + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据库位代码查询库位id
public static DataTable SelectStackID(string stackcode) { string sql = @"select Serial
from dbo.ICSStack where StackCode='" + stackcode + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据物料代码查询物料id
public static DataTable SelectItemID(string itemcode) { string sql = @"select ID
from dbo.ICSINVENTORY where INVCODE='" + itemcode + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据单号、单行号查询物料收发交易记录表id
public static DataTable SelectTransID(string transno,int transline) { string sql = @"select ID
from dbo.ICSITEMTrans where TransNO='" + transno + "'and TransLine= '" + transline + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据批号查找交易批号记录表id
public static DataTable SelectTransLotID(string lotNO) { string sql = @"select ID
from dbo.ICSITEMTransLot where LotNO='" + lotNO + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据库房库位id、库位id、物料id查询库存信息表中的库存数量
public static DataTable SelectQTY(string storageid,string stackid,string itemid) {
string sql = @"select QTY
from dbo.ICSWareHouseInfo where WHGUID='" + storageid + "' and BinGUID='" + stackid + "' and INVGUID='" + itemid + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 更新送检单详细表的行状态
public static void updateSTDSTATUS(string stno, int stline) { string sql = @"update dbo.ICSASNIQCDETAIL
set STDSTATUS='已检已入' where STNO='" + stno + "' and STLINE=" + stline + "";
sql = string.Format(sql); DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql); } #endregion
#region 更新物料,产品详细信息产品状态
public static void updateSerialStatus(string serialno, string itemcode) { string sql = @"update dbo.ICSITEMLotDetail
set SerialStatus='在库' where SERIALNO='" + serialno + "' and ItemCode=" + itemcode + "";
sql = string.Format(sql); DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql); } #endregion
#region 更新到货单详细表的到货单状态
public static void updateRECSTATUS(string stno, int stline) { string sql = @"update dbo.ICSINVReceiptDetail
set RECSTATUS='已经完成' where ReceiptNO='" + stno + "' and ReceiptLine=" + stline + "";
sql = string.Format(sql); DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql); } #endregion
#region 更新送检单主表的单据状态
public static void updateSTATUS(string stno,int stline) { string sql = @"update dbo.ICSASNIQC
set STATUS='已检已入' where STNO='" + stno + "'and STNO_SEQ=" + stline + "";
sql = string.Format(sql); DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql); } #endregion
#region 更新到货单主表的单据状态
public static void updatereceiptRECSTATUS(string stno) { string sql = @"update dbo.ICSINVReceipt
set RECSTATUS='已经完成' where ReceiptNO='" + stno + "'";
sql = string.Format(sql); DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql); } #endregion
#region 根据单号、单行号查询送检单子表信息
public static ICSASNIQCDETAIL selectIQCDetail(String stno, int stline, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSASNIQCDETAIL entity = new ICSASNIQCDETAIL(); try { var line = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.STNO == stno && a.STLINE == stline); return (ICSASNIQCDETAIL)line; } catch (Exception ex) { throw new Exception(ex.Message); } } #endregion
#region 根据产品序列号、存货编码查询物料产品详细表
public static ICSITEMLotDetail selectitemlotdetail(String serailno, string itemcode, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSITEMLotDetail entity = new ICSITEMLotDetail(); try { var line = db.ICSITEMLotDetail.SingleOrDefault(a => a.SERIALNO == serailno && a.ItemCode == itemcode); return (ICSITEMLotDetail)line; } catch (Exception ex) { throw new Exception(ex.Message); } } #endregion
#region 根据单号、行号查询送检单信息
public static ICSASNIQC selectASNIQC(String stno,int stline, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSASNIQC entity = new ICSASNIQC(); try { var line = db.ICSASNIQC.SingleOrDefault(a => a.STNO == stno && a.STNO_SEQ == stline); return (ICSASNIQC)line; } catch (Exception ex) { throw new Exception(ex.Message); } } #endregion
#region 根据单号查询到货单主表信息
public static ICSINVReceipt selectreceipt(String stno, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSINVReceipt entity = new ICSINVReceipt(); try { var line = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == stno); return (ICSINVReceipt)line; } catch (Exception ex) { throw new Exception(ex.Message); } } #endregion
#region 根据单号、单行号查询到货单详细信息
public static ICSINVReceiptDetail selectReceiptDetail(String stno, int stline, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSINVReceiptDetail entity = new ICSINVReceiptDetail(); try { var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == stno && a.ReceiptLine == stline); return (ICSINVReceiptDetail)line; } catch (Exception ex) { throw new Exception(ex.Message); } } #endregion
#region 根据单号、单行号查询生成的批次信息
public static ICSITEMLot selectICSITEMLot(String stno, string stline, String Appconstr) { FramDataContext db = new FramDataContext(Appconstr); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); ICSITEMLot entity = new ICSITEMLot();
try { var line = db.ICSITEMLot.SingleOrDefault(a => a.TransNO == stno && a.TransLine == stline); return (ICSITEMLot)line; } catch (Exception ex) { throw new Exception(ex.Message); } } #endregion
#region 判断某个送检单所有子表的行状态是否关闭
public static bool IsSTDSTATUSclose(string stno, string dsconn) {
FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try {
var line = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.STNO == stno && a.STDSTATUS == "已检已入"); if (line == null) return true; else return false; } catch (Exception ex) { db.Transaction.Rollback(); throw ex; }
} #endregion
#region 判断某个到货单所有子表的到货单状态是否关闭
public static bool IsRECSTATUSclose(string stno, string dsconn) {
FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == stno && a.RECSTATUS == "已经完成"); if (line == null) return true; else return false; } catch (Exception ex) { db.Transaction.Rollback(); throw ex; }
} #endregion
#region 状态更新
public static void updatestatus(string receiptno, int receiptline) { FramDataContext db = new FramDataContext(AppConfig.AppConnectString); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { //var line = db.ICSASNIQC.SingleOrDefault(a => a.STNO == receiptno && a.STNO_SEQ == receiptline && a.WorkPoint == AppConfig.WorkPointCode);
//var lines = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.STNO == receiptno && a.STLINE == receiptline && a.WORKPOINT == AppConfig.WorkPointCode);
//line.STATUS = "已检已入";
//lines.STDSTATUS = "已检已入";
var itemTransQty = db.ICSITEMTrans.Where(a => a.TransNO == receiptno && a.TransLine == receiptline && a.TransType=="收" && a.WorkPoint == AppConfig.WorkPointCode).Sum(a=>a.TransQTY); var INVReceiptDetail = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == receiptno && a.ReceiptLine == receiptline && a.WorkPoint == AppConfig.WorkPointCode); if (itemTransQty != null && INVReceiptDetail != null && itemTransQty == INVReceiptDetail.PLANQTY) { INVReceiptDetail.RECSTATUS = "已经完成"; db.SubmitChanges(); } var ptDetail = db.ICSINVReceiptDetail.Where(a => a.ReceiptNO == receiptno && a.WorkPoint == AppConfig.WorkPointCode && a.RECSTATUS != "已经完成"); if (ptDetail.Count() == 0 || ptDetail == null) { var ICSINVReceipt = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == receiptno && a.WorkPoint == AppConfig.WorkPointCode); ICSINVReceipt.RECSTATUS = "已经完成"; } db.SubmitChanges(); db.Transaction.Commit(); }
catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion
#region 期初导入
public static void Insert(List<ICSITEMLot> tbinfoList, List<FormICSWareHouseLotInfoUIModel> shiftInfoList, List<ICSWareHouseInfo> WareHouseInfoList, List<ICSWareHouseLotInfoLog> ICSWareHouseLogList, string dsconn) { #region 写入WMS
FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region ICSITEMLot
foreach (ICSITEMLot tbinfo in tbinfoList) { bool isNew = false; var line = db.ICSITEMLot.SingleOrDefault(a => a.ID == tbinfo.ID); if (line == null) { isNew = true; line = new ICSITEMLot(); line.ID = AppConfig.GetGuid(); } line.LotNO = tbinfo.LotNO; line.ItemCode = tbinfo.ItemCode; line.TransNO = tbinfo.TransNO; line.TransLine = tbinfo.TransLine; line.VENDORITEMCODE = tbinfo.VENDORITEMCODE; line.VENDORCODE = tbinfo.VENDORCODE; line.VenderLotNO = tbinfo.VenderLotNO; line.PRODUCTDATE = tbinfo.PRODUCTDATE; line.LOTQTY = tbinfo.LOTQTY; line.ACTIVE = tbinfo.ACTIVE; line.Exdate = tbinfo.Exdate; line.TYPE = tbinfo.TYPE; line.VoucherNO = tbinfo.VoucherNO;//零件号
line.VoucherRow = tbinfo.VoucherRow;//工艺要求
line.TwoMUSER = tbinfo.TwoMUSER;//工程号
line.WorkPoint = tbinfo.WorkPoint; line.MUSER = tbinfo.MUSER; line.MUSERName = tbinfo.MUSERName; line.MTIME = tbinfo.MTIME; line.EATTRIBUTE1 = tbinfo.EATTRIBUTE1; line.EATTRIBUTE3 = tbinfo.EATTRIBUTE3; if (isNew) db.ICSITEMLot.InsertOnSubmit(line); db.SubmitChanges(); } #endregion
#region FormICSWareHouseLotInfoUIModel
foreach (FormICSWareHouseLotInfoUIModel shiftInfo in shiftInfoList) {
bool isNew = false; var line = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.ID == shiftInfo.ID); if (line == null) { isNew = true; line = new ICSWareHouseLotInfo(); line.ID = AppConfig.GetGuid();
} //var codes = db.ICSWareHouseLotInfo.Where(a => a.SHIFTSEQ == shiftInfo.SHIFTSEQ && a.SHIFTTYPEID == shiftInfo.SHIFTTYPEID && a.ID != line.ID);
//if (codes.ToList().Count > 0)
//{
// throw new Exception("班次次序在该班制中已存在");
//}
line.ID = shiftInfo.ID; line.LotNO = shiftInfo.LotNO; line.WHGUID = shiftInfo.WHGUID; line.WHCode = shiftInfo.WHCode; line.BinGUID = shiftInfo.BinGUID; line.BinCode = shiftInfo.BinCode;
line.INVGUID = shiftInfo.INVGUID; line.INVCode = shiftInfo.INVCode; line.LotQty = shiftInfo.LotQty; line.ReceiveDate = Convert.ToDateTime(shiftInfo.ReceiveDate);
line.MUSER = shiftInfo.MUSER; line.MUSERName = shiftInfo.MUSERName; line.MTIME = Convert.ToDateTime(shiftInfo.MTIME); line.WorkPoint = shiftInfo.WorkPoint; line.EATTRIBUTE1 = shiftInfo.EATTRIBUTE1;
if (isNew) db.ICSWareHouseLotInfo.InsertOnSubmit(line); db.SubmitChanges(); } #endregion
#region ICSWareHouseInfo
foreach (ICSWareHouseInfo ItemLot in WareHouseInfoList) { bool isNew = false; var line = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHGUID == ItemLot.WHGUID && a.BinGUID == ItemLot.BinGUID && a.INVGUID == ItemLot.INVGUID);
if (line == null) { isNew = true; line = new ICSWareHouseInfo(); line.WHGUID = ItemLot.WHGUID; line.WHCode = ItemLot.WHCode; line.BinGUID = ItemLot.BinGUID; line.BinCode = ItemLot.BinCode; line.INVGUID = ItemLot.INVGUID; line.INVCode = ItemLot.INVCode; //line.QTY = ItemLot.QTY;
}
line.QTY += ItemLot.QTY; line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME; line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
if (isNew) db.ICSWareHouseInfo.InsertOnSubmit(line);
db.SubmitChanges(); } #endregion
#region ICSITEMTrans
//foreach (ICSITEMTrans ItemLot in TransList)
//{
// ICSITEMTrans line = new ICSITEMTrans();
// line.ID = ItemLot.ID;
// line.TransNO = ItemLot.TransNO;
// line.TransLine = ItemLot.TransLine;
// line.ITEMCODE = ItemLot.ITEMCODE;
// line.FRMStorageCODE = ItemLot.FRMStorageCODE;
// line.FRMStackCODE = ItemLot.FRMStackCODE;
// line.TOStorageCODE = ItemLot.TOStorageCODE;
// line.TOStackCODE = ItemLot.TOStackCODE;
// line.TransQTY = ItemLot.TransQTY;
// line.Memo = ItemLot.Memo;
// line.TransType = ItemLot.TransType;
// line.BusinessCode = ItemLot.BusinessCode;
// line.WorkPoint = AppConfig.WorkPointCode; ;
// line.MUSER = ItemLot.MUSER;
// line.MUSERName = ItemLot.MUSERName;
// line.MTIME = ItemLot.MTIME;
// line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1;
// db.ICSITEMTrans.InsertOnSubmit(line);
// db.SubmitChanges();
//}
#endregion
#region ICSITEMTransLot
//foreach (ICSITEMTransLot ItemLot in ItemLotList)
//{
// ICSITEMTransLot line = new ICSITEMTransLot();
// line.ID = ItemLot.ID;
// line.ITEMTransID = ItemLot.ITEMTransID;
// line.LotNO = ItemLot.LotNO;
// line.ITEMCODE = ItemLot.ITEMCODE;
// line.TransQTY = ItemLot.TransQTY;
// line.Memo = ItemLot.Memo;
// line.WorkPoint = AppConfig.WorkPointCode; ;
// line.MUSER = ItemLot.MUSER;
// line.MUSERName = ItemLot.MUSERName;
// line.MTIME = ItemLot.MTIME;
// db.ICSITEMTransLot.InsertOnSubmit(line);
// db.SubmitChanges();
//}
#endregion
#region ICSWareHouseLotInfoLog
foreach (ICSWareHouseLotInfoLog LogList in ICSWareHouseLogList) { ICSWareHouseLotInfoLog line = new ICSWareHouseLotInfoLog();
line.ID = LogList.ID; line.TransNO = LogList.TransNO; line.TransLine = LogList.TransLine; line.ITEMCODE = LogList.ITEMCODE; line.LotNO = LogList.LotNO; line.FRMStorageCODE = LogList.FRMStorageCODE; line.FRMStackCODE = LogList.FRMStackCODE; line.TOStorageCODE = LogList.TOStorageCODE;
line.TOStackCODE = LogList.TOStackCODE; line.TransQTY = LogList.TransQTY; line.Memo = LogList.Memo; line.TransType = LogList.TransType; line.BusinessCode = LogList.BusinessCode;
line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = LogList.MUSER; line.MUSERName = LogList.MUSERName; line.MTIME = LogList.MTIME; line.EATTRIBUTE1 = LogList.EATTRIBUTE1; db.ICSWareHouseLotInfoLog.InsertOnSubmit(line);
db.SubmitChanges(); } #endregion
db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } #endregion
} #endregion
#region 审核ERP入库单
public static string updateRd10(List<Rdrecord10> dataContext, List<FormICSWareHouseLotInfoUIModel> shiftInfoList, List<ICSWareHouseInfo> WareHouseInfoList, List<ICSITEMTrans> TransList, List<ICSITEMTransLot> ItemLotList, string dsconn) { string conStr = ""; if (dataContext.Count == 0) { return ""; } else { conStr = dataContext[0].ERPConStr; } SqlConnection conn = new System.Data.SqlClient.SqlConnection(conStr); conn.Open(); SqlTransaction sqlTran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Transaction = sqlTran; cmd.Connection = conn; try { #region 更新ERP
foreach (Rdrecord10 Context in dataContext) { string sql = @"
IF NOT EXISTS(SELECT a.ID FROM rdrecord10 a INNER JOIN rdrecords10 b ON a.ID = b.ID WHERE b.AutoID = '{0}' AND a.cWhCode = '{3}') BEGIN RAISERROR('入库单仓库与扫描仓库不符!!',16,0); END
IF EXISTS(SELECT a.ID FROM rdrecord10 a INNER JOIN rdrecords10 b ON a.ID = b.ID WHERE b.AutoID = '{0}' AND b.iQuantity > ISNULL(iFQuantity,0)) BEGIN UPDATE rdrecords10 SET iFQuantity = ISNULL(iFQuantity,0) + '{1}' WHERE AutoID = '{0}' UPDATE b SET b.cHandler = '{2}',b.dnverifytime = GETDATE(), b.dVeriDate = CONVERT(NVARCHAR(20),GETDATE(),23) FROM rdrecords10 a INNER JOIN rdrecord10 b ON a.ID = b.ID WHERE a.AutoID = '{0}'
IF EXISTS (SELECT AutoID FROM dbo.CurrentStock WHERE cWhCode = '{3}' AND cInvCode = '{4}') BEGIN UPDATE dbo.CurrentStock SET iQuantity = iQuantity + '{1}' WHERE cWhCode = '{3}' AND cInvCode = '{4}' END ELSE BEGIN INSERT INTO dbo.CurrentStock (cWhCode,cInvCode,ItemId,cBatch,iSoType,iSodid,iQuantity, iNum,cFree1,fOutQuantity,fOutNum,fInQuantity,fInNum,cFree2, cFree3,bStopFlag,fTransInQuantity,fTransInNum, fTransOutQuantity,fTransOutNum,fPlanQuantity,fPlanNum,fDisableQuantity, fDisableNum,fAvaQuantity,fAvaNum,BGSPSTOP,fStopQuantity, fStopNum,ipeqty,ipenum) SELECT '{3}','{4}',(SELECT Id FROM dbo.SCM_Item WHERE cInvCode = '{4}'),'','0','','{1}', '0','','0','0','0','0','', '','0','0','0','0','0','0','0','0', '0','0','0','0','0','0','0','0' END END ELSE BEGIN RAISERROR('ERP入库单已经入库完成!!',16,0); END";
sql = string.Format(sql, Context.rdsID, Context.Quantity, Context.UserName, Context.whCode, Context.cInvCode); cmd.CommandText = sql; cmd.ExecuteNonQuery(); }
#endregion
#region 写入WMS
FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { #region FormICSWareHouseLotInfoUIModel
foreach (FormICSWareHouseLotInfoUIModel shiftInfo in shiftInfoList) {
bool isNew = false; var line = db.ICSWareHouseLotInfo.SingleOrDefault(a => a.ID == shiftInfo.ID); if (line == null) { isNew = true; line = new ICSWareHouseLotInfo(); line.ID = AppConfig.GetGuid();
} //var codes = db.ICSWareHouseLotInfo.Where(a => a.SHIFTSEQ == shiftInfo.SHIFTSEQ && a.SHIFTTYPEID == shiftInfo.SHIFTTYPEID && a.ID != line.ID);
//if (codes.ToList().Count > 0)
//{
// throw new Exception("班次次序在该班制中已存在");
//}
line.ID = shiftInfo.ID; line.LotNO = shiftInfo.LotNO; line.WHGUID = shiftInfo.WHGUID; line.WHCode = shiftInfo.WHCode; line.BinGUID = shiftInfo.BinGUID; line.BinCode = shiftInfo.BinCode;
line.INVGUID = shiftInfo.INVGUID; line.INVCode = shiftInfo.INVCode; line.LotQty = shiftInfo.LotQty; line.ReceiveDate = Convert.ToDateTime(shiftInfo.ReceiveDate);
line.MUSER = shiftInfo.MUSER; line.MUSERName = shiftInfo.MUSERName; line.MTIME = Convert.ToDateTime(shiftInfo.MTIME); line.WorkPoint = shiftInfo.WorkPoint; line.EATTRIBUTE1 = shiftInfo.EATTRIBUTE1;
if (isNew) db.ICSWareHouseLotInfo.InsertOnSubmit(line); db.SubmitChanges(); } #endregion
#region ICSWareHouseInfo
foreach (ICSWareHouseInfo ItemLot in WareHouseInfoList) { bool isNew = false; var line = db.ICSWareHouseInfo.SingleOrDefault(a => a.WHGUID == ItemLot.WHGUID && a.BinGUID == ItemLot.BinGUID && a.INVGUID == ItemLot.INVGUID);
if (line == null) { isNew = true; line = new ICSWareHouseInfo(); line.WHGUID = ItemLot.WHGUID; line.WHCode = ItemLot.WHCode; line.BinGUID = ItemLot.BinGUID; line.BinCode = ItemLot.BinCode; line.INVGUID = ItemLot.INVGUID; line.INVCode = ItemLot.INVCode; //line.QTY = ItemLot.QTY;
}
line.QTY += ItemLot.QTY; line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME; line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1; if (isNew) db.ICSWareHouseInfo.InsertOnSubmit(line);
db.SubmitChanges(); } #endregion
#region ICSITEMTrans
foreach (ICSITEMTrans ItemLot in TransList) { ICSITEMTrans line = new ICSITEMTrans();
line.ID = ItemLot.ID; line.TransNO = ItemLot.TransNO; line.TransLine = ItemLot.TransLine; line.ITEMCODE = ItemLot.ITEMCODE; line.FRMStorageCODE = ItemLot.FRMStorageCODE; line.FRMStackCODE = ItemLot.FRMStackCODE; line.TOStorageCODE = ItemLot.TOStorageCODE;
line.TOStackCODE = ItemLot.TOStackCODE; line.TransQTY = ItemLot.TransQTY; line.Memo = ItemLot.Memo; line.TransType = ItemLot.TransType; line.BusinessCode = ItemLot.BusinessCode;
line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME; line.EATTRIBUTE1 = ItemLot.EATTRIBUTE1; db.ICSITEMTrans.InsertOnSubmit(line);
db.SubmitChanges(); } #endregion
#region ICSITEMTransLot
foreach (ICSITEMTransLot ItemLot in ItemLotList) { ICSITEMTransLot line = new ICSITEMTransLot();
line.ID = ItemLot.ID; line.ITEMTransID = ItemLot.ITEMTransID; line.LotNO = ItemLot.LotNO; line.ITEMCODE = ItemLot.ITEMCODE; line.TransQTY = ItemLot.TransQTY; line.Memo = ItemLot.Memo;
line.WorkPoint = AppConfig.WorkPointCode; ; line.MUSER = ItemLot.MUSER; line.MUSERName = ItemLot.MUSERName; line.MTIME = ItemLot.MTIME;
db.ICSITEMTransLot.InsertOnSubmit(line);
db.SubmitChanges(); } #endregion
db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } #endregion
cmd.Transaction.Commit(); return "OK"; } catch (Exception ex) { cmd.Transaction.Rollback(); throw ex; }
} #endregion
#region 根据库位代码查询库位id,仓库
public static DataTable SelectStack(string stackcode) { string sql = @"SELECT
a.Serial,b.StorageCode,b.Serial AS StorageID FROM dbo.ICSStack a INNER JOIN ICSStorage b ON a.Storage_Serial=b.Serial AND a.WorkPoint=b.WorkPoint WHERE a.StackCode='{0}' AND a.WorkPoint='{1}'";
sql = string.Format(sql,stackcode,AppConfig.WorkPointCode); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据存货编码判断批号是否批次管理
public static DataTable SelectLotNo(string invcode) { string sql = @"SELECT INVCODE,INVCONTROLTYPE
FROM ICSINVENTORY WHERE INVCODE='{0}'";
sql = string.Format(sql, invcode, AppConfig.WorkPointCode); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; }
#endregion
#region 根据物料代码查询物料
public static DataTable SelectItem(string itemcode) { string sql = @"select ID,INVCLASS,CASE SUBSTRING(INVCLASS, 1, 1) WHEN '2' THEN '半成品' WHEN '3' THEN '成品' ELSE '原材料' END AS Type
from dbo.ICSINVENTORY where INVCODE='" + itemcode + "'";
sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; return dt; } #endregion
} }
|