锐腾搅拌上料功能
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.

319 lines
15 KiB

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;
namespace ICSSoft.Frame.Data.DAL
{
public class ICSASNIQCDal
{
#region AddandEdit
public static void Edit(ICSASNIQC ItemLot, string Appconstr)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
bool isNew = false;
var line = db.ICSASNIQC.SingleOrDefault(a => a.ID == ItemLot.ID);
if (line == null)
{
isNew = true;
line = new ICSASNIQC();
line.ID = AppConfig.GetGuid();
}
line.INSPECTOR = ItemLot.INSPECTOR;
line.PIC = ItemLot.PIC;
line.LOTNO = ItemLot.LOTNO;
line.STANDARD = ItemLot.STANDARD;
line.RESULT = ItemLot.RESULT;
line.RECEIVEDATE = ItemLot.RECEIVEDATE;
db.SubmitChanges();
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw new Exception(ex.Message);
}
}
#endregion
public static void Save(DataTable retData, string Connecting)
{
FramDataContext db = new FramDataContext(Connecting);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
foreach (DataRow dr in retData.Rows)
{
string ID = dr["ID"].ToString();
string stno = dr["入库单号"].ToString();
string dSql = @"SELECT a.VENDORCODE,a.RECTYPE,b.ReceiptNO,b.ReceiptLine,b.ORDERNO,b.ORDERLINE,
b.ITEMCODE,b.INVUSER,b.PLANQTY,a.StorageID,d.id as ITEMID,c.id as VENDORID
FROM dbo.ICSINVReceipt a LEFT JOIN dbo.ICSINVReceiptDetail b ON a.ID=b.ReceiptID
LEFT JOIN ICSShipToStock c ON c.VENDORCODE=a.VENDORCODE
LEFT JOIN ICSShipToStock d ON d.ITEMCODE=b.ITEMCODE
WHERE b.RECSTATUS='新建' AND b.ReceiptLine NOT IN (SELECT STNO_SEQ FROM ICSASNIQC WHERE STNO='{1}')
AND a.ID='{0}' and a.WorkPoint='" + AppConfig.WorkPointCode + "' ORDER BY ReceiptLine ";
dSql = string.Format(dSql, ID,stno);
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, dSql).Tables[0];
if (dt.Rows.Count <= 0)
{
throw new Exception("没有要生成的数据!!");
}
for (int i = 0; i < dt.Rows.Count; i++)
{
int seq = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
ICSASNIQC header = new ICSASNIQC();
string headID = AppConfig.GetGuid();
if (dt.Rows[i]["ITEMID"].ToString() != "" && dt.Rows[i]["VENDORID"].ToString() != "")
{
header.ID = headID;
header.IQCNO = dt.Rows[i]["ReceiptNO"].ToString() + "-" + "" + seq + "";
header.STNO = dt.Rows[i]["ReceiptNO"].ToString();
header.STNO_SEQ = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
header.STATUS = "已检未入库";
header.STS = "是";
header.INVUSER = dt.Rows[i]["INVUSER"].ToString();
header.APPDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
header.MUSER = AppConfig.UserId;
header.MUSERName = AppConfig.UserName;
header.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
header.WorkPoint = AppConfig.WorkPointCode;
header.VENDORCODE = dt.Rows[i]["VENDORCODE"].ToString();
ICSASNIQCDETAIL deail = new ICSASNIQCDETAIL();
deail.ID = AppConfig.GetGuid();
deail.IQCID = headID;
deail.IQCNO = header.IQCNO;
deail.STNO = dt.Rows[i]["ReceiptNO"].ToString();
deail.STLINE = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
deail.ITEMCODE = dt.Rows[i]["ITEMCODE"].ToString();
deail.ORDERNO = dt.Rows[i]["ORDERNO"].ToString();
deail.ORDERLINE = int.Parse(dt.Rows[i]["ORDERLINE"].ToString());
deail.STDSTATUS = "已检未入库";
deail.RECEIVEQTY = decimal.Parse(dt.Rows[i]["PLANQTY"].ToString());
deail.INSType = "全检";
deail.NGQTY = 0;
deail.CHECKSTATUS = "合格";
deail.ATTRIBUTE = "正常";
deail.Type = "正常";
deail.isSample = "否";
deail.concessionStatus = "否";
deail.StorageID = dt.Rows[i]["StorageID"].ToString();
deail.MUSER = AppConfig.UserId;
deail.MUSERNAME = AppConfig.UserName;
deail.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
deail.WORKPOINT = AppConfig.WorkPointCode;
db.ICSASNIQCDETAIL.InsertOnSubmit(deail);
db.ICSASNIQC.InsertOnSubmit(header);
string updateSql = @"UPDATE dbo.ICSINVReceiptDetail SET IQCStatus='合格', QualifyQTY='{0}', RECSTATUS= '已经完成' where ReceiptNO='{1}' and ReceiptLine='{2}' and WorkPoint='" + AppConfig.WorkPointCode + "'";
updateSql = string.Format(updateSql,deail.RECEIVEQTY, deail.STNO, deail.STLINE);
DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, updateSql);
string ptsql = "select RECSTATUS from ICSINVReceiptDetail where ReceiptNO='" + deail.STNO + "' AND RECSTATUS!='CLOSE'and WorkPoint='" + AppConfig.WorkPointCode + "'";
DataTable table = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, ptsql).Tables[0];
if(table.Rows.Count==0){
string upptsql = "update ICSINVReceipt set RECSTATUS='CLOSE' from ICSINVReceipt where ReceiptNO='" + header.STNO + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, updateSql);
}
}
else
{
header.ID = headID;
header.IQCNO = dt.Rows[i]["ReceiptNO"].ToString() + "-" + "" + seq + "";
header.STNO = dt.Rows[i]["ReceiptNO"].ToString();
header.STNO_SEQ = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
header.STATUS = "新建";
header.STS = "否";
header.INVUSER = dt.Rows[i]["INVUSER"].ToString();
header.APPDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
header.MUSER = AppConfig.UserId;
header.MUSERName = AppConfig.UserName;
header.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
header.WorkPoint = AppConfig.WorkPointCode;
header.VENDORCODE = dt.Rows[i]["VENDORCODE"].ToString();
ICSASNIQCDETAIL deail = new ICSASNIQCDETAIL();
deail.ID = AppConfig.GetGuid();
deail.IQCID = headID;
deail.IQCNO = header.IQCNO;
deail.STNO = dt.Rows[i]["ReceiptNO"].ToString();
deail.STLINE = int.Parse(dt.Rows[i]["ReceiptLine"].ToString());
deail.ITEMCODE = dt.Rows[i]["ITEMCODE"].ToString();
deail.ORDERNO = dt.Rows[i]["ORDERNO"].ToString();
deail.ORDERLINE = int.Parse(dt.Rows[i]["ORDERLINE"].ToString());
deail.STDSTATUS = "新建";
deail.RECEIVEQTY = decimal.Parse(dt.Rows[i]["PLANQTY"].ToString());
deail.concessionStatus = "否";
deail.StorageID = dt.Rows[i]["StorageID"].ToString();
deail.MUSER = AppConfig.UserId;
deail.MUSERNAME = AppConfig.UserName;
deail.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
deail.WORKPOINT = AppConfig.WorkPointCode;
db.ICSASNIQCDETAIL.InsertOnSubmit(deail);
db.ICSASNIQC.InsertOnSubmit(header);
}
}
}
db.SubmitChanges();
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw new Exception(ex.Message);
}
}
#region select
public static ICSASNIQC select(String guid, 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.ID == guid && a.WorkPoint == AppConfig.WorkPointCode);
return (ICSASNIQC)line;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
#region query
public static ICSASNIQC Query(String iqcno, 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.IQCNO == iqcno && a.WorkPoint == AppConfig.WorkPointCode);
return (ICSASNIQC)line;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
#region delete
public static void delete(List<String> guidList)
{
FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
var lines = db.ICSASNIQC.Where(a => guidList.Contains(a.ID) && a.STATUS == "新建" && a.WorkPoint==AppConfig.WorkPointCode);
var line = db.ICSASNIQCDETAIL.Where(a => guidList.Contains(a.IQCID) && a.STDSTATUS == "新建" && a.WORKPOINT == AppConfig.WorkPointCode);
db.ICSASNIQC.DeleteAllOnSubmit(lines);
db.ICSASNIQCDETAIL.DeleteAllOnSubmit(line);
db.SubmitChanges();
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region cancel
public static void cancel(List<String> guidList,List<string> lineList)
{
FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
for (int i = 0; i < guidList.Count;i++ )
{
var line = db.ICSASNIQC.SingleOrDefault(a => a.ID == guidList[i] && a.WorkPoint == AppConfig.WorkPointCode);
var lines = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.IQCID == guidList[i] && a.WORKPOINT == AppConfig.WorkPointCode);
line.STATUS = "新建";
lines.STDSTATUS = "新建";
var INVReceiptDetail = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode && a.ReceiptLine == int.Parse(lineList[i].ToString()));
INVReceiptDetail.RECSTATUS = "新建";
INVReceiptDetail.IQCStatus = "新建";
var ICSINVReceipt = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode);
ICSINVReceipt.RECSTATUS = "新建";
db.SubmitChanges();
}
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region OK
public static void OK(List<String> guidList,List<string> lineList)
{
FramDataContext db = new FramDataContext(AppConfig.AppConnectString);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
for (int i = 0; i < guidList.Count; i++)
{
var line = db.ICSASNIQC.SingleOrDefault(a => a.ID == guidList[i] && a.WorkPoint == AppConfig.WorkPointCode);
var lines = db.ICSASNIQCDETAIL.SingleOrDefault(a => a.IQCID == guidList[i] && a.WORKPOINT == AppConfig.WorkPointCode);
line.STATUS = "待检";
lines.STDSTATUS = "待检";
var INVReceiptDetail = db.ICSINVReceiptDetail.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode && a.ReceiptLine == int.Parse(lineList[i].ToString()));
INVReceiptDetail.RECSTATUS = "待检";
INVReceiptDetail.IQCStatus = "待检";
db.SubmitChanges();
var ptDetail = db.ICSINVReceiptDetail.Where(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode && a.RECSTATUS != "待检");
if (ptDetail.Count() == 0 || ptDetail == null)
{
var ICSINVReceipt = db.ICSINVReceipt.SingleOrDefault(a => a.ReceiptNO == line.STNO && a.WorkPoint == AppConfig.WorkPointCode);
ICSINVReceipt.RECSTATUS = "待检";
}
db.SubmitChanges();
}
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
}
}