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

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;
}
}
}