华恒Mes鼎捷代码
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.

216 lines
8.4 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ICSSoft.Frame.Data.Entity;
using ICSSoft.Base.Config.DBHelper;
using System.Data;
using ICSSoft.Base.Config.AppConfig;
namespace ICSSoft.Frame.Data.DAL
{
public class ICSINVReceiptDetailDAL
{
public static List<FormICSINVENTORYUIModel> SearchItemInfoList(string dsconn)
{
try
{
List<FormICSINVENTORYUIModel> returntype = new List<FormICSINVENTORYUIModel>();
string sql = @"select [ID],[INVCODE],[INVNAME],[INVDESC]
from [ICSINVENTORY]
where INVTYPE='物料'";
sql = string.Format(sql);
DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
foreach (DataRow dr in dt.Rows)
{
FormICSINVENTORYUIModel itemmodel = new FormICSINVENTORYUIModel();
itemmodel.ID = dr["ID"].ToString();
itemmodel.INVCODE = dr["INVCODE"].ToString();
itemmodel.INVNAME = dr["INVNAME"].ToString();
itemmodel.INVDESC = dr["INVDESC"].ToString();
if (!returntype.Contains(itemmodel))
returntype.Add(itemmodel);
}
return returntype;
}
catch (Exception ex)
{
throw ex;
}
}
#region 新增和修改
public static void Add(List<FormICSINVReceiptDetailUIModel> DetailInfoList, string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
foreach (FormICSINVReceiptDetailUIModel info in DetailInfoList)
{
bool isNew = false;
var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ID == info.ID);
if (line == null)
{
isNew = true;
line = new ICSINVReceiptDetail();
line.ID = AppConfig.GetGuid();
line.ReceiptID = info.ReceiptID;
line.ReceiptNO = info.ReceiptNO;
line.ReceiptLine = info.ReceiptLine;
line.RECSTATUS = "新建";
line.IQCStatus = "新建";
line.MOCODE = "";
line.QualifyQTY = Convert.ToDecimal(0);
line.ACTQTY = 0;
line.RECUSER = "";
line.INVUSER = "";
line.ISINSTORAGE = "N";
}
line.ORDERNO = info.ORDERNO;
line.ORDERLINE = info.ORDERLINE;
line.MEMO = info.MEMO;
line.ITEMCODE = info.inv.INVCODE;
line.PLANQTY = info.PLANQTY;
line.VenderLotNO = info.VenderLotNO;
line.RECTIME = DateTime.Now;
line.MUSER = AppConfig.UserId;
line.MUSERName = AppConfig.UserName;
line.MTIME = DateTime.Now;
line.WorkPoint = AppConfig.WorkPointCode;
if (isNew)
{
db.ICSINVReceiptDetail.InsertOnSubmit(line);
}
db.SubmitChanges();
}
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region 查询
public static List<FormICSINVReceiptDetailUIModel> SearchInfoByID(string dID, string dsconn)
{
List<FormICSINVReceiptDetailUIModel> returndetail = new List<FormICSINVReceiptDetailUIModel>();
string sql = @"select a.[ID],a.[ReceiptLine],a.[ORDERNO],a.[ORDERLINE],a.[RECSTATUS],a.[IQCStatus],a.[MEMO],
b.[INVCODE],b.[INVNAME],a.[PLANQTY],a.[QualifyQTY],a.[VenderLotNO],a.[ACTQTY],
a.[RECTIME],a.[RECUSER],a.[INVUSER],a.[ISINSTORAGE],
c.[MOCODE] as cMOCODE,c.[MODESC]
from ICSINVReceiptDetail a
left join ICSINVENTORY b on b.INVCODE=a.ITEMCODE
left join ICSMO c on c.MOCODE=a.MOCODE
where a.ID='{0}'
";
sql = string.Format(sql, dID);
DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
foreach (DataRow dr in dt.Rows)
{
FormICSINVReceiptDetailUIModel returnInfo = new FormICSINVReceiptDetailUIModel();
returnInfo.ID = dr["ID"].ToString();
returnInfo.ReceiptLine = Convert.ToInt32(dr["ReceiptLine"].ToString());
returnInfo.ORDERNO = dr["ORDERNO"].ToString();
returnInfo.ORDERLINE = Convert.ToInt32(dr["ORDERLINE"].ToString().Equals("") ? "0" : dr["ORDERLINE"].ToString());
returnInfo.RECSTATUS = dr["RECSTATUS"].ToString();
returnInfo.IQCStatus = dr["IQCStatus"].ToString();
returnInfo.MEMO = dr["MEMO"].ToString();
//returnInfo.MOCODE = dr["MOCODE"].ToString();
//returnInfo.ITEMCODE = dr["ITEMCODE"].ToString();
//string motest=dr["cMOCODE"].ToString();
//if (!motest.Equals(""))
//{
// returnInfo.mo = new FormICSMOUIModel();
// returnInfo.mo.MOCODE = dr["cMOCODE"].ToString();
// returnInfo.mo.MODESC = dr["MODESC"].ToString();
//}
returnInfo.inv = new FormICSINVENTORYUIModel();
returnInfo.inv.INVCODE = dr["INVCODE"].ToString();
returnInfo.inv.INVNAME=dr["INVNAME"].ToString();
returnInfo.PLANQTY = Convert.ToDecimal(dr["PLANQTY"].ToString());
//returnInfo.QualifyQTY = Convert.ToDecimal(dr["QualifyQTY"].ToString().Equals("") ? "0" : dr["QualifyQTY"].ToString());
returnInfo.VenderLotNO = dr["VenderLotNO"].ToString();
//returnInfo.ACTQTY = Convert.ToInt32(dr["ACTQTY"].ToString().Equals("") ? "0" : dr["ACTQTY"].ToString());
//returnInfo.RECTIME = Convert.ToDateTime(dr["RECTIME"].ToString());
//returnInfo.RECUSER = dr["RECUSER"].ToString();
//returnInfo.INVUSER = dr["INVUSER"].ToString();
//returnInfo.ISINSTORAGE = dr["ISINSTORAGE"].ToString();
if (!returndetail.Contains(returnInfo))
{
returndetail.Add(returnInfo);
}
}
return returndetail;
}
#endregion
#region 删除
public static void deleteInfo(List<string> detailIDList, string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
var lines = db.ICSINVReceiptDetail.Where(a => detailIDList.Contains(a.ID));
db.ICSINVReceiptDetail.DeleteAllOnSubmit(lines);
db.SubmitChanges();
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region 产品明细代码是否存在
public static bool IsIncluding(string Rid,int RLine, string workpoint,string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
var line = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptLine == RLine && a.ReceiptID == Rid && a.WorkPoint == workpoint);
if (line == null)
return true;
else
return false;
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
}
}