using System; using System.Collections.Generic; using System.Text; using System.Data; using Kingdee.BOS.WebApi.Client; namespace BLL { public class ClsKf_SellOutBill { /// /// 根据过滤条件,返回源单信息-销售订单列表 /// /// 过滤条件 /// 错误信息 /// public DataSet GetXs_SeOrderBillList(string sWhere, ref string sErr) { try { DAL.Cls_S_IF_SEOrderBill_Lite dal = new DAL.Cls_S_IF_SEOrderBill_Lite(); return dal.DisSourceBillList(sWhere); } catch (Exception e) { sErr = sErr + "," + e.Message; return null; } } /// /// 根据过滤条件,返回源单信息-下架通知单列表 /// /// 过滤条件 /// 错误信息 /// public DataSet GetXs_SeDownStockBillList(string sWhere, ref string sErr) { try { DAL.Cls_S_Xs_SeDownStockBill_Lite dal = new DAL.Cls_S_Xs_SeDownStockBill_Lite(); return dal.DisSourceBillList(sWhere); } catch (Exception e) { sErr = sErr + "," + e.Message; return null; } } /// /// 根据过滤条件,返回源单信息-发货通知单列表 /// /// /// /// public DataSet GetXs_SeOutStockBillList(string sWhere, ref string sErr) { try { DAL.Cls_S_IF_SeOutStockBill_Lite dal = new DAL.Cls_S_IF_SeOutStockBill_Lite(); return dal.DisSourceBillList(sWhere); } catch (Exception e) { sErr = sErr + "," + e.Message; return null; } } //生成销售出库单 public bool set_SaveSellOutBill_New(Model.ClsKf_SellOutBillMain oMain, string sHSourceType, ref string sErrMsg) { string sHBillNo = ""; //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } // if (oSystemParameter.omodel.Kf_SellOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (oSystemParameter.omodel.WMS_CampanyName == "飞龙") //系统参数 客户定制化名称 空白为通用 { if (SaveSellOutBill_MulSource_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sHBillNo, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } else { if (SaveSellOutBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } } if (oSystemParameter.omodel.Kf_SellOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveSellOutBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存销售出库单失败!" + sErrMsg; return false; } #region 销售出库K3 * /// /// 生成销售出库单K3 /// /// /// /// public bool SaveSellOutBill_K3(Model.ClsKf_SellOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_SellOutBill dal = new DAL.ClsKf_SellOutBill(); 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_SellOutBillSub_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('1205','1205'," + 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_SellOutBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "1401") //销售订单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOut_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateBillRelateData_SeOrder_New " + oMain.HInterID.ToString()); } else if (sHSourceType == "1402") //发货通知单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockToSellOut_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateBillRelateData_SeOutStock_New " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); } //审核单据 if (oSystemParameterMain.Kf_SellOutBill_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_SellOutBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateOrderStock_New " + 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; } } //同步生成采购入库单 if (oSystemParameterMain.Kf_SellOutBill_AutoSavePOStockInBill == "Y") //系统参数 同步生成采购入库单 { //判断所登录用户账号是否绑定了对应供应商 DataSet Ds2 = oCn.RunProcReturn(" select HSupID from Gy_Czygl where Czymc= '" + oMain.HMaker + "'", "Gy_Czygl"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0) { sErrMsg = "所登录用户账号不正确,请重新登录!"; oCn.RollBack(); return false; } else if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HSupID"]) == 0) { sErrMsg = "所登录用户账号没有绑定对应供应商,无法同步生成外购入库单,生成单据失败,请先设置对应供应商!"; oCn.RollBack(); return false; } long HNewInterID = DBUtility.ClsPub.CreateBillID_Prod("1201", ref sErrMsg); string HNewBillNo = DBUtility.ClsPub.CreateBillCode_Prod("1201", ref sErrMsg, true); string HNewSourceType = "-1"; //无源单 //新增ERP子表、主表 oCn.RunProc("exec h_p_Kf_SellOutBill_AutoSavePOStockInBill " + oMain.HInterID.ToString() + "," + HNewInterID + ",'" + HNewBillNo + "'"); //新增K3子表、主表 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_Insert_New " + HNewInterID + ",'" + HNewBillNo + "'," + oMain.HBillerID.ToString() + ",'" + HNewSourceType + "'"); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateBillRelateData_New " + HNewInterID); //审核单据 if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HNewInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_Check_New " + HNewInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateStock_New " + HNewInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateOrderStock_New " + HNewInterID); } } sErrMsg = "新增单据成功!"; oCn.Commit(); return true; } catch (Exception e) { sErrMsg = "生成销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 销售出库K3 多源单生成多张单据 * /// /// 生成销售出库单K3 /// /// /// /// public bool SaveSellOutBill_MulSource_K3(Model.ClsKf_SellOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sHBillNo, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_SellOutBill dal = new DAL.ClsKf_SellOutBill(); dal.omodel = oMain; sHBillNo = ""; //上传前必填项判断 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; } //同步生成采购入库单,判断用户是否绑定供应商 if (oSystemParameterMain.Kf_SellOutBill_AutoSavePOStockInBill == "Y") //系统参数 同步生成采购入库单 { //判断所登录用户账号是否绑定了对应供应商 DataSet Ds2 = oCn.RunProcReturn(" select HSupID from Gy_Czygl where Czymc= '" + oMain.HMaker + "'", "Gy_Czygl"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0) { sErrMsg = "所登录用户账号不正确,请重新登录!"; return false; } else if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HSupID"]) == 0) { sErrMsg = "所登录用户账号没有绑定对应供应商,无法同步生成外购入库单,生成单据失败,请先设置对应供应商!"; return false; } } try { Int64 HNewInterID = 0; string HNewBillNo = ""; Int64 HCusID = 0; oCn.BeginTran(); //根据单据ID获取条码出入库临时表中源单单据客户有哪几个 DataSet DsCus = oCn.RunProcReturn("exec h_p_Kf_GetCusIDByTemp_SellOut " + oMain.HInterID.ToString() + "," + oMain.HSupID.ToString(), "h_p_Kf_GetCusIDByTemp_SellOut"); if (DsCus == null || DsCus.Tables[0].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; return false; } else { for (int i = 0; i < DsCus.Tables[0].Rows.Count; i++) { int j = i + 1; HCusID = Pub_Class.ClsPub.isLong(DsCus.Tables[0].Rows[i][0]); //重新获取销售出库单单据内码、单据号 if (i == 0) { HNewInterID = oMain.HInterID; HNewBillNo = oMain.HBillNo + "-" + j; } else { HNewInterID = DBUtility.ClsPub.CreateBillID_Prod("1205", ref sErrMsg); HNewBillNo = oMain.HBillNo + "-" + j; } //判断会计期是否合理 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; //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_SellOutBillSub_Insert_MulCus " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'," + HNewInterID + ",'" + HNewBillNo + "'," + HCusID); //插入主表 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('1205','1205'," + HNewInterID + ",'" + HNewBillNo + "',convert(varchar(10),getdate(),120),'" + oMain.HMainSourceBillType + "'" + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + HCusID + "," + 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_SellOutBill_Insert_New " + HNewInterID + ",'" + HNewBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "1401") //销售订单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOut_Add " + HNewInterID); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateBillRelateData_SeOrder_New " + HNewInterID); } else if (sHSourceType == "1402") //发货通知单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockToSellOut_Add " + HNewInterID); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateBillRelateData_SeOutStock_New " + HNewInterID); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateBillRelateData_New " + HNewInterID); } //审核单据 if (oSystemParameterMain.Kf_SellOutBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HNewInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_Check_New " + HNewInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateStock_New " + HNewInterID); oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateOrderStock_New " + HNewInterID); } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断条码库存是否异常(负库存、库存大于条码初始化) DataSet Ds = oCn.RunProcReturn("EXEC h_p_KF_ICInventoryBarCodeQtyCtrl " + HNewInterID, "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; } } //同步生成采购入库单 if (oSystemParameterMain.Kf_SellOutBill_AutoSavePOStockInBill == "Y") //系统参数 同步生成采购入库单 { long HPOStockInInterID = DBUtility.ClsPub.CreateBillID_Prod("1201", ref sErrMsg); string HPOStockInBillNo = "CG-" + oMain.HBillNo + "-" + j; string HPOStockInSourceType = "-1"; //无源单 //新增ERP子表、主表 oCn.RunProc("exec h_p_Kf_SellOutBill_AutoSavePOStockInBill " + HNewInterID + "," + HPOStockInInterID + ",'" + HPOStockInBillNo + "'"); //新增K3子表、主表 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_Insert_New " + HPOStockInInterID + ",'" + HPOStockInBillNo + "'," + oMain.HBillerID.ToString() + ",'" + HPOStockInSourceType + "'"); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateBillRelateData_New " + HPOStockInInterID); //审核单据 if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HPOStockInInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_Check_New " + HPOStockInInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateStock_New " + HPOStockInInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateOrderStock_New " + HPOStockInInterID); } } //单据号 if (sHBillNo == "") { sHBillNo = HNewBillNo; } else { sHBillNo = sHBillNo + ",'" + HNewBillNo + "'"; } } } sErrMsg = "新增单据成功!"; oCn.Commit(); return true; } catch (Exception e) { sErrMsg = "生成销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 销售出库CLOUD * public bool set_SaveSellOutBill_CLD(Model.ClsKf_SellOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (SaveSellOutBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } private bool SaveSellOutBill_CLD(Model.ClsKf_SellOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; // oCn.BeginTran(); //写入WMS销售出库单 //插入子表 oCn.RunProc("EXEC h_p_Kf_SellOutBillSub_Insert " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'"); //插入主表 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('1205','1205'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),'" + oMain.HMainSourceBillType + "'" + ",2012,1,'" + 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) + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_SellOutBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); } //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Custom = ""; if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_Custom = "\"F_CPH\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CPH"]) + "\"," + //车牌号 "\"F_THR\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_THR"]) + "\"," + //提货人 "\"F_THDH\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_THDH"]) + "\","; //提货电话 } else { sJson_Custom = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " + //\"FID\":" + oMain.HInterID.ToString() + "," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + // "\"FDate\":\"" + oMain.HDate .ToShortDateString()+ "\"," + "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSaleOrgID"]) + "\" }," + "\"FCustomerID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HCusNumber"]) + "\" }," + "\"FSalesManID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSalesManID"]) + "\" }," + "\"FSaleDeptID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleDeptID"]) + "\" }," + "\"FSalesGroupID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSalesGroupID"]) + "\" }," + "\"FDELIVERYDEPTID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDELIVERYDEPTID"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HStockOrgID"]) + "\" }," + "\"FReceiverID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HReceiverNumber"]) + "\" }," + "\"FSettleID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSettleNumber"]) + "\" }," + //"\"FPayerID\":{ \"FNumber\":\"" + oMain.HSupID.ToString() + "\" }," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FIsTotalServiceOrCost\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsTotalServiceOrCost"]) + "," + sJson_Custom + "\"SubHeadEntity\":{ \"FSettleCurrID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrID"]) + "\" }}," + "\"FSettleOrgID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSettleOrgID"]) + "\" }," + //"\"FIsIncludedTax\": true ," + "\"FLocalCurrID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FLocalCurrID"]) + "\" }," + "\"FExchangeTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FExchangeTypeID"]) + "\" }," + //"\"FExchangeRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FExchangeRate"]) + "\"," + //"\"FIsPriceExcludeTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "\"," + "\"FEntity\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } string sJson_BatchNo = ""; string sJson_StockPlace = ""; string sJson_F_PPPL = ""; if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HISBATCHMANAGE"]) == "1") //是否启用批次管理 { sJson_BatchNo = " \"FLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"}, \"FLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\" , "; } else { sJson_BatchNo = ""; } if (oSystemParameterMain.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { sJson_StockPlace = "\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}},"; } else if (oSystemParameterMain.WMS_CampanyName == "韩电") { if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) == "") { sJson_StockPlace = ""; } else { sJson_StockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}},"; } sJson_F_PPPL = "\"F_PPPL\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PPPL"]) + "\" },"; //品牌品类 } else { if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) == "") { sJson_StockPlace = ""; } else { sJson_StockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}},"; } } //自定义字段处理 // sJson_Entry = sJson_Entry + " { \"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "\"," + "\"FMustQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "\"," + "\"FIsFree\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsFree"]) + "\"," + "\"FOwnerTypeID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeID"]) + "\"," + "\"FOwnerID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HOwnerID"]) + "\" }," + "\"FEntryTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "\"," + "\"FStockID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockID"]) + "\" }," + sJson_StockPlace + //"\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}}," + "\"FStockStatusID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusID"]) + "\" }," + "\"FSalUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSalUnitID"]) + "\" }," + "\"FSALUNITQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSALUNITQTY"]) + "\"," + "\"FSALBASEQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSALBASEQTY"]) + "\"," + "\"FPRICEBASEQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEBASEQTY"]) + "\"," + "\"FOUTCONTROL\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOUTCONTROL"]) + "\"," + "\"FIsOverLegalOrg\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsOverLegalOrg"]) + "\"," + "\"FARNOTJOINQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FARNOTJOINQTY"]) + "\"," + //"\"F_PAEZ_Text\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PAEZ_Text"]) + "\"," + //"\"F_PAEZ_Text1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PAEZ_Text1"]) + "\"," + sJson_BatchNo + //"\"FLot\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\" }," + //"\"FCheckDelivery\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FSOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOORDERNO"]) + "\"," + "\"FSRCTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCTYPE"]) + "\"," + "\"FBASEMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEMUSTQTY"]) + "," + "\"FSALBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSALBASENUM"]) + "," + "\"FSTOCKBASEDEN\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "," + "\"FPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HPrice"]) + "\"," + "\"FTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HTaxPrice"]) + "\"," + "\"FOWNERID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HOWNERID"]) + "\" }," + "\"FSOENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOENTRYID"]) + "\"," + sJson_F_PPPL + "\"FEntity_Link\": [ { " + "\"FEntity_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + "\"FEntity_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + "\"FEntity_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"," + " } ] } "; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //生成 销售出库 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, Pub_Class.ClsPub.sCLOUDUseName, Pub_Class.ClsPub.sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_OUTSTOCK", sJson }); if (oSystemParameterMain.Kf_SellOutBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SAL_OUTSTOCK", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SAL_OUTSTOCK", sJson3 }); HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); } else { HReturn = result.ToString(); } if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成销售出库单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { if (oSystemParameterMain.WMS_CampanyName == "韩电") { //销售出库时反写发货通知单、销售订单 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_XSLX"]) == "外销") { //外销反写发货通知单、销售订单数量 oCn.RunProc("EXEC h_p_ToCLD_BackDataDELIVERYNOTICE '" + oMain.HBillNo + "'"); } else if (Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_XSLX"]) == "内销" || Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_XSLX"]) == "OEM" || Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_XSLX"]) == "电商") { //内销、OEM和电商 关闭发货通知单、销售订单 oCn.RunProc("EXEC h_p_ToCLD_BackDataDELIVERYNOTICE_Close '" + oMain.HBillNo + "'"); } } oCn.Commit(); return true; } } else { sErrMsg = "生成销售出库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion } }