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.
1041 lines
36 KiB
1041 lines
36 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace ICSSoft.Common
|
|
{
|
|
/// <summary>
|
|
/// 公共验证方法
|
|
/// </summary>
|
|
public class VerificationMethod
|
|
{
|
|
private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
private static string connString = System.Configuration.ConfigurationManager.AppSettings["ConnStr"];
|
|
private static string ERPDB = System.Configuration.ConfigurationManager.AppSettings["ERPDB"];
|
|
SqlConnection conn = new System.Data.SqlClient.SqlConnection(connString);
|
|
|
|
|
|
/// <summary>
|
|
/// 库存验证物料
|
|
/// </summary>
|
|
/// <param name="LotNo">条码</param>
|
|
/// <param name="WorkPoint">站点</param>
|
|
/// <param name="TransCode">源头单据</param>
|
|
/// <returns></returns>
|
|
public string HouseLotInvCode(string LotNo, string WorkPoint,string TransCode)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
//验证条码物料是否相同
|
|
string sql = @"select * from ICSWareHouseLotInfo where LotNo='{0}' and WorkPoint='{2}' and InvCode in (select A.InvCode from ICSMOPick a left join ICSMO b on b.id=a.MODetailID where b.MOCode='{1}' AND B.WorkPoint='{2}')";
|
|
sql = string.Format(sql, LotNo, TransCode, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("条码对应物料不符!");
|
|
}
|
|
else
|
|
{
|
|
//验证仓库
|
|
// HouseLotWHCode(LotNo, WorkPoint);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 库存验证仓库
|
|
/// </summary>
|
|
/// <param name="LotNo">条码</param>
|
|
/// <param name="WorkPoint">站点</param>
|
|
/// <param name="TransCode">源头单据</param>
|
|
/// <returns></returns>
|
|
public string HouseLotWHCode(string LotNo, string WorkPoint)
|
|
{
|
|
// conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
//验证条码仓库是否相同
|
|
string sql = @"select * from ICSWarehouse where WorkPoint='{1}' and WarehouseCode in (select WarehouseCode from ICSWareHouseLotInfo where LotNo='{0}' AND WorkPoint='{1}')";
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("条码对应仓库不符!");
|
|
}
|
|
else
|
|
{
|
|
//验证项目号
|
|
HouseLotProjectCode(LotNo, WorkPoint);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 库存验证项目号
|
|
/// </summary>
|
|
/// <param name="LotNo">条码</param>
|
|
/// <param name="WorkPoint">站点</param>
|
|
/// <param name="TransCode">源头单据</param>
|
|
/// <returns></returns>
|
|
public string HouseLotProjectCode(string LotNo, string WorkPoint)
|
|
{
|
|
// conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
//验证条码项目号是否相同
|
|
string sql = @"select ProjectCode from ICSExtension where WorkPoint='{1}' and id in (select ExtensionID from ICSInventoryLot where WorkPoint='{1}' and LotNo='{0}' )";
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("条码对应项目号不符!");
|
|
}
|
|
else
|
|
{
|
|
//验证批次
|
|
HouseLotBatchCode(LotNo, WorkPoint);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
|
|
}
|
|
return null;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 库存验证批次
|
|
/// </summary>
|
|
/// <param name="LotNo">条码</param>
|
|
/// <param name="WorkPoint">站点</param>
|
|
/// <param name="TransCode">源头单据</param>
|
|
/// <returns></returns>
|
|
public string HouseLotBatchCode(string LotNo, string WorkPoint)
|
|
{
|
|
// conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
//验证条码批次是否相同
|
|
string sql = @"select BatchCode from ICSExtension where WorkPoint='{1}' and id in (select ExtensionID from ICSInventoryLot where WorkPoint='{1}' and LotNo='{0}' )";
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("条码对应批次不符!");
|
|
}
|
|
else
|
|
{
|
|
//验证自由项
|
|
HouseLotcFree(LotNo, WorkPoint);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
|
|
}
|
|
return null;
|
|
}
|
|
/// <summary>
|
|
/// 库存验证自由项
|
|
/// </summary>
|
|
/// <param name="LotNo">条码</param>
|
|
/// <param name="WorkPoint">站点</param>
|
|
/// <param name="TransCode">源头单据</param>
|
|
/// <returns></returns>
|
|
public string HouseLotcFree(string LotNo, string WorkPoint)
|
|
{
|
|
//conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
//验证条码自由项是否相同
|
|
string sql = @"select ProjectCode from ICSExtension where WorkPoint='{1}' and id in (select ExtensionID from ICSInventoryLot where WorkPoint='{1}' and LotNo='{0}' )";
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("条码对应自由项不符!");
|
|
}
|
|
else
|
|
{
|
|
//验证批次
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 入库条码验证
|
|
/// </summary>
|
|
/// <param name="LotNo"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <param name="TransCode"></param>
|
|
/// <returns></returns>
|
|
public string HouseLotoOut(string LotNo, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
string sqllist = @" select * from ICSWareHouseLotInfo where lotno ='{0}' and WorkPoint='{1}'";
|
|
sqllist = string.Format(sqllist, LotNo, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sqllist, cmd);
|
|
if (table.Rows.Count >0)
|
|
{
|
|
throw new Exception("条码已入库!");
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Dispose();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检验物料是否需要检验
|
|
/// </summary>
|
|
/// <param name="InvCode">物料</param>
|
|
/// <param name="WorkPoint">站点</param>
|
|
/// <returns></returns>
|
|
public Double LotoTest(string Lotno, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
string Info;
|
|
int InvIQC = 0;
|
|
///根据物料+站点查询数据
|
|
string sql = @"select InvIQC from ICSInventory where InvCode=(SELECT InvCode FROM ICSInventoryLot WHERE LOTNO='{0}' and WorkPoint='{1}') and WorkPoint='{1}' ";
|
|
sql = string.Format(sql, Lotno, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow item in table.Rows)
|
|
{
|
|
InvIQC = Convert.ToInt32(item["InvIQC"]);
|
|
|
|
}
|
|
if (InvIQC == 1)
|
|
{
|
|
Double num = QualifiedQuantity(Lotno, WorkPoint);
|
|
return num;
|
|
}
|
|
else
|
|
{
|
|
//查询条码数量
|
|
return 0.0;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("该物料没有数据!");
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 需要检验的取检验表的数量
|
|
/// </summary>
|
|
/// <param name="Lotno"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <param name="InvCode"></param>
|
|
/// <returns></returns>
|
|
public double QualifiedQuantity(string Lotno, string WorkPoint)
|
|
{
|
|
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
double qualifiedQuantity = 0;//合格数量
|
|
double waiveQuantity = 0;//特采数量
|
|
double totalQuantity = 0;//总数量
|
|
string sql = @"select * from ICSInspection where Lotno='{0}' and WorkPoint='{1}' and InvCode=(SELECT InvCode FROM ICSInventoryLot WHERE LOTNO='{0}' and WorkPoint='{1}')";
|
|
sql = string.Format(sql, Lotno, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("该条码没有检验!");
|
|
}
|
|
else
|
|
{
|
|
foreach (DataRow item in table.Rows)
|
|
{
|
|
qualifiedQuantity = Convert.ToDouble(item["QualifiedQuantity"]);
|
|
waiveQuantity = Convert.ToDouble(item["WaiveQuantity"]);
|
|
totalQuantity = qualifiedQuantity + waiveQuantity;
|
|
}
|
|
return totalQuantity;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 验证是否到货
|
|
/// </summary>
|
|
/// <param name="POID"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public bool DeliveryNotice(string LOTNO, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
string sql = @"select
|
|
a.ID,
|
|
H.ContainerCODE,
|
|
H.ContainerName,
|
|
A.InvCode,
|
|
F.InvName,
|
|
F.InvStd,
|
|
a.Quantity,
|
|
F.InvUnit,
|
|
F.AmountUnit,
|
|
E.ProjectCode,
|
|
E.BatchCode,
|
|
E.Version,
|
|
E.Brand,
|
|
c.POCode as TransCode,--来源单据
|
|
c.Sequence as TransSequence,--来源行号
|
|
A.LotNo,
|
|
E.cFree1,
|
|
E.cFree2,
|
|
E.cFree3,
|
|
E.cFree4,
|
|
E.cFree5,
|
|
E.cFree6,
|
|
E.cFree7,
|
|
E.cFree8,
|
|
E.cFree9,
|
|
E.cFree10
|
|
FROM ICSInventoryLot A
|
|
LEFT JOIN ICSInventoryLotDetail B ON A.LotNo =B.LotNo
|
|
LEFT JOIN ICSPurchaseOrder C ON b.TransCode=C.POCode AND C.Sequence=B.TransSequence
|
|
LEFT JOIN ICSExtension E ON E.ID=A.ExtensionID
|
|
LEFT JOIN ICSInventory F ON A.InvCode=F.InvCode
|
|
LEFT JOIN ICSContainerLot G ON A.LotNo =G.LotNo
|
|
LEFT JOIN ICSContainer H ON H.ContainerID=G.ID where a.lotno='{0}' and a.WorkPoint ='{1}'";
|
|
sql = string.Format(sql, LOTNO, WorkPoint);
|
|
DataTable dataTable = DBHelper.SQlReturnData(sql, cmd);
|
|
if (dataTable.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("请先到货" + LOTNO);
|
|
}
|
|
else
|
|
{
|
|
bool ttt = true;
|
|
return ttt;
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询送货单是否存在
|
|
/// </summary>
|
|
/// <param name="LotNo"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public bool SNDetail(string LotNo, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
string sql = @"select * from ICSASNDetail where LotNo='{0}' and WorkPoint='{1}'";
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
DataTable data = DBHelper.SQlReturnData(sql, cmd);
|
|
if (data.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("送货单不存在!");
|
|
}
|
|
else
|
|
{
|
|
bool num = DeliveryNotice(LotNo, WorkPoint);
|
|
return num;
|
|
|
|
}
|
|
|
|
}
|
|
#region 验证库存是否存在
|
|
/// <summary>
|
|
/// 验证库存是否存在
|
|
/// </summary>
|
|
/// <param name="LotNo"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public bool HouseLotInfo(string LotNo, string WorkPoint, string type)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
string sql = @"select * from ICSWareHouseLotInfo where LotNo='{0}' and WorkPoint='{1}'";
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
DataTable data = DBHelper.SQlReturnData(sql, cmd);
|
|
if (data.Rows.Count < 0) {
|
|
switch (type)
|
|
{
|
|
case "退货":
|
|
throw new Exception("该条码已入库!");
|
|
case "发货":
|
|
throw new Exception("该条码无库存!");
|
|
case "其它入库":
|
|
throw new Exception("该条码已入库!");
|
|
case "委外发料":
|
|
throw new Exception("该条码不存在!");
|
|
|
|
}
|
|
}
|
|
//else
|
|
//{
|
|
// throw new Exception("该条码不存在!");
|
|
//}
|
|
return true;
|
|
}
|
|
#endregion
|
|
public bool PurchaseOrder(string LotNo, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
string sql = @"select* from ICSPurchaseOrder where POCode=( select TransCode from ICSInventoryLotDetail where lotno='{0}' and WorkPoint='{1}')
|
|
and Sequence=( select TransSequence from ICSInventoryLotDetail where lotno='{0}' and WorkPoint='{1}') and Status=1";
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
DataTable data = DBHelper.SQlReturnData(sql, cmd);
|
|
if (data.Rows.Count > 0)
|
|
{
|
|
throw new Exception("该条码没有审核,请先审核!");
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 库存是否存在/是否审核
|
|
/// </summary>
|
|
/// <param name="CheckCode"></param>
|
|
/// <returns></returns>
|
|
public bool isCheck(string CheckCode, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
int num;
|
|
try
|
|
{
|
|
string sql = @"select * from ICSCheck where CheckCode='{0}' and WorkPoint='{1}'";
|
|
sql = string.Format(sql, CheckCode, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count > 0)
|
|
{
|
|
string sqlInfro = @"select * from ICSCheck where CheckCode='{0}' and WorkPoint='{1}' and Status='2'";
|
|
sqlInfro = string.Format(sqlInfro, CheckCode, WorkPoint);
|
|
DataTable dataTable = DBHelper.SQlReturnData(sqlInfro, cmd);
|
|
if (dataTable.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("该盘点没有审核,请先审核!");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("该盘点不存在!");
|
|
}
|
|
return true;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
|
|
throw;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 目标仓库是否一致
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool iSLocationCode(string lotno, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
int num;
|
|
try
|
|
{
|
|
//库存仓库库位和调拨单是否一致
|
|
string sql = @"select * from ICSTransfer where fromWarehouseCode in (select WarehouseCode from ICSWareHouseLotInfo where lotno='{0}' and WorkPoint='{1}')";
|
|
sql = string.Format(sql, lotno, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
|
|
string sqliNFO = @"select * from ICSTransfer where InvCode in (select InvCode from ICSWareHouseLotInfo where lotno='{0}' and WorkPoint='{1}')";
|
|
sqliNFO = string.Format(sqliNFO, lotno, WorkPoint);
|
|
DataTable tableiNFO = DBHelper.SQlReturnData(sqliNFO, cmd);
|
|
if (table.Rows.Count > 0)
|
|
{
|
|
if (tableiNFO.Rows.Count > 0)
|
|
{
|
|
string sqlInfro = @"select * from ICSWareHouseLotInfo where lotno='{0}' and WorkPoint='{1}' and Quantity>0";
|
|
sqlInfro = string.Format(sqlInfro, lotno, WorkPoint);
|
|
DataTable dataTable = DBHelper.SQlReturnData(sqlInfro, cmd);
|
|
if (dataTable.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("调拨单库存为0!");
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("物料不一致!");
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("仓库不一致!");
|
|
}
|
|
|
|
|
|
|
|
}
|
|
catch (Exception)
|
|
{
|
|
|
|
throw;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 调拨单
|
|
/// </summary>
|
|
/// <param name="TransCode"></param>
|
|
/// <param name="TransSequence"></param>
|
|
/// <param name="CurrentQuantity"></param>
|
|
/// <param name="LotNo"></param>
|
|
/// <returns></returns>
|
|
public bool isTransfer(string TransCode, string TransSequence, double CurrentQuantity, string LotNo, string WarehouseCode, string LocationCode, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
int num;
|
|
|
|
///调拨单是否关闭
|
|
string sql = @"select * from ICSTransfer where TransferNO='{0}' and Sequence='{1}' and Status='3'";
|
|
sql = string.Format(sql, TransCode, TransSequence);
|
|
DataTable dataTable = DBHelper.SQlReturnData(sql, cmd);
|
|
if (dataTable.Rows.Count <= 0)
|
|
{
|
|
string sqlInfo = @" select * from ICSWareHouseLotInfo where {0}<=Quantity and LotNo='{1}' ";
|
|
sqlInfo = string.Format(sqlInfo, CurrentQuantity, LotNo);
|
|
DataTable data = DBHelper.SQlReturnData(sqlInfo, cmd);
|
|
if (data.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("输入数量大于库存数量!");
|
|
}
|
|
else
|
|
{
|
|
string sqlInfoList = @" select * from ICSWareHouseLotInfo where WarehouseCode='{0}' and LocationCode='{1}' and LotNo='{2}' and WorkPoint='{3}'";
|
|
sqlInfoList = string.Format(sqlInfoList, WarehouseCode, LocationCode, LotNo, WorkPoint);
|
|
DataTable dataList = DBHelper.SQlReturnData(sqlInfoList, cmd);
|
|
if (dataList.Rows.Count > 0)
|
|
{
|
|
throw new Exception("调拨库位/仓库 跟目标库位/仓库一致无需调拨");
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("调拨单已关闭,不可提交!");
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 条码验证
|
|
/// </summary>
|
|
/// <param name="LotNo"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <param name="TransCode"></param>
|
|
/// <returns></returns>
|
|
public string LotoOut(string LotNo, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
string sqllist = @" select * from ICSInventoryLot where lotno ='{0}' and WorkPoint='{1}'";
|
|
sqllist = string.Format(sqllist, LotNo, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sqllist, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("条码不存在!");
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
//conn.Dispose();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 其它入库单据是否存在
|
|
/// </summary>
|
|
/// <param name="TransCode"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public bool IsOtherOut(string TransCode, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
string sqllist = @" select * from ICSOtherOut where OutCode ='{0}' and WorkPoint='{1}'";
|
|
sqllist = string.Format(sqllist, TransCode, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sqllist, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("单据不存在!");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
//conn.Dispose();
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 库存是否为0
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool isStockZero(string LotNo, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
try
|
|
{
|
|
string sqllist = @" select * from ICSWareHouseLotInfo where LotNo ='{0}' and WorkPoint='{1}' and Quantity>0";
|
|
sqllist = string.Format(sqllist, LotNo, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sqllist, cmd);
|
|
if (table.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("库存数量为0!");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//cmd.Transaction.Rollback();
|
|
log.Error(ex.Message);
|
|
throw new Exception(ex.Message);
|
|
}
|
|
finally
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
//conn.Dispose();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 其它出库验证
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool iSNullLocationCode(string lotno, string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
int num;
|
|
try
|
|
{
|
|
//库存仓库库位和调拨单是否一致
|
|
string sql = @"select * from ICSOtherOut where WHCode in (select WarehouseCode from ICSWareHouseLotInfo where lotno='{0}' and WorkPoint='{1}')";
|
|
sql = string.Format(sql, lotno, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
|
|
string sqliNFO = @"select * from ICSOtherOut where InvCode in (select InvCode from ICSWareHouseLotInfo where lotno='{0}' and WorkPoint='{1}')";
|
|
sqliNFO = string.Format(sqliNFO, lotno, WorkPoint);
|
|
DataTable tableiNFO = DBHelper.SQlReturnData(sqliNFO, cmd);
|
|
if (table.Rows.Count > 0)
|
|
{
|
|
if (tableiNFO.Rows.Count > 0)
|
|
{
|
|
string sqlInfro = @"select * from ICSWareHouseLotInfo where lotno='{0}' and WorkPoint='{1}' and Quantity>0";
|
|
sqlInfro = string.Format(sqlInfro, lotno, WorkPoint);
|
|
DataTable dataTable = DBHelper.SQlReturnData(sqlInfro, cmd);
|
|
if (dataTable.Rows.Count <= 0)
|
|
{
|
|
throw new Exception("库存为0!");
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("物料不一致!");
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("仓库不一致!");
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
throw;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证拆卸单是否存在
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool isBoolDisassemblyDoc(string DABDOCCode ,string WorkPoint)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
bool num = true;
|
|
try
|
|
{
|
|
string sql = @"select * from ICSDisassemblyDoc where DABDOCCode ='{0}' and WorkPoint='{1}')";
|
|
sql = string.Format(sql, DABDOCCode, WorkPoint);
|
|
table = DBHelper.SQlReturnData(sql, cmd);
|
|
if (table.Rows.Count>0)
|
|
{
|
|
return num;
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("拆卸单不存在!");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 委外发料
|
|
/// </summary>
|
|
/// <param name="LotNo"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <returns></returns>
|
|
public bool Outsourcing(string LotNo, string WorkPoint, string TransCode)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
string sql = @"select * from ICSWareHouseLotInfo where LotNo='{0}' and WorkPoint='{1}' and InvCode in (select A.InvCode from ICSOOPick a where LotNo='{0}')";
|
|
///*left join ICSOutsourcingOrder b on a.OODetailID =b.OODetailID where OOcode='{1}' AND a.WorkPoint='{2}'*/)
|
|
sql = string.Format(sql, LotNo, WorkPoint);
|
|
DataTable data = DBHelper.SQlReturnData(sql, cmd);
|
|
if (data.Rows.Count <0)
|
|
{
|
|
throw new Exception("条码与物料不符!");
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 委外到货
|
|
/// </summary>
|
|
/// <param name="LotNo"></param>
|
|
/// <param name="WorkPoint"></param>
|
|
/// <param name="TransCode"></param>
|
|
/// <returns></returns>
|
|
public bool OutsourcingChre(string LotNo, string WorkPoint, string TransCode)
|
|
{
|
|
if (conn.State == ConnectionState.Open)
|
|
{
|
|
conn.Close();
|
|
}
|
|
conn.Open();
|
|
SqlTransaction sqlTran = conn.BeginTransaction();
|
|
SqlCommand cmd = new SqlCommand();
|
|
cmd.Transaction = sqlTran;
|
|
cmd.Connection = conn;
|
|
DataTable table;
|
|
string sql = @"select * from ICSODeliveryNotice where OASNCode='{0}' and WorkPoint='{1}' ";
|
|
sql = string.Format(sql, TransCode, WorkPoint);
|
|
DataTable data = DBHelper.SQlReturnData(sql, cmd);
|
|
if (data.Rows.Count > 0)
|
|
{
|
|
throw new Exception("条码与物料不符!");
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
}
|
|
}
|