using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using System.Data;
|
|
namespace BLL
|
{
|
public class ClsKf_EntrustInBackBill
|
{
|
|
/// <summary>
|
/// 根据过滤条件,返回源单信息-返回委外入库(蓝字)(红字委外入库源单)
|
/// </summary>
|
/// <param name="sWhere">过滤条件</param>
|
/// <param name="sErr">错误信息</param>
|
/// <returns></returns>
|
public DataSet GetKf_EntrustInBillList(string sWhere, ref string sErr)
|
{
|
try
|
{
|
DAL.Cls_S_IF_EntrustInBill_Lite dal = new DAL.Cls_S_IF_EntrustInBill_Lite();
|
return dal.DisSourceBillList(sWhere);
|
}
|
catch (Exception e)
|
{
|
sErr = sErr + "," + e.Message;
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// 根据过滤条件,返回源单信息-返回委外订单-退库列表(红字委外入库源单)
|
/// </summary>
|
/// <param name="sWhere">过滤条件</param>
|
/// <param name="sErr">错误信息</param>
|
/// <returns></returns>
|
public DataSet GetWW_WWOrderBackBillList(string sWhere, ref string sErr)
|
{
|
try
|
{
|
DAL.Cls_S_IF_WWOrderBackBill_Lite dal = new DAL.Cls_S_IF_WWOrderBackBill_Lite();
|
return dal.DisSourceBillList(sWhere);
|
}
|
catch (Exception e)
|
{
|
sErr = sErr + "," + e.Message;
|
return null;
|
}
|
}
|
|
|
//生成委外退库单
|
public bool set_SaveEntrustInBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg)
|
{
|
//获取系统参数
|
Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
|
if (oSystemParameter.ShowBill(ref sErrMsg) == false)
|
{
|
sErrMsg = "获取系统参数失败! " + sErrMsg;
|
return false;
|
}
|
//
|
if (oSystemParameter.omodel.Kf_EntrustInBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE
|
{
|
if (SaveEntrustInBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg))
|
{
|
//"保存成功!";
|
sErrMsg = "保存成功!" + oMain.HBillNo;
|
return true;
|
}
|
else
|
{
|
//"保存失败!";
|
sErrMsg = sErrMsg;
|
return false;
|
}
|
}
|
if (oSystemParameter.omodel.Kf_EntrustInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD
|
{
|
|
}
|
|
sErrMsg = "保存委外退库单失败!" + sErrMsg;
|
return false;
|
}
|
|
|
|
/// <summary>
|
/// 生成委外退库单K3
|
/// </summary>
|
/// <param name="oMain"></param>
|
/// <param name="sErrMsg"></param>
|
/// <returns></returns>
|
public bool SaveEntrustInBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg)
|
{
|
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
|
DAL.ClsKf_EntrustInBackBill dal = new DAL.ClsKf_EntrustInBackBill();
|
dal.omodel = oMain;
|
//上传前必填项判断
|
if (oMain.HDeptID == 0)
|
{
|
sErrMsg = "部门没有选择!";
|
return false;
|
}
|
if (oMain.HSupID == 0)
|
{
|
sErrMsg = "供应商没有选择!";
|
return false;
|
}
|
if (oMain.HSecManagerID == 0)
|
{
|
sErrMsg = "验收没有选择!";
|
return false;
|
}
|
if (oMain.HKeeperID == 0)
|
{
|
sErrMsg = "保管没有选择!";
|
return false;
|
}
|
|
try
|
{
|
//判断会计期是否合理
|
string s = "";
|
int sYear = 0;
|
int sPeriod = 0;
|
if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false)
|
{
|
sErrMsg = s;
|
return false;
|
}
|
oMain.HYear = sYear;
|
oMain.HPeriod = sPeriod;
|
|
DataSet Ds;
|
oCn.BeginTran();
|
//生成出入库单据
|
//插入子表
|
oCn.RunProc("EXEC h_p_Kf_EntrustInBackBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'");
|
//插入主表
|
oCn.RunProc("Insert Into Kf_ICStockBillMain " +
|
"(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" +
|
",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
|
",HSupID,HWHID,HSCWHID,HEmpID,HManagerID,HSecManagerID" +
|
",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" +
|
") " +
|
" values('1246','1246'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),'" + oMain.HMainSourceBillType + "'" +
|
", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" +
|
", " + oMain.HSupID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HSecManagerID.ToString() +
|
", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) +
|
") ");
|
|
//新增K3子表、主表
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'");
|
|
//更新关联数量
|
if (sHSourceType == "1601") //委外订单-退库
|
{
|
oCn.RunProc("exec h_p_WW_UpDateRelation_EntrustOrderToEntrustInBack_Add " + oMain.HInterID.ToString());
|
//回填K3关联数量
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_UpdateBillRelateData_EntrustOrder " + oMain.HInterID.ToString());
|
}
|
else if (sHSourceType == "1210") //委外入库单-蓝字
|
{
|
oCn.RunProc("exec h_p_Kf_UpDateRelation_EntrustInToEntrustInBack_Add " + oMain.HInterID.ToString());
|
//回填K3关联数量
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_UpdateBillRelateData_Blue " + oMain.HInterID.ToString());
|
}
|
else if (sHSourceType == "1105") //退料通知单
|
{
|
oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockBackToEntrustInBack_Add " + oMain.HInterID.ToString());
|
//回填K3关联数量
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_UpdateBillRelateData_POInStockBack " + oMain.HInterID.ToString());
|
}
|
else //无源单
|
{
|
//回填K3关联数量
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_UpdateBillRelateData " + oMain.HInterID.ToString());
|
}
|
|
//审核单据
|
if (oSystemParameterMain.Kf_EntrustInBackBill_AutoCheck == "Y") //系统参数 自动审核
|
{
|
//审核单据
|
oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString());
|
|
//审核K3单据
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString());
|
//更新K3库存
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_UpdateStock " + oMain.HInterID.ToString());
|
oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBackBill_UpdateOrderStock " + oMain.HInterID.ToString());
|
}
|
|
//K3负库存判断
|
if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制
|
{
|
//判断条码库存是否异常(负库存、库存大于条码初始化)
|
Ds = oCn.RunProcReturn("EXEC h_p_KF_ICInventoryBarCodeQtyCtrl " + oMain.HInterID.ToString(), "h_p_KF_ICInventoryBarCodeQtyCtrl");
|
if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1)
|
{
|
|
}
|
else
|
{
|
sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0][1]);
|
oCn.RollBack();
|
return false;
|
}
|
}
|
|
sErrMsg = "新增单据成功!";
|
oCn.Commit();
|
return true;
|
}
|
catch (Exception e)
|
{
|
sErrMsg = "生成委外退库单失败!" + e.Message;
|
oCn.RollBack();
|
return false;
|
}
|
}
|
|
|
|
|
}
|
}
|