using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace BLL
{
public class ClsSc_AssemblyBill
{
///
/// 扫描成品条码 并返回相关信息,判断是否有效条码
///
/// 成品编码
/// 单据类型
/// 任务单号
/// 成品条码
/// 成品内码
/// 成品名称
/// 单据号
/// 单据内码
/// 错误信息
///
public bool Get_Assembly_CPBarCode(string sCPCode, string HBillType, ref string sICMOBillNo, ref string sCPBarCode, ref Int64 sCPMaterID, ref string sCPMaterName, ref string sBillNo, ref Int64 sInterID, ref string sErrMsg)
{
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
//
try
{
//判断所扫描条码是否有效
if (dal.GetInfoByNumber_View(sCPCode))
{
//判断成品条码是否存在组装单记录
DataSet ds = oCn.RunProcReturn("exec h_p_Sc_AssemblyBill_CPBarCode '" + sCPCode + "'", "h_p_Sc_AssemblyBill_CPBarCode");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
sErrMsg = "扫描成品条码信息,未知错误!";
return false;
}
else
{
//已存在组装单记录,编辑状态,获取原组装单单据内码、单据号
if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "Modify")
{
sICMOBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HICMOBillNo"]);
sCPBarCode = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HCPBarCode"]);
sCPMaterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HCPMaterID"]);
sCPMaterName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HCPMaterName"]);
sInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HInterID"]);
sBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBillNo"]);
return true;
}
else if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "AddNew")
//不存在组装单记录,新增状态,获取最大组装单单据内码、单据号
{
sICMOBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HICMOBillNo"]);
sCPBarCode = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HCPBarCode"]);
sCPMaterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HCPMaterID"]);
sCPMaterName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HCPMaterName"]);
sInterID = DBUtility.ClsPub.CreateBillID_Prod(HBillType, ref sErrMsg);
sBillNo = DBUtility.ClsPub.CreateBillCode_Prod(HBillType, ref sErrMsg, true);
return true;
}
else
{
sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]);
return false;
}
}
}
else
{
sErrMsg = "无效条码";
return false;
}
}
catch (Exception e)
{
sErrMsg = "扫描成品条码失败!" + e.Message;
return false;
}
}
///
/// 扫描配件条码 并返回相关信息,判断是否有效条码
///
/// 配件代码
/// 成品代码
/// 内码
/// 单据号
/// 制单人
/// 操作员
/// SN号
/// 错误信息
///
public bool Get_Assembly_PJBarCode(string sPJCode, string sCPCode, long sInterID, string sBillNo, string sMaker, long HWorkerID, string HSNNumber, ref string sErrMsg)
{
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View();
//
try
{
if (dal.GetInfoByNumber_View(sPJCode))
{
if (sPJCode == sCPCode)
{
sErrMsg = "所扫描配件条码与成品条码不允许相同!";
return false;
}
DataSet ds = oCn.RunProcReturn("exec h_p_Sc_AssemblyBill_PJBarCode '" + sPJCode + "','" + sCPCode + "'," + sInterID.ToString() + ",'" + sBillNo + "','" + sMaker + "'," + HWorkerID.ToString() + ",'" + HSNNumber + "'", "h_p_Sc_AssemblyBill_PJBarCode");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
sErrMsg = "扫描配件条码信息,未知错误!";
return false;
}
else
{
if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0)
{
return true;
}
else
{
sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
return false;
}
}
}
else
{
sErrMsg = "无效条码";
return false;
}
}
catch (Exception e)
{
sErrMsg = "扫描配件条码失败!" + e.Message;
return false;
}
}
///
/// 根据内码 返回组装单信息
///
/// 内码
/// 单据类型
/// 过滤条件
///
public DataSet GetSc_AssemblyBill(long HInterID, string sBillType, string sWhere,ref string sErr)
{
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
//
try
{
DataSet DS = oCn.RunProcReturn("exec h_p_Sc_AssemblyBillList " + HInterID, "h_p_Sc_AssemblyBillList");
//DataSet DS = oCn.RunProcReturn("Select * from h_v_Sc_AssemblyBill Where HInterID=" + HInterID.ToString() + " and HBillType='" + sBillType + "' " + sWhere, "h_v_Sc_AssemblyBill", ref DBUtility.ClsPub.sExeReturnInfo);
if (DS == null || DS.Tables[0].Rows.Count == 0)
{
return null;
}
else
{
return DS;
}
}
catch (Exception e)
{
sErr = sErr + "," + e.Message;
throw (e);
}
}
///
/// 根据内码及条形码,删除对应数据
///
///
///
///
///
public bool set_DelSc_AssemblyBill(long HInterID, string HBarCode, ref string sErrMsg)
{
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
try
{
oCn.RunProc("Delete from Sc_AssemblyBillSub where HInterID=" + HInterID.ToString() + " and HBarCode='" + HBarCode + "'", ref DBUtility.ClsPub.sExeReturnInfo);
return true;
}
catch (Exception e)
{
sErrMsg = "删除失败!" + e.Message;
return false;
}
}
}
}