using System; using System.Collections.Generic; using System.Text; using System.Data; namespace BLL { public class ClsKf_EntrustInBackBill { /// /// 根据过滤条件,返回源单信息-返回委外入库(蓝字)(红字委外入库源单) /// /// 过滤条件 /// 错误信息 /// 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; } } /// /// 根据过滤条件,返回源单信息-返回委外订单-退库列表(红字委外入库源单) /// /// 过滤条件 /// 错误信息 /// 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; } /// /// 生成委外退库单K3 /// /// /// /// 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; } } } }