using Kingdee.BOS.WebApi.Client; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.Services; using System.Data.SqlClient; namespace CLOUDWEB { /// /// WebService1 的摘要说明 /// [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 // [System.Web.Script.Services.ScriptService] public class WebService1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } #region 基础资料 //返回物料列表 同步资料 [WebMethod] public DataSet GetMaterialList(string sWhere, ref string sErr) { DAL.ClsIF_Material_View dal = new DAL.ClsIF_Material_View(); return dal.GetList(sWhere); } //返回工序列表 同步资料 [WebMethod] public DataSet GetProcessList(string sWhere, ref string sErr) { DAL.ClsIF_Process_View dal = new DAL.ClsIF_Process_View(); return dal.GetList(sWhere); } //返回工序列表 同步资料 [WebMethod] public int GetProcessList2(string sWhere) { DAL.ClsIF_Employee_View dal = new DAL.ClsIF_Employee_View(); DataSet ds; ds = dal.GetList(sWhere); if (ds == null) { return -1; } else { return ds.Tables[0].Rows.Count; } } //返回仓库列表 同步资料 [WebMethod] public DataSet GetWarehouseList(string sWhere, ref string sErr) { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); return dal.GetList(sWhere); } //返回供应商列表 同步资料 [WebMethod] public DataSet GetSupplierList(string sWhere, ref string sErr) { DAL.ClsIF_Supplier_View dal = new DAL.ClsIF_Supplier_View(); return dal.GetList(sWhere); } //返回客户列表 同步资料 [WebMethod] public DataSet GetCustomerList(string sWhere, ref string sErr) { DAL.ClsIF_Customer_View dal = new DAL.ClsIF_Customer_View(); return dal.GetList(sWhere); } //返回部门列表 同步资料 [WebMethod] public DataSet GetDepartmentList(string sWhere, ref string sErr) { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); return dal.GetList(sWhere); } //返回职员列表 同步资料 [WebMethod] public DataSet GetEmployeeList(string sWhere, ref string sErr) { DAL.ClsIF_Employee_View dal = new DAL.ClsIF_Employee_View(); return dal.GetList(sWhere); } //返回仓位列表 同步资料 [WebMethod] public DataSet GetStockPlaceList(string sWhere, ref string sErr) { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); return dal.GetList(sWhere); } //返回机台列表 同步资料 [WebMethod] public DataSet GetItem30JiTaiList(string sWhere, ref string sErr) { DAL.ClsIF_Item30JiTai_View dal = new DAL.ClsIF_Item30JiTai_View(); return dal.GetList(sWhere); } //返回不良原因列表 同步资料 [WebMethod] public DataSet GetBadReasonList(string sWhere, ref string sErr) { DAL.ClsIF_BadReason_View dal = new DAL.ClsIF_BadReason_View(); return dal.GetList(sWhere); } //返回生产资源列表 同步资料 [WebMethod] public DataSet GetSourceList(string sWhere, ref string sErr) { DAL.ClsIF_Source_View dal = new DAL.ClsIF_Source_View(); return dal.GetList(sWhere); } //返回盘点方案列表 同步资料 [WebMethod] public DataSet GetStockCheckItemList(string sWhere, ref string sErr) { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("select HItemID,HNumber,HName from Gy_StockCheckItem"+ sWhere, "Gy_StockCheckItem"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErr = "没有返回任何数据!"; return null; } else { return ds; } } //根据代码返回生产资源信息 [WebMethod] public Model.ClsGy_Source_Model GetSourceInfoByNumber(string sWhere, ref string sErr) { DAL.ClsIF_Source_View dal = new DAL.ClsIF_Source_View(); if (dal.GetInfoByNumber(sWhere)) { return dal.omodel; } else { return null; } } //根据名称返回生产资源信息 [WebMethod] public Model.ClsGy_Source_Model GetSourceInfoByName(string sWhere, ref string sErr) { DAL.ClsIF_Source_View dal = new DAL.ClsIF_Source_View(); if (dal.GetInfoByName(sWhere)) { return dal.omodel; } else { return null; } } //根据生产资源ID返回生产资源信息 [WebMethod] public Model.ClsGy_Source_Model GetSourceInfoByID(long sHSource, ref string sErr) { DAL.ClsIF_Source_View dal = new DAL.ClsIF_Source_View(); if (dal.GetInfoByID(sHSource)) { return dal.omodel; } else { return null; } } //-------------------------------------------------------------- //返回班组列表 同步资料 [WebMethod] public DataSet GetGroupList(string sWhere, ref string sErr) { DAL.ClsIF_Group_View dal = new DAL.ClsIF_Group_View(); return dal.GetList(sWhere); } //根据职员代码返回职员信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsGy_Employee_Model GetEmpInfoByNumber(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsIF_Employee_View dal = new DAL.ClsIF_Employee_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据职员ID返回职员信息 [WebMethod] public Model.ClsGy_Employee_Model GetEmpInfoByID(long sItemID, ref string sErr) { DAL.ClsIF_Employee_View dal = new DAL.ClsIF_Employee_View(); if (dal.GetInfoByID(sItemID)) { return dal.omodel; } else { return null; } } //根据供应商代码返回供应商信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsGy_Supplier_Model GetSupInfoByNumber(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsIF_Supplier_View dal = new DAL.ClsIF_Supplier_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据客户代码返回客户信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsGy_Customer_Model GetCusInfoByNumber(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsIF_Customer_View dal = new DAL.ClsIF_Customer_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据代码返回仓位信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsGy_StockPlace_Model GetSPInfoByNumber(string sWhere, long sItemID, string sName, ref string sErr) { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sWhere)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sWhere)) { return dal.omodel; } else { return null; } } } //根据代码返回仓位信息(仓库ID过滤) (判断文本框TAG历史信息) [WebMethod] public Model.ClsGy_StockPlace_Model GetSPInfoByNumber_Wh(string sWhere, long HWHID, long sItemID, string sName, ref string sErr) { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sWhere, HWHID)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sWhere, HWHID)) { return dal.omodel; } else { return null; } } } //根据班组ID返回班组信息 [WebMethod] public Model.ClsGy_Group_Model GetGroupInfoByID(long sHGroup, ref string sErr) { DAL.ClsIF_Group_View dal = new DAL.ClsIF_Group_View(); if (dal.GetInfoByID(sHGroup)) { return dal.omodel; } else { return null; } } //根据代码返回班组信息 [WebMethod] public Model.ClsGy_Group_Model GetGroupInfoByNumber(string sWhere, ref string sErr) { DAL.ClsIF_Group_View dal = new DAL.ClsIF_Group_View(); if (dal.GetInfoByNumber(sWhere)) { return dal.omodel; } else { return null; } } //根据名称返回班组信息 [WebMethod] public Model.ClsGy_Group_Model GetGroupInfoByName(string sWhere, ref string sErr) { DAL.ClsIF_Group_View dal = new DAL.ClsIF_Group_View(); if (dal.GetInfoByName(sWhere)) { return dal.omodel; } else { return null; } } //根据供应商ID返回供应商信息 [WebMethod] public Model.ClsGy_Supplier_Model GetSupInfoByID(long sHSupID, ref string sErr) { DAL.ClsIF_Supplier_View dal = new DAL.ClsIF_Supplier_View(); if (dal.GetInfoByID(sHSupID)) { return dal.omodel; } else { return null; } } //根据仓库ID返回仓库信息 [WebMethod] public Model.ClsGy_Warehouse_Model GetWhInfoByID(long sHWhID, ref string sErr) { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); if (dal.GetInfoByID(sHWhID)) { return dal.omodel; } else { return null; } } //根据仓库ID、组织ID,返回仓库信息 [WebMethod] public Model.ClsGy_Warehouse_Model GetWhInfoByIDandOrg(long sHWhID, long HUSEORGID, ref string sErr) { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); if (dal.GetInfoByID(sHWhID, HUSEORGID)) { return dal.omodel; } else { return null; } } //根据仓库代码返回仓库信息 (判断文本框TAG历史信息) [WebMethod] public Model.ClsGy_Warehouse_Model GetWhInfoByNumber(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据客户ID返回客户信息 [WebMethod] public Model.ClsGy_Customer_Model GetCusInfoByID(long sHCusID, ref string sErr) { DAL.ClsIF_Customer_View dal = new DAL.ClsIF_Customer_View(); if (dal.GetInfoByID(sHCusID)) { return dal.omodel; } else { return null; } } //根据部门ID返回部门信息 [WebMethod] public Model.ClsGy_Department_Model GetDeptInfoByID(long sHDeptID, ref string sErr) { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); if (dal.GetInfoByID(sHDeptID)) { return dal.omodel; } else { return null; } } //根据部门代码返回部门信息 (判断文本框TAG历史信息) [WebMethod] public Model.ClsGy_Department_Model GetDeptInfoByNumber(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据仓位ID返回仓位信息 [WebMethod] public Model.ClsGy_StockPlace_Model GetSPInfoByID(long sHSPID, ref string sErr) { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); if (dal.GetInfoByID(sHSPID)) { return dal.omodel; } else { return null; } } //根据仓位ID、仓库ID返回仓位、仓库信息 [WebMethod] public Model.ClsGy_StockPlace_Model GetSPInfoByIDandHWHID(long sHSPID, long sHWHID, ref string sErr) { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); if (dal.GetInfoByID(sHSPID, sHWHID)) { return dal.omodel; } else { return null; } } //根据仓位ID、仓库ID、组织ID,返回仓位、仓库信息 [WebMethod] public Model.ClsGy_StockPlace_Model GetSPInfoByIDandHWHIDandOrg(long sHSPID, long sHWHID, long HUSEORGID, ref string sErr) { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); if (dal.GetInfoByID(sHSPID, sHWHID, HUSEORGID)) { return dal.omodel; } else { return null; } } //根据机台ID返回机台信息 [WebMethod] public Model.ClsGy_Item30JiTai_Model GetItem30JiTaiInfoByID(long sItemID, ref string sErr) { DAL.ClsIF_Item30JiTai_View dal = new DAL.ClsIF_Item30JiTai_View(); if (dal.GetInfoByID(sItemID)) { return dal.omodel; } else { return null; } } //根据不良原因ID返回不良原因信息 [WebMethod] public Model.ClsGy_BadReason_Model GetBadReasonInfoByID(long sItemID, ref string sErr) { DAL.ClsIF_BadReason_View dal = new DAL.ClsIF_BadReason_View(); if (dal.GetInfoByID(sItemID)) { return dal.omodel; } else { return null; } } //----------------------------------------------------------- #endregion #region CLOUD 基础资料 //返回CLOUD单位列表 同步资料 [WebMethod] public DataSet GetUnitList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Unit_View dal = new DAL.ClsCLD_Unit_View(); return dal.GetList(sWhere); } //返回CLOUD物料列表 同步资料 [WebMethod] public DataSet GetMaterialList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Material_View dal = new DAL.ClsCLD_Material_View(); return dal.GetList(sWhere); } //返回CLOUD工序列表 同步资料 [WebMethod] public DataSet GetProcessList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Process_View dal = new DAL.ClsCLD_Process_View(); return dal.GetList(sWhere); } //返回CLOUD工序列表 同步资料 [WebMethod] public int GetProcessList2_CLD(string sWhere) { DAL.ClsCLD_Employee_View dal = new DAL.ClsCLD_Employee_View(); DataSet ds; ds = dal.GetList(sWhere); if (ds == null) { return -1; } else { return ds.Tables[0].Rows.Count; } } //返回CLOUD仓库列表 同步资料 [WebMethod] public DataSet GetWarehouseList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Warehouse_View dal = new DAL.ClsCLD_Warehouse_View(); return dal.GetList(sWhere); } //返回CLOUD供应商列表 同步资料 [WebMethod] public DataSet GetSupplierList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Supplier_View dal = new DAL.ClsCLD_Supplier_View(); return dal.GetList(sWhere); } //返回CLOUD客户列表 同步资料 [WebMethod] public DataSet GetCustomerList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Customer_View dal = new DAL.ClsCLD_Customer_View(); return dal.GetList(sWhere); } //返回CLOUD部门列表 同步资料 [WebMethod] public DataSet GetDepartmentList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Department_View dal = new DAL.ClsCLD_Department_View(); return dal.GetList(sWhere); } //返回CLOUD职员列表 同步资料 [WebMethod] public DataSet GetEmployeeList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Employee_View dal = new DAL.ClsCLD_Employee_View(); return dal.GetList(sWhere); } //返回CLOUD仓位列表 同步资料 [WebMethod] public DataSet GetStockPlaceList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_StockPlace_View dal = new DAL.ClsCLD_StockPlace_View(); return dal.GetList(sWhere); } //返回CLOUD生产资源列表 同步资料 [WebMethod] public DataSet GetSourceList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Source_View dal = new DAL.ClsCLD_Source_View(); return dal.GetList(sWhere); } //-------------------------------------------------------------- //返回CLOUD班组列表 同步资料 [WebMethod] public DataSet GetGroupList_CLD(string sWhere, ref string sErr) { DAL.ClsCLD_Group_View dal = new DAL.ClsCLD_Group_View(); return dal.GetList(sWhere); } //根据CLOUD职员代码返回职员信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsCLD_Employee_Model GetEmpInfoByNumber_CLD(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsCLD_Employee_View dal = new DAL.ClsCLD_Employee_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据CLOUD职员ID返回职员信息 [WebMethod] public Model.ClsCLD_Employee_Model GetEmpInfoByID_CLD(long sItemID, ref string sErr) { DAL.ClsCLD_Employee_View dal = new DAL.ClsCLD_Employee_View(); if (dal.GetInfoByID(sItemID)) { return dal.omodel; } else { return null; } } //根据CLOUD供应商代码返回供应商信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsCLD_Supplier_Model GetSupInfoByNumber_CLD(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsCLD_Supplier_View dal = new DAL.ClsCLD_Supplier_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据CLOUD客户代码返回客户信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsCLD_Customer_Model GetCusInfoByNumber_CLD(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsCLD_Customer_View dal = new DAL.ClsCLD_Customer_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据CLOUD代码返回仓位信息(判断文本框TAG历史信息) [WebMethod] public Model.ClsCLD_StockPlace_Model GetSPInfoByNumber_CLD(string sWhere, long sItemID, string sName, ref string sErr) { DAL.ClsCLD_StockPlace_View dal = new DAL.ClsCLD_StockPlace_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sWhere)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sWhere)) { return dal.omodel; } else { return null; } } } //根据CLOUD代码返回仓位信息(仓库ID过滤) (判断文本框TAG历史信息) [WebMethod] public Model.ClsCLD_StockPlace_Model GetSPInfoByNumber_Wh_CLD(string sWhere, long HWHID, long sItemID, string sName, ref string sErr) { DAL.ClsCLD_StockPlace_View dal = new DAL.ClsCLD_StockPlace_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sWhere, HWHID)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sWhere, HWHID)) { return dal.omodel; } else { return null; } } } //根据CLOUD供应商ID返回供应商信息 [WebMethod] public Model.ClsCLD_Supplier_Model GetSupInfoByID_CLD(long sHSupID, ref string sErr) { DAL.ClsCLD_Supplier_View dal = new DAL.ClsCLD_Supplier_View(); if (dal.GetInfoByID(sHSupID)) { return dal.omodel; } else { return null; } } //根据CLOUD仓库ID返回仓库信息 [WebMethod] public Model.ClsCLD_Warehouse_Model GetWhInfoByID_CLD(long sHWhID, ref string sErr) { DAL.ClsCLD_Warehouse_View dal = new DAL.ClsCLD_Warehouse_View(); if (dal.GetInfoByID(sHWhID)) { return dal.omodel; } else { return null; } } //根据CLOUD仓位ID返回仓库、仓位信息 [WebMethod] public DataSet GetTxtNameIDBySPID_CLD(long sHWhID, long sHSPID) { DAL.ClsCLD_StockPlace_View dal = new DAL.ClsCLD_StockPlace_View(); return dal.GetWHSPInfoByID(sHWhID, sHSPID); } //根据CLOUD仓库代码返回仓库信息 (判断文本框TAG历史信息) [WebMethod] public Model.ClsCLD_Warehouse_Model GetWhInfoByNumber_CLD(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsCLD_Warehouse_View dal = new DAL.ClsCLD_Warehouse_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据CLOUD客户ID返回客户信息 [WebMethod] public Model.ClsCLD_Customer_Model GetCusInfoByID_CLD(long sHCusID, ref string sErr) { DAL.ClsCLD_Customer_View dal = new DAL.ClsCLD_Customer_View(); if (dal.GetInfoByID(sHCusID)) { return dal.omodel; } else { return null; } } //根据CLOUD部门ID返回部门信息 [WebMethod] public Model.ClsCLD_Department_Model GetDeptInfoByID_CLD(long sHDeptID, ref string sErr) { DAL.ClsCLD_Department_View dal = new DAL.ClsCLD_Department_View(); if (dal.GetInfoByID(sHDeptID)) { return dal.omodel; } else { return null; } } //根据CLOUD部门代码返回部门信息 (判断文本框TAG历史信息) [WebMethod] public Model.ClsCLD_Department_Model GetDeptInfoByNumber_CLD(string sNumber, long sItemID, string sName, ref string sErr) { DAL.ClsCLD_Department_View dal = new DAL.ClsCLD_Department_View(); if (dal.GetInfoByID(sItemID)) { if (dal.omodel.HName == sName) { return dal.omodel; } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } else { if (dal.GetInfoByNumber(sNumber)) { return dal.omodel; } else { return null; } } } //根据CLOUD仓位ID返回仓位信息 [WebMethod] public Model.ClsCLD_StockPlace_Model GetSPInfoByID_CLD(long sHSPID, ref string sErr) { DAL.ClsCLD_StockPlace_View dal = new DAL.ClsCLD_StockPlace_View(); if (dal.GetInfoByID(sHSPID)) { return dal.omodel; } else { return null; } } //----------------------------------------------------------- #endregion #region 从远程服务器获取基础资料信息 //从远程服务器获取物料档案 [WebMethod] public DataSet get_SaveMaterialFormServer(Int64 HItemID, ref string sErr) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetServerMaterial " + HItemID.ToString(), "h_p_WMS_GetServerMaterial"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErr = "没有返回物料档案记录!"; return null; } else { return ds; } } catch (Exception e) { sErr = "获取物料档案记录失败," + e.Message; return null; } } //从远程服务器获取仓库档案 [WebMethod] public DataSet get_SaveWarehouseFormServer(Int64 HItemID, ref string sErr) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetServerWareHouse " + HItemID.ToString(), "h_p_WMS_GetServerWareHouse"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErr = "没有返回仓库档案记录!"; return null; } else { return ds; } } catch (Exception e) { sErr = "获取仓库档案记录失败," + e.Message; return null; } } //从远程服务器获取仓位档案 [WebMethod] public DataSet get_SaveStockPlaceFormServer(Int64 HItemID, ref string sErr) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetServerSP " + HItemID.ToString(), "h_p_WMS_GetServerSP"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErr = "没有返回仓位档案记录!"; return null; } else { return ds; } } catch (Exception e) { sErr = "获取仓位档案记录失败," + e.Message; return null; } } //从远程服务器获取部门档案 [WebMethod] public DataSet get_SaveDepartmentFormServer(Int64 HItemID, ref string sErr) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetServerDepartment " + HItemID.ToString(), "h_p_WMS_GetServerDepartment"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErr = "没有返回部门档案记录!"; return null; } else { return ds; } } catch (Exception e) { sErr = "获取部门档案记录失败," + e.Message; return null; } } //从远程服务器获取计量单位档案 [WebMethod] public DataSet get_SaveUnitFormServer(Int64 HItemID, ref string sErr) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetServerUnit " + HItemID.ToString(), "h_p_WMS_GetServerUnit"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErr = "没有返回计量单位档案记录!"; return null; } else { return ds; } } catch (Exception e) { sErr = "获取计量单位档案记录失败," + e.Message; return null; } } #endregion #region 工序流转卡 //工序流转卡 [WebMethod] public bool set_SaveSc_ProcExchReport(Model.ClsSc_ProcExchReportMain oMain, Model.ClsSc_ProcExchReportSub oSub, ref string sErrMsg) { DAL.ClsSc_ProcExchReport dal = new DAL.ClsSc_ProcExchReport(); dal.omodel = oMain; //dal.oSub = oSub; dal.DetailColl.Add(oSub); if (dal.AddBill(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //根据流转卡单号得到相应信息 //public DataSet get_InfoByProcExchReport(string lngBillKey, ref string sReturn) //{ // DAL.ClsSc_ProcExchReport dal = new DAL.ClsSc_ProcExchReport(); // return dal.GetInfo(lngBillKey, ref sReturn); //} //public DataSet GetKf_PonderationBillMain_Temp(long HInterID, string sBillType, string sWhere) //{ // DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); // return dal.GetInfoByID_View(HInterID, sBillType, sWhere); //} //根据流转卡单号得到相应信息 //public DataSet get_InfoByProcExchReport(string lngBillKey, ref string sReturn) //{ // DAL.ClsSc_ProcExchReport dal = new DAL.ClsSc_ProcExchReport(); // return dal.GetInfo(lngBillKey, ref sReturn); //} #endregion #region CLOUD 生产领料单--来源单据 * //返回CLOUD生产投料单列表 /// /// 返回CLOUD生产投料单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_PPBomBillList_CLD(string sWhere) { DAL.Cls_S_CLD_PPBomList_Lite dal = new DAL.Cls_S_CLD_PPBomList_Lite(); return dal.DisSourceBillList(sWhere); } //返回CLOUD生产领料单 /// /// 返回CLOUD生产领料单 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MateOutBillList_CLD(string sWhere) { DAL.Cls_S_CLD_MateOutBill_Lite dal = new DAL.Cls_S_CLD_MateOutBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 生产领料单--来源单据 * //返回生产领料单-蓝字(红字领料源单) /// /// 返回生产领料单-蓝字(红字领料源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MateOutBillList(string sWhere) { DAL.Cls_S_IF_MateOutBill_Lite dal = new DAL.Cls_S_IF_MateOutBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回生产任务单-退料列表(红字领料源单) /// /// 返回生产任务单-退料列表(红字领料源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_PPBomBackBillList(string sWhere) { DAL.Cls_S_IF_PPBomBackList_Lite dal = new DAL.Cls_S_IF_PPBomBackList_Lite(); return dal.DisSourceBillList(sWhere); } //------------------------------------------------ //返回生产投料单列表 /// /// 返回生产投料单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_PPBomBillList(string sWhere) { DAL.Cls_S_IF_PPBomBillList_Lite dal = new DAL.Cls_S_IF_PPBomBillList_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3生产领料单(红字) /// /// 返回k3生产领料单(红字) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MateOutBackBillList(string sWhere) { DAL.Cls_S_K3_MateOutBackBill_Lite dal = new DAL.Cls_S_K3_MateOutBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3受托加工领料单 /// /// 返回k3受托加工领料单 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_STJGOutBillList(string sWhere) { DAL.Cls_S_K3_STJGOutBill_Lite dal = new DAL.Cls_S_K3_STJGOutBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region CLOUD 采购退料单--来源单据 //返回CLOUD退货通知单列表 /// /// 返回CLOUD退货通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_POStockInBackBillList_CLD(string sWhere) { DAL.Cls_S_CLD_POStockInBackBill_Lite dal = new DAL.Cls_S_CLD_POStockInBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region CLOUD 委外退料单--来源单据 //返回CLOUD退货通知单列表 /// /// 返回CLOUD退货通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_EntrustInBackBillList_CLD(string sWhere) { DAL.Cls_S_CLD_EntrustInBackBill_Lite dal = new DAL.Cls_S_CLD_EntrustInBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region CLOUD 产品入库单--来源单据 //返回CLOUD生产任务单列表 /// /// 返回CLOUD生产任务单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_ICMOBillList_CLD(string sWhere) { DAL.Cls_S_CLD_ICMOBill_Lite dal = new DAL.Cls_S_CLD_ICMOBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回CLoud产品入库单列表 /// /// 返回CLoud产品入库单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_ProductInBillList_CLD(string sWhere) { DAL.Cls_S_CLD_ProductInBill_Lite dal = new DAL.Cls_S_CLD_ProductInBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 产品入库单--来源单据 //返回产品入库单列表(蓝字)(红字产品入库源单) /// /// 返回产品入库单列表(蓝字)(红字产品入库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_ProductInBillList(string sWhere) { DAL.Cls_S_IF_ProductInBill_Lite dal = new DAL.Cls_S_IF_ProductInBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回生产任务单列表 退库(红字产品入库源单) /// /// 返回生产任务单列表 退库(红字产品入库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_ICMOBackBillList(string sWhere) { DAL.Cls_S_IF_ICMOBackBill_Lite dal = new DAL.Cls_S_IF_ICMOBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //------------------------------------------------ //返回生产任务单列表 /// /// 返回生产任务单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_ICMOBillList(string sWhere) { DAL.Cls_S_IF_ICMOBill_Lite dal = new DAL.Cls_S_IF_ICMOBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回生产汇报单列表 /// /// 返回生产汇报单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_ICMOReportBillList(string sWhere) { DAL.Cls_S_IF_ICMOReportBill_Lite dal = new DAL.Cls_S_IF_ICMOReportBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回工序汇报单列表 /// /// 返回工序汇报单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_ProcessReportBillList(string sWhere) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("select * from h_v_IF_ProcessReportBillList_Lite " + sWhere + " order by 单据号 desc,HMaterID", "h_v_IF_ProcessReportBillList_Lite"); if (ds == null && ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } [WebMethod] //根据流转卡单号得到相应信息 public DataSet Check_ICMOReportBill(string lngBillKey, ref string sReturn) { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); return dal.GetInfo(lngBillKey, ref sReturn); } //拆分任务单汇报单 [WebMethod] public bool set_SaveICMOReportBill_Cai(Int64 HInterID, string lngBillKey, Int64 HQty, Int64 HQty1, ref string sErrMsg) { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); if (dal.AddBill_Cai_PDA(HInterID, lngBillKey, HQty, HQty1, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //返回k3产品入库单列表(红字) /// /// 返回k3产品入库单列表(红字) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_ProductInBackBillList(string sWhere) { DAL.Cls_S_K3_ProductInBackBill_Lite dal = new DAL.Cls_S_K3_ProductInBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回箱发生产任务单列表 /// /// 返回箱发生产任务单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_XFICMOBillList(string sWhere) { DAL.Cls_S_IF_XFICMOBill_Lite dal = new DAL.Cls_S_IF_XFICMOBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region CLOUD 销售出库单--来源单据 //返回CLOUD发货通知单列表 /// /// 返回CLOUD发货通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetXs_SeOutStockBillList_CLD(string sWhere) { DAL.Cls_S_CLD_SeOutStockBill_Lite dal = new DAL.Cls_S_CLD_SeOutStockBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回CLOUD退货通知单列表 /// /// 返回CLOUD退货通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetXs_SeOutStockBackBillList_CLD(string sWhere) { DAL.Cls_S_CLD_SeOutStockBackBill_Lite dal = new DAL.Cls_S_CLD_SeOutStockBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 销售出库单--来源单据 //返回销售出库单-蓝字列表(红字销售出库源单) /// /// 返回销售出库单-蓝字列表(红字销售出库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_SellOutBillList(string sWhere) { DAL.Cls_S_IF_SellOutBill_Lite dal = new DAL.Cls_S_IF_SellOutBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回退货通知单列表 (红字销售出库源单) /// /// 返回退货通知单列表(红字销售出库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetXs_SeOutStockBackBillList(string sWhere) { DAL.Cls_S_IF_SeOutStockBackBill_Lite dal = new DAL.Cls_S_IF_SeOutStockBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回销售订单列表 (红字销售出库源单) /// /// 返回销售订单列表 (红字销售出库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetXs_SeOrderBillRedList(string sWhere) { DAL.Cls_S_IF_SEOrderBill_Red_Lite dal = new DAL.Cls_S_IF_SEOrderBill_Red_Lite(); return dal.DisSourceBillList(sWhere); } //------------------------------------------------ //返回销售订单列表 /// /// 返回销售订单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetXs_SeOrderBillList(string sWhere) { DAL.Cls_S_IF_SEOrderBill_Lite dal = new DAL.Cls_S_IF_SEOrderBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回下架通知单列表 /// /// 返回下架通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetXs_SeDownStockBillList(string sWhere) { DAL.Cls_S_Xs_SeDownStockBill_Lite dal = new DAL.Cls_S_Xs_SeDownStockBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回发货通知单列表 /// /// 返回发货通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetXs_SeOutStockBillList(string sWhere) { DAL.Cls_S_IF_SeOutStockBill_Lite dal = new DAL.Cls_S_IF_SeOutStockBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 收料通知单--来源单据 *** //返回k3收料通知单未审核列表 /// /// 返回k3收料通知单未审核列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_PoInStockBillUnCheckList(string sWhere) { DAL.Cls_S_K3_POStockInBill_Lite dal = new DAL.Cls_S_K3_POStockInBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region CLOUD 外购入库单--来源单据 * //返回CLOUD收料通知单列表 /// /// 返回CLOUD收料通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_PoInStockBillList_CLD(string sWhere) { DAL.Cls_S_CLD_POStockInBill_Lite dal = new DAL.Cls_S_CLD_POStockInBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回CLOUD退料申请单列表 (退料单) /// /// 返回CLOUD退料申请单列表(退料单) /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_PoInStockBackBillList_CLD(string sWhere) { DAL.Cls_S_CLD_POInStockBackBill_Lite dal = new DAL.Cls_S_CLD_POInStockBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 外购入库单--来源单据 * //返回外购入库单-蓝字列表 (红字外购入库) /// /// 返回外购入库单-蓝字列表(红字外购入库) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_POStockInBillList(string sWhere) { DAL.Cls_S_IF_POStockInBill_Lite dal = new DAL.Cls_S_IF_POStockInBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回退料通知单列表 (红字外购入库) /// /// 返回退料通知单列表(红字外购入库) /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_POInStockBackBillList(string sWhere) { DAL.Cls_S_IF_POInStockBackBill_Lite dal = new DAL.Cls_S_IF_POInStockBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回采购订单-退料列表 (红字外购入库) /// /// 返回采购订单-退料列表(红字外购入库) /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_POOrderBackBillList(string sWhere) { DAL.Cls_S_IF_POOrderBackBill_Lite dal = new DAL.Cls_S_IF_POOrderBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //------------------------------------------------ //返回收料通知单列表 /// /// 返回收料通知单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_POInStockBillList(string sWhere) { DAL.Cls_S_IF_POInStockBill_Lite dal = new DAL.Cls_S_IF_POInStockBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回采购订单列表 /// /// 返回采购订单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_POOrderBillList(string sWhere) { DAL.Cls_S_IF_POOrderBill_Lite dal = new DAL.Cls_S_IF_POOrderBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3外购入库列表 (红字外购入库) /// /// 返回k3外购入库列表 (红字外购入库) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_POStockInBackBillList(string sWhere) { DAL.Cls_S_K3_POStockInBackBill_Lite dal = new DAL.Cls_S_K3_POStockInBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 未审核收料通知单--来源单据 * //返回k3未审核收料通知单 /// /// 返回k3未审核收料通知单 /// /// 过滤条件 /// [WebMethod] public DataSet GetCg_UnCheckPoInStockBillList(string sWhere) { DAL.Cls_S_K3_UnCheckPOInStockBill_Lite dal = new DAL.Cls_S_K3_UnCheckPOInStockBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 委外入库单--来源单据 * //返回委外入库(蓝字)(红字委外入库源单) /// /// 返回委外入库(蓝字)(红字委外入库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_EntrustInBillList(string sWhere) { DAL.Cls_S_IF_EntrustInBill_Lite dal = new DAL.Cls_S_IF_EntrustInBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回委外订单-退库列表(红字委外入库源单) /// /// 返回委外订单-退库列表(红字委外入库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetWW_WWOrderBackBillList(string sWhere) { DAL.Cls_S_IF_WWOrderBackBill_Lite dal = new DAL.Cls_S_IF_WWOrderBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //------------------------------------------------ //返回k3委外入库(红字) /// /// 返回k3委外入库(红字) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_EntrustInBackBillList(string sWhere) { DAL.Cls_S_K3_EntrustInBackBill_Lite dal = new DAL.Cls_S_K3_EntrustInBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region CLOUD 委外出库单--来源单据 * //返回CLOUD委外订单投料列表 /// /// 返回CLOUD委外订单投料列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetWW_WWPPBomList_CLD(string sWhere) { DAL.Cls_S_CLD_WWPPBomBill_Lite dal = new DAL.Cls_S_CLD_WWPPBomBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 委外出库单--来源单据 * //返回委外出库单-蓝字列表 (红字委外出库源单) /// /// 返回委外出库单-蓝字列表 (红字委外出库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_EntrustOutBillList(string sWhere) { DAL.Cls_S_IF_EntrustOutBill_Lite dal = new DAL.Cls_S_IF_EntrustOutBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回委外订单-退料列表 退料(红字委外出库源单) /// /// 返回委外订单-退料列表 退料(红字委外出库源单) /// /// 过滤条件 /// [WebMethod] public DataSet GetWW_WWPPBomBackList(string sWhere) { DAL.Cls_S_IF_WWPPBomBackBill_Lite dal = new DAL.Cls_S_IF_WWPPBomBackBill_Lite(); return dal.DisSourceBillList(sWhere); } //------------------------------------------------ //返回委外订单列表 /// /// 返回委外订单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetWW_WWOrderBillList(string sWhere) { DAL.Cls_S_IF_WWOrderBill_Lite dal = new DAL.Cls_S_IF_WWOrderBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回委外订单投料列表 /// /// 返回委外订单投料列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetWW_WWPPBomList(string sWhere) { DAL.Cls_S_IF_WWPPBomBill_Lite dal = new DAL.Cls_S_IF_WWPPBomBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3委外出库(红字) /// /// 返回k3委外出库(红字) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_EntrustOutBackBillList(string sWhere) { DAL.Cls_S_K3_EntrustOutBackBill_Lite dal = new DAL.Cls_S_K3_EntrustOutBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 虚仓调拨--来源单据 * //返回k3未审核虚仓调拨 /// /// 返回k3未审核虚仓调拨 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_XCMoveStockBillList(string sWhere) { DAL.Cls_S_K3_XCMoveStockBill_Lite dal = new DAL.Cls_S_K3_XCMoveStockBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region CLOUD 实仓调拨--来源单据 * //返回k3未审核实仓调拨 /// /// 返回k3未审核实仓调拨 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MoveStockBillList_CLD(string sWhere) { DAL.Cls_S_CLD_MoveStockBill_Lite dal = new DAL.Cls_S_CLD_MoveStockBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 实仓调拨--来源单据 * //返回调拨申请列表 /// /// 返回调拨申请列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MoveStockRequestBillList(string sWhere) { DAL.Cls_S_IF_MoveStockRequestBill_Lite dal = new DAL.Cls_S_IF_MoveStockRequestBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3未审核实仓调拨 /// /// 返回k3未审核实仓调拨 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MoveStockBillList(string sWhere) { DAL.Cls_S_K3_MoveStockBill_Lite dal = new DAL.Cls_S_K3_MoveStockBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 分步式调入单--来源单据 * //返回分步式调出单列表 /// /// 返回分步式调出单列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MoveStockStepOutBillList(string sWhere) { DAL.Cls_S_IF_MoveStockStepOutBill_Lite dal = new DAL.Cls_S_IF_MoveStockStepOutBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 其他出库--来源单据 * //返回出库申请列表 /// /// 返回出库申请列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_StockOutRequestBillList(string sWhere) { DAL.Cls_S_IF_StockOutRequestBill_Lite dal = new DAL.Cls_S_IF_StockOutRequestBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3未审核其他出库 /// /// 返回k3未审核其他出库 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_OtherOutBillList(string sWhere) { DAL.Cls_S_K3_OtherOutBill_Lite dal = new DAL.Cls_S_K3_OtherOutBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3未审核其他出库(红字) /// /// 返回k3未审核其他出库(红字) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_OtherOutBackBillList(string sWhere) { DAL.Cls_S_K3_OtherOutBackBill_Lite dal = new DAL.Cls_S_K3_OtherOutBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 其他入库--来源单据 * //返回入库申请列表 /// /// 返回入库申请列表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_StockInRequestBillList(string sWhere) { DAL.Cls_S_IF_StockInRequestBill_Lite dal = new DAL.Cls_S_IF_StockInRequestBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3未审核其他入库 /// /// 返回k3未审核其他入库 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_OtherInBillList(string sWhere) { DAL.Cls_S_K3_OtherInBill_Lite dal = new DAL.Cls_S_K3_OtherInBill_Lite(); return dal.DisSourceBillList(sWhere); } //返回k3未审核其他入库(红字) /// /// 返回k3未审核其他入库(红字) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_OtherInBackBillList(string sWhere) { DAL.Cls_S_K3_OtherInBackBill_Lite dal = new DAL.Cls_S_K3_OtherInBackBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 倒箱单--来源单据 * //返回已审核倒箱单 /// /// 返回已审核倒箱单 /// /// 过滤条件 /// [WebMethod] public DataSet GetKF_ChangeBoxBillList(string sWhere) { DAL.Cls_S_KF_ChangeBoxBill_Lite dal = new DAL.Cls_S_KF_ChangeBoxBill_Lite(); return dal.DisSourceBillList(sWhere); } #endregion #region 车间组装 //扫描成品条码 [WebMethod] 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; } } //扫描配件条码 [WebMethod] 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; } } //获取组装单明细列表信息 [WebMethod] public DataSet GetSc_AssemblyBill(long HInterID, string sBillType, string sWhere) { 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.Tables[0].Rows.Count == 0) return null; else { return DS; } } catch (Exception e) { throw (e); } } //删除组装单 扫描记录 [WebMethod] 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; } } //[WebMethod] ////根据条码得到相应信息(生产组装单) //public WMSWebs.Model.ClsSc_AssemblyBillEntry get_AssemblyBillByBarCode(string sBarCode) //{ // WMSWebs.BLL.ClsSc_AssemblyBill bll = new WMSWebs.BLL.ClsSc_AssemblyBill(); // WMSWebs.Model.ClsSc_AssemblyBillEntry model; // model = bll.get_GetInfoByBarCode(sBarCode); // if (model == null) // { // //sErrMsg = WMSWebs.DBUtility.ClsPub.ErrStr; // return null; // } // else // { // //sErrMsg = ""; // return model; // } //} ////生成生产组装单 //[WebMethod] //public bool set_SaveAssemblyBill(WMSWebs.Model.ClsSc_AssemblyBill oMain, List oEntry, ref string sErrMsg) //{ // WMSWebs.BLL.ClsSc_AssemblyBill bll = new WMSWebs.BLL.ClsSc_AssemblyBill(); // if (bll.AddNew(oMain, oEntry)) // { // sErrMsg = "保存成功!"; // return true; // } // else // { // sErrMsg = WMSWebs.DBUtility.ClsPub.ErrStr; // return false; // } //} #endregion #region 拆包单 //生成拆包单临时记录 [WebMethod] public bool set_SavePackSplitBill_Temp(Model.ClsSc_PackSplitBillSub oEntry, ref string sErrMsg) { DAL.ClsSc_PackSplitBill dal = new DAL.ClsSc_PackSplitBill(); if (dal.AddBill_PDA(oEntry, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //生成拆包单 [WebMethod] public bool set_SavePackSplitBill(Model.ClsSc_PackSplitBillMain oMain, ref string sErrMsg) { DAL.ClsSc_PackSplitBill dal = new DAL.ClsSc_PackSplitBill(); if (dal.AddBill_PDA(oMain, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //生成拆包单临时记录 /// /// 生成拆包单临时记录 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_PackSplitBillSub_Temp(long HInterID, string sWhere) { DAL.ClsSc_PackSplitBill dal = new DAL.ClsSc_PackSplitBill(); return dal.GetInfoByID_View(HInterID, sWhere); } #endregion #region 分包单 //生成分包单临时记录 [WebMethod] public bool set_SavePackDoubleBill_Temp(Model.ClsSc_PackDoubleBillSub oEntry, ref string sErrMsg) { DAL.ClsSc_PackDoubleBill dal = new DAL.ClsSc_PackDoubleBill(); //if (!dal.IsBarCode(oEntry.HBarCode, oEntry.HInterID)) //{ // sErrMsg = "存在相同条码,请勿重复扫描!"; // return false; //} if (dal.AddBill_PDA(oEntry, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //生成分包单 [WebMethod] public bool set_SavePackDoubleBill(Model.ClsSc_PackDoubleBillMain oMain, ref string sErrMsg) { DAL.ClsSc_PackDoubleBill dal = new DAL.ClsSc_PackDoubleBill(); if (dal.AddBill_PDA(oMain, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //返回分包单临时记录 /// /// 返回分包单临时记录 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_PackDoubleBillSub_Temp(long HInterID, string sWhere) { DAL.ClsSc_PackDoubleBill dal = new DAL.ClsSc_PackDoubleBill(); return dal.GetInfoByID_View(HInterID, sWhere); } #endregion #region 包装单 //生成包装单临时记录 [WebMethod] public bool set_SavePackUnionBill_Temp(Model.ClsSc_PackUnionBillSub oEntry, ref string sErrMsg) { DAL.ClsSc_PackUnionBill dal = new DAL.ClsSc_PackUnionBill(); //if (!dal.IsBarCode(oEntry.HBarCode, oEntry.HInterID, oEntry.HErpClsID)) //{ // sErrMsg = "存在相同条码,请勿重复扫描!"; // return false; //} if (dal.AddBill_PDA(oEntry, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //生成包装单 [WebMethod] public bool set_SavePackUnionBill(Model.ClsSc_PackUnionBillMain oMain, ref string sErrMsg) { DAL.ClsSc_PackUnionBill dal = new DAL.ClsSc_PackUnionBill(); if (dal.AddBill_PDA(oMain, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //生成包装单临时记录 /// /// 生成包装单临时记录 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_PackUnionBillSub_Temp(long HInterID, string sWhere) { DAL.ClsSc_PackUnionBill dal = new DAL.ClsSc_PackUnionBill(); return dal.GetInfoByID_View(HInterID, sWhere); } #endregion #region 出入库条码临时表 //保存到出入库条码临时表(一张单据,存在相同物料) [WebMethod] public bool set_SavePonderationBillMain_Temp_Select_Check(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "托盘条码") { if (!dal.IsBarCode_Pack(oMain.HBarCode, oMain.HInterID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_More_Select(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_Select_Check(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } } //保存到出入库条码临时表(一张单据,存在相同物料) [WebMethod] public bool set_SavePonderationBillMain_Temp_Select(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "托盘条码") { if (!dal.IsBarCode_Pack(oMain.HBarCode, oMain.HInterID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_More_Select(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } //判断条码临时表中是否存在(调拨单同一条码相同调入调出仓库仓位只允许扫描一次,销售出库同一条码同一仓库仓位只允许扫描一次) 丸井 //if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType,oMain.HWhID,oMain.HStockPlaceID,oMain.HSCWHID,oMain.HOutStockPlaceID,oMain.)) //{ // sErrMsg = "存在相同条码,请勿重复扫描!"; // return false; //} } if (dal.AddNew_Source(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } } //保存到出入库条码临时表(一张单据,存在相同物料) [WebMethod] public bool set_SavePonderationBillMain_Temp_Select_Qty(Model.ClsKF_PonderationBillMain_Temp oMain, Double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "托盘条码") { if (!dal.IsBarCode_Pack(oMain.HBarCode, oMain.HInterID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_More_Select(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds = oCn.RunProcReturn("exec h_p_WMS_CheckBarCodeOneScan " + oMain.HInterID.ToString() + ",'" + oMain.HBarCode + "','" + oMain.HBillType + "'," + oMain.HWhID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + ",'" + oMain.HMaker + "'", "h_p_WMS_CheckBarCodeOneScan"); if (ds == null || ds.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "对不起,您扫描的条形码已被扫描过,不符合一次扫码系统参数的要求!"; return false; } } } if (dal.AddNew_Source(sQty, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } } //保存到出入库条码临时表(一张单据,存在相同物料) 模具 [WebMethod] public bool set_SavePonderationBillMain_Temp_Select_Qty_Mould(Model.ClsSc_MouldStockBillMain_Temp oMain, Double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould(); DAL.ClsGy_BarCodeBill_View_Mould oBar = new DAL.ClsGy_BarCodeBill_View_Mould(); dal.oModel = oMain; if (!oBar.GetInfoByNumber(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } } if (dal.AddNew_Mould(oMain.HInterID,oMain.HMouldID,oMain.HBillType,oMain.HWhID,oMain.HSCWHID,oMain.HStockPlaceID,oMain.HOutStockPlaceID,oMain.HBarCode,oMain.HMaker,oMain.HOWNERID,oMain.HStockOrgID,oMain.HBillNo,oMain.HOtherOrgID)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } //缓存列表界面,返回缓存列表信息(工序汇报转移单) [WebMethod] public DataSet GetKf_PonderationBillMain_TempList_ProcReportMove(string sHBillType, string sHMaker, Int64 sHOWNERID, Int64 sHSubBillType) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_KF_GetPonderationBillMain_TempList_ProcReportMove '" + sHBillType + "','" + sHMaker + "'," + sHOWNERID.ToString() + "," + sHSubBillType.ToString(), "h_p_KF_GetPonderationBillMain_TempList_ProcReportMove"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } //保存到出入库条码临时表(单条码,一张单据一条条码) [WebMethod] public bool set_SavePonderationBillMain_Temp_SingleCheckAdd(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (dal.AddNew_Source(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } //保存到出入库条码临时表 [WebMethod] public bool set_SavePonderationBillMain_Temp(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "托盘条码") { if (!dal.IsBarCode_Pack(oMain.HBarCode, oMain.HInterID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_More(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } //判断条码临时表中是否存在(调拨单同一条码相同调入调出仓库仓位只允许扫描一次,销售出库同一条码同一仓库仓位只允许扫描一次) 丸井 //if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType,oMain.HWhID,oMain.HStockPlaceID,oMain.HSCWHID,oMain.HOutStockPlaceID,oMain.)) //{ // sErrMsg = "存在相同条码,请勿重复扫描!"; // return false; //} } if (dal.AddNew(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } //dal.oCn.CnClose(); //dal.oCn.CnDispose(); //oBar. } //保存到出入库条码临时表 [WebMethod] public bool set_SavePonderationBillMain_Temp_Qty(Model.ClsKF_PonderationBillMain_Temp oMain, Double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "托盘条码") { if (!dal.IsBarCode_Pack(oMain.HBarCode, oMain.HInterID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_More(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds = oCn.RunProcReturn("exec h_p_WMS_CheckBarCodeOneScan " + oMain.HInterID.ToString() + ",'" + oMain.HBarCode + "','" + oMain.HBillType + "'," + oMain.HWhID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + ",'" + oMain.HMaker + "'", "h_p_WMS_CheckBarCodeOneScan"); if (ds == null || ds.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "对不起,您扫描的条形码已被扫描过,不符合一次扫码系统参数的要求!"; return false; } } } if (dal.AddNew_sQty(sQty, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } //dal.oCn.CnClose(); //dal.oCn.CnDispose(); //oBar. } //保存到出入库条码临时表 [WebMethod] public bool set_SavePonderationBillMain_Temp_Qty_FIFO(Model.ClsKF_PonderationBillMain_Temp oMain, string sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "托盘条码") { //if (!dal.IsBarCode_Pack(oMain.HBarCode, oMain.HInterID, oMain.HBillType)) //{ // sErrMsg = "存在相同条码,请勿重复扫描!"; // return false; //} if (dal.AddNew_More(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { //if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) //{ // sErrMsg = "存在相同条码,请勿重复扫描!"; // return false; //} if (oBar.omodel_View.HBarCodeType == "批次码") { if (dal.AddNew_sQty_FIFO(sQty, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { //if (dal.AddNew_Source(ref sErrMsg)) //{ // //sErrMsg = "保存成功!"; // return true; //} //else //{ //sErrMsg = "保存失败!"; return false; //} } } } //dal.oCn.CnClose(); //dal.oCn.CnDispose(); //oBar. } //保存到出入库条码临时表(先进先出) [WebMethod] public bool set_SavePonderationBillMain_Temp_FIFO(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } } if (dal.AddNew_FIFO(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } //保存到出入库条码临时表(物料条码) 免扫码自动批量生成物料条码 [WebMethod] public bool set_SavePonderationBillMain_Temp_NoCode(long HInterID, long HWHID, long HSPID, long HSCWHID, long HOutSPID, string[] sSourceID, 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_MateOutBill_AutoBarCode.ToUpper() == "Y") //系统参数 生产领料单-免扫码 { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); bool sBool = false; try { oCN.RunProc("Delete from KF_PonderationBillMain_Temp where HQtyMust=0 and HInterID=" + HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo); for (int i = 0; i < sSourceID.Length; i++) { if (sSourceID[i] != "") { sBool = true; string[] se = sSourceID[i].Split(Convert.ToChar(",")); Int64 sInterID = DBUtility.ClsPub.isLong(se[0]); Int64 sEntryID = DBUtility.ClsPub.isLong(se[1]); //调用方法 DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AutoPonderationBill " + HInterID + "," + HWHID + "," + HSPID + "," + sInterID + "," + sEntryID, "h_p_WMS_AutoPonderationBill"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "自动批量生成物料条码出入库记录,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "仓库没有选择,请先选择仓库!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 2) { sErrMsg = "条码档案中不存在自动生成的条码,批量生成物料条码出入库记录失败!"; return false; } else { sErrMsg = "生成物料条码出入库记录成功"; } } } } if (!sBool) { sErrMsg = "没有选择任何一行物料,无须批量生成物料条码出入库记录!"; return false; } return true; } catch (Exception e) { sErrMsg = "自动批量生成物料条码失败!" + e.Message; return false; } } else { sErrMsg = "唯一条码不支持免扫码功能,批量生成失败,请扫码出库!"; return false; } } //保存到出入库条码临时表(原单) [WebMethod] public bool set_SavePonderationBillMain_Temp_Source(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); dal.oModel = oMain; if (dal.AddNew_Source(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //保存到出入库条码临时表(盘点 扫仓库带出该仓库所有库存信息) [WebMethod] public bool set_SavePonderationBillMain_Temp_CheckStcok(long HInterID, string HBillNo, string sBillType, long HWHID, long HSPID, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_CheckStock(HInterID, HBillNo, sBillType, HWHID, HSPID, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } //保存到出入库条码稽核临时表(原单) 根据源单单号 批量新增源单信息 [WebMethod] public bool set_SavePonderationBillMain_Aduit_Temp_Source_Fast(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, string sRedBlueflag, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl(); if (dal.AddNew_Aduit_Source(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "输入源单信息不准确,请输入较完整的单据号!"; return false; } } //保存到出入库条码临时表(原单) 根据源单单号 批量新增源单信息 [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_Fast(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, string sRedBlueflag, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "输入源单信息不准确,请输入较完整的单据号!"; return false; } } //保存到出入库条码临时表(原单) 领料出库 根据计划模式、配套数量 批量新增源单信息 [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_MateOut(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, string sRedBlueflag, string sMaker, Double sPPQty, Int64 sPlanMode, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source_MateOut(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, sMaker, sPPQty, sPlanMode, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { return false; } } //保存到出入库条码临时表(原单) 根据源单单号 批量新增源单信息 [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_SourceBillType(long sHInterID, string sBillNo, string sHBillType, string sBarCode, string sRedBlueflag, ref string sSourceBillNo, ref string sSourceTypeName, ref long sHSupID, ref string sHSupName, ref long sHDeptID, ref string sHDeptName, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); string sSourceBillType; DataSet ds = oCN.RunProcReturn("exec h_p_WMS_BarCode_SourceBillType " + sHInterID.ToString() + ",'" + sHBillType + "','" + sBarCode + "'", "h_p_WMS_BarCode_SourceBillType"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码后判断条码源单信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { sSourceTypeName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceTypeName"]); sSourceBillType = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceBillType"]); sSourceBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceBillNo"]); sHSupID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSupID"]); sHSupName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSupName"]); sHDeptID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HDeptName"]); if (sSourceBillNo == "") { sErrMsg = ""; return true; } else { if (dal.AddNew_Source(sHInterID, sBillNo, sHBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, ref sErrMsg)) { sErrMsg = ""; return true; } else { sErrMsg = "扫描物料条码后保存源单信息失败!" + sErrMsg; return false; } } } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1201) { sErrMsg = "所扫描的物料条码源单类型不在外购入库模块的源单类型中,请确认入库扫码模块是否正确!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1202) { sErrMsg = "所扫描的物料条码源单类型不在产品入库模块的源单类型中,请确认入库扫码模块是否正确!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1210) { sErrMsg = "所扫描的物料条码源单类型不在委外入库模块的源单类型中,请确认入库扫码模块是否正确!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return false; } else { sErrMsg = "扫描物料条码后判断条码源单信息,未知错误2!"; return false; } } } //保存到出入库条码临时表(原单) 根据源单单号 批量新增源单信息 CLOUD [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_Fast_CLD(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, string sRedBlueflag, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source_CLD(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "输入源单信息不准确,请输入较完整的单据号!"; return false; } } //保存到出入库条码临时表(原单) 根据源单单号 批量新增源单信息 CLOUD [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_Fast_CLD_CG(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, string sRedBlueflag, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source_CLD_CG(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "输入源单信息不准确,请输入较完整的单据号!"; return false; } } //保存到出入库条码临时表(原单) 根据源单单号 批量新增源单信息 [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_Fast_ChangeBox(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, string sRedBlueflag, long sInterID, string sBillNo, string sMaker, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source_ChangeBox(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, sInterID, sBillNo, sMaker, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "输入源单信息不准确,请输入较完整的单据号!"; return false; } } //保存到出入库条码临时表(原单) 根据源单单号 批量新增源单信息(先进先出) [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_Fast_FIFO(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, long sHWHID, string sRedBlueflag, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source_FIFO(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sHWHID, sRedBlueflag, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "输入源单信息不准确,请输入较完整的单据号!"; return false; } } //保存到出入库条码临时表(原单) 根据源单单号 批量新增源单信息(先进先出)CLOUD [WebMethod] public bool set_SavePonderationBillMain_Temp_Source_Fast_FIFO_CLD(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, long sHWHID, string sRedBlueflag, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source_FIFO_CLD(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sHWHID, sRedBlueflag, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "输入源单信息不准确,请输入较完整的单据号!"; return false; } } //保存到出入库条码临时表(核对生单,关联条码记录) [WebMethod] public bool set_SavePonderationBillMain_Temp_CheckAdd(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } } if (dal.AddNew_CheckAdd(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } //保存到出入库条码临时表(核对生单,关联条码记录) [WebMethod] public bool set_SavePonderationBillMain_Temp_CheckAdd_Qty(Model.ClsKF_PonderationBillMain_Temp oMain, Double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType, oMain.HWhID, oMain.HStockPlaceID, oMain.HSCWHID, oMain.HOutStockPlaceID, oMain.HRedBlueFlag)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_CheckAdd(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (dal.AddNew_CheckAdd(sQty, ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } } //保存到出入库条码稽核临时表() [WebMethod] public bool set_SavePonderationBillMain_Audit_Temp(Model.ClsKF_PonderationBillMain_Audit_Temp oMain, Double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode))//条形码不存在 { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_CheckAdd(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (dal.AddNew_CheckAdd(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } } //保存到出入库条码临时表(关联条码记录) [WebMethod] public bool set_SavePonderationBillMain_Temp_Check(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); dal.oModel = oMain; if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_Check(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } } //减少到出入条码临时表(常规) [WebMethod] public bool set_ClearPonderationBillMain_Temp_ChangGui(long HInterID, long HMaterID, Int64 HAuxPropID, string HMTONo, Int64 HWhID, Int64 HSPID, Int64 HSCWhID, Int64 HSCSPID, string HBatchNo, Int64 HSourceInterID, Int64 HSourceEntryID, string sBarCode, string sBillType, double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Clear_ChangGui(HInterID, HMaterID, HAuxPropID, HMTONo, HWhID, HSPID, HSCWhID, HSCSPID, HBatchNo, HSourceInterID, HSourceEntryID, sBarCode, sBillType, sQty, ref sErrMsg)) { //sErrMsg = "减少成功!"; return true; } else { //sErrMsg = "减少失败!"; return false; } } //保存到出入库条码临时表(常规) [WebMethod] public bool set_SavePonderationBillMain_Temp_ChangGui(long HInterID, long HMaterID, Int64 HAuxPropID, string HMTONo, Int64 HWhID, Int64 HSPID, Int64 HSCWhID, Int64 HSCSPID, string HBatchNo, Int64 HSourceInterID, Int64 HSourceEntryID, string sBarCode, string sBillType, double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_More_ChangGui(HInterID, HMaterID, HAuxPropID, HMTONo, HWhID, HSPID, HSCWhID, HSCSPID, HBatchNo, HSourceInterID, HSourceEntryID, sBarCode, sBillType, sQty, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //判断VDA数量是否与本托盘数量一致 [WebMethod] public bool set_PonderationBillMain_Temp_CheckQty(long HInterID, string sBillType, string sVDAPack, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_View oView = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (oView.CheckQtyByVDAPack(HInterID, sBillType, sVDAPack, ref sErrMsg)) { //"正常!"; return true; } else { //"错误!"; return false; } } //删除出入库条码临时表 [WebMethod] public bool set_DelPonderationBillMain_Temp(long HItemID, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.DeleteByID(HItemID)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //删除出入库条码临时表(根据条码) [WebMethod] public bool set_DelPonderationBillMain_Temp_BarCode(long HInterID, string sBarCode, string sHBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.DeleteByBarCode(HInterID, sBarCode, sHBillType)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //删除出入库条码临时表 (原单) [WebMethod] public bool set_DelPonderationBillMain_Temp_InterID(long HInterID, string sHBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.DeleteByInterID(HInterID, sHBillType)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //删除出入库条码临时表 扫描记录 [WebMethod] public bool set_DelPonderationBillMain_Temp_InterIDAndSource(long HInterID, long HMaterID, long HAuxPropID, string HMTONo, long HSourceInterID, long HSourceEntryID, string sHBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.DeleteByInterIDAndSource(HInterID, HMaterID, HAuxPropID, HMTONo, HSourceInterID, HSourceEntryID, sHBillType)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //删除出入库条码临时表 源单扫描记录 [WebMethod] public bool set_DelPonderationBillMain_Temp_SourceInterID(long HInterID, long HSourceInterID, string sHBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from KF_PonderationBillMain_Temp where HInterID=" + HInterID.ToString() + " and HBillType='" + sHBillType + "' and HSourceInterID=" + HSourceInterID, ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除失败!" + e.Message; return false; } } //删除出入库条码稽核临时表 扫描记录 [WebMethod] public bool set_DelPonderationBillMain_Audit_Temp_InterIDAndSource(long HInterID, long HMaterID, long HAuxPropID, long HSourceInterID, long HSourceEntryID, string sHBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl(); if (dal.DeleteByInterIDAndSource(HInterID, HMaterID, HAuxPropID, HSourceInterID, HSourceEntryID, sHBillType)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //删除出入库条码临时表(原单主ID 子ID) [WebMethod] public bool set_DelPonderationBillMain_Temp_SourceInterD(long HSourceInterID, long HSourceEntryID, string sHBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.DeleteByInterID(HSourceInterID, HSourceEntryID, sHBillType)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //删除先进先出临时表(更新 HlineStatus =1) [WebMethod] public bool set_DelPonderationBillMain_Temp_FIFO(long sHInterID, string sHBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.DeleteFIFOByInterID(sHInterID, sHBillType)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //返回出入库条码稽核临时表 /// /// 返回出入库条码稽核临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Audit_Temp(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Audit_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_View(); return dal.GetInfoByID_View(HInterID, sBillType, sWhere); } //返回出入库条码临时表 /// /// 返回出入库条码临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View(HInterID, sBillType, sWhere); } //返回出入库条码临时表(器具条码) /// /// 返回出入库条码临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_Mould(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View_Mould dal = new DAL.ClsKF_PonderationBillMain_Temp_View_Mould(); return dal.GetInfoByID_View(HInterID, sBillType, sWhere); } //返回出入库条码临时表(领料出库、收料通知单审核) /// /// 返回出入库条码临时表(领料出库、收料通知单审核) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_New(long HInterID, string sBillType, string sWhere) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_TempList " + HInterID.ToString() + ",'" + sBillType + "','" + sWhere + "'", "h_p_KF_PonderationBillMain_TempList"); if (DS == null || DS.Tables[0].Rows.Count == 0) { return null; } else { return DS; } } //返回出入库条码临时表 先进先出(领料出库) /// /// 返回出入库条码临时表 先进先出(领料出库) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_FIFO_New(long HInterID, string sBillType, long HMaterID, string sWhere) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_TmpList " + HInterID.ToString() + ",'" + sBillType + "'," + HMaterID, "h_p_Kf_ICInventory_FIFO_TmpList"); if (DS == null || DS.Tables[0].Rows.Count == 0) { return null; } else { return DS; } } //生产入库模块,返回源单生产汇报单扫描条码明细 /// /// 生产入库模块,返回源单生产汇报单扫描条码明细 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_ICStockBillSub_WMS_Temp(long HInterID, string sBillType, string sWhere) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_Kf_ICStockBillSub_WMS_TempList " + HInterID.ToString() + ",'" + sBillType + "','" + sWhere + "'", "h_p_Kf_ICStockBillSub_WMS_TempList"); if (DS == null || DS.Tables[0].Rows.Count == 0) { return null; } else { return DS; } } //出入库条码明细记录 一条条码一行 [WebMethod] public DataSet GetKf_PonderationBillMainDetails_Temp(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByIDDetails_View(HInterID, sBillType, sWhere); } //返回出入库条码临时表 /// /// 返回出入库条码临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_Sub(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View_Sub(HInterID, sBillType, sWhere); } //返回出入库条码临时表 /// /// 返回出入库条码临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_Sub_FIFO(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View_Sub_FIFO(HInterID, sBillType, sWhere); } //返回出入库条码临时表 /// /// 返回出入库条码临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_Sub_FIFO_Bill(string sBillNo, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View_Sub_FIFO_Bill(sBillNo, sBillType, sWhere); } //返回出入库条码临时表 /// /// 返回出入库条码临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_Sum(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View_Sum(HInterID, sBillType, sWhere); } //返回出入库条码临时表(未上传) /// /// 返回出入库条码临时表(未上传) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_OffLine(string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View(sBillType, sWhere); } //返回出入库条码临时表(先进先出) /// /// 返回出入库条码临时表(先进先出) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_FIFO(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View_FIFO(HInterID, sBillType, sWhere); } //返回出入库条码临时表(先进先出)(旧) /// /// 返回出入库条码临时表(先进先出)(旧) /// /// 过滤条件 /// //[WebMethod] //public DataSet GetKf_PonderationBillMain_Temp_FIFO_New(long HInterID, string sBillType, long HMaterID, string sWhere) //{ // DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); // return dal.GetInfoByID_View_FIFO(HInterID, sBillType, HMaterID, sWhere); //} //返回出入库条码临时表(带仓库仓位) /// /// 返回出入库条码临时表(带仓库仓位) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_Check(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View_Check(HInterID, sBillType, sWhere); } //返回出入库条码临时表(盘点) /// /// 返回出入库条码临时表(盘点) /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_CheckStcok(long HInterID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetInfoByID_View_CheckStcok(HInterID, sBillType, sWhere); } //返回即时库存列表 /// /// 返回即时库存列表 /// /// 过滤条件 /// [WebMethod] public DataSet Get_ICInventoryByBarCodeList(string sBarCode, long HWHID, long HSPID, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.Get_ICInventoryByBarCodeList(sBarCode, HWHID, HSPID, sWhere); } //根据物料返回即时库存列表 /// /// 根据物料返回即时库存列表 /// /// 过滤条件 /// [WebMethod] public DataSet Get_ICInventoryByMaterID(long HMaterID, long HWhID, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.Get_ICInventoryByMaterID(HMaterID, HWhID, sWhere); } //返回条码对应客户表 /// /// 返回条码对应客户表 /// /// 过滤条件 /// [WebMethod] public DataSet GetCusAndBarCodeList(long HInterID, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetCusAndBarCodeByID_View(HInterID, sWhere); } //返回条码临时表 /// /// 返回条码临时表 /// /// 过滤条件 /// [WebMethod] public DataSet GetBarCode_Temp(long HInterID, long HMaterID, Int64 HAuxPropID, string HMTONo, Int64 HWhID, Int64 HSPID, Int64 HSCWhID, Int64 HSCSPID, string HBatchNo, Int64 HSourceInterID, Int64 HSourceEntryID, string sBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetBarCodeByID_View(HInterID, sBillType, HMaterID, HAuxPropID, HMTONo, HWhID, HSPID, HSCWhID, HSCSPID, HBatchNo, HSourceInterID, HSourceEntryID, sWhere); } //回填条码临时表字段 HRelationInterID=1(条码出入库记录生成成功后回填 盘点) [WebMethod] public bool set_UpDatePonderationBillMain_Temp_HRelationInterID(long sHInterID, string sHBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); // if (dal.UpDateByRelationInterID(sHInterID, sHBillType)) { //sErrMsg = "更新成功!"; return true; } else { //sErrMsg = "更新失败!"; return false; } } #endregion #region 出入库条码临时表 *New //扫描物料条码,保存到出入库条码临时表 [WebMethod] public bool set_SavePonderationBillMain_Temp_New(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); DAL.ClsGy_BarCodeBill_View oBar = new DAL.ClsGy_BarCodeBill_View(); if (!oBar.GetInfoByNumber_View(oMain.HBarCode)) { sErrMsg = "无效条码"; return false; } else { if (oBar.omodel_View.HBarCodeType == "托盘条码") { if (!dal.IsBarCode_Pack(oMain.HBarCode, oMain.HInterID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } if (dal.AddNew_More_Select(ref sErrMsg)) { //sErrMsg = "保存成功!"; return true; } else { //sErrMsg = "保存失败!"; return false; } } else { if (oBar.omodel_View.HBarCodeType == "唯一条码") { if (!dal.IsBarCode(oMain.HBarCode, oMain.HInterID, oMain.HErpClsID, oMain.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet ds = oCn.RunProcReturn("exec h_p_WMS_CheckBarCodeOneScan " + oMain.HInterID.ToString() + ",'" + oMain.HBarCode + "','" + oMain.HBillType + "'," + oMain.HWhID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + ",'" + oMain.HMaker + "'", "h_p_WMS_CheckBarCodeOneScan"); if (ds == null || ds.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "对不起,您扫描的条形码已被扫描过,不符合一次扫码系统参数的要求!"; return false; } } } } //写入出入库临时表 try { oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HProcID,HWhID,HSCWHID" + ",HStockPlaceID,HOutStockPlaceID,HGroupID,HQty,HQtyMust,HPieceQty " + ",HAuxPropID,HBatchNo,HBarCode,HAddr,HMaker,HMakeDate " + ",HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo,HMTONo" + ",HSTOCKORGID,HOWNERID,HCusBarCode " + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag) " + " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HQtyMust.ToString() + "," + oMain.HPieceQty.ToString() + "," + oMain.HAuxPropID.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "','" + oMain.HAddr + "','" + oMain.HMaker + "',getdate()" + "," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "','" + oMain.HMTONo + "'" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ",'" + oMain.HCusBarCode + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ")"); return true; } catch (Exception e) { sErrMsg = "物料条码写入出入库临时表失败!" + e.Message; return false; } } } #endregion #region 出门确认单 * //生成出门确认单 [WebMethod] public bool set_SaveDoorOutCheckBill_New(Model.ClsSc_DoorOutCheckBillMain 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 (SaveDoorOutCheckBill(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } public bool SaveDoorOutCheckBill(Model.ClsSc_DoorOutCheckBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); 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_Sc_DoorOutCheckBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'"); //插入主表 oCn.RunProc("Insert Into Sc_DoorOutCheckBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate" + ",HYear,HPeriod,HRemark,HEmpID,HEmpNumber" + ",HGroupID,HDeptID,HDeptNumber" + ") " + " values('1202','1202'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),'" + oMain.HMaker + "',getdate()" + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "'," + oMain.HEmpID.ToString() + ",'" + oMain.HEmpNumber + "'" + ", " + oMain.HGroupID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HDeptNumber + "'" + ") "); //审核单据 //if (oSystemParameterMain.Sc_DoorOutCheckBill_AutoCheck == "Y") //系统参数 自动审核 //{ //审核单据 oCn.RunProc("Update Sc_DoorOutCheckBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=getdate() where HInterID= " + oMain.HInterID.ToString()); //} sErrMsg = "新增单据成功!"; oCn.Commit(); return true; } catch (Exception e) { sErrMsg = "生成出门确认单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 汇报单 #region 产量汇报单 //生成产量汇报单(无条码出入库记录) [WebMethod] public bool set_SaveICMOReportBill_Add(Model.ClsSc_ICMOReportBillMain oMain, Model.ClsSc_ICMOReportBillSub oSub, ref string sErrMsg) { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); dal.omodel = oMain; dal.oSub = oSub; dal.DetailColl.Add(oSub); if (dal.AddBill_PDA2(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //根据任务单 返回 该任务单上一次产量汇报信息 /// ///根据任务单 返回 该任务单上一次产量汇报信息 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_ICMOReportBill_HICMOInterID_chanliang(long HSourceInterID, string sWhere) { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); return dal.GetInfoByHICMOInterID_chanliang(HSourceInterID, sWhere); } #endregion #region 质量汇报单 //生成质量汇报单(无条码出入库记录) [WebMethod] public bool set_SaveQualityReportBill(Model.ClsSc_QualityReportBillMain oMain, Model.ClsSc_QualityReportBillSub oSub, ref string sErrMsg) { DAL.ClsSc_QualityReportBill dal = new DAL.ClsSc_QualityReportBill(); dal.omodel = oMain; dal.oSub = oSub; dal.DetailColl.Add(oSub); if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } #endregion ////返回k3生产任务单列表 ///// ///// 返回k3生产任务单列表 ///// ///// 过滤条件 ///// //[WebMethod] //public DataSet GetSc_ICMOBillList(string sWhere) //{ // DAL.Cls_S_K3_ICMOBill_Lite dal = new DAL.Cls_S_K3_ICMOBill_Lite(); // sWhere = " and 未汇报数量>0 "; // return dal.DisSourceBillList(sWhere); //} [WebMethod] public string GetICMOReportBillNo() { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); return dal.GetNewBillNo(); } //生成任务单汇报单 [WebMethod] public bool set_SaveICMOReportBill(Model.ClsSc_ICMOReportBillMain oMain, Model.ClsSc_ICMOReportBillSub oSub, ref string sErrMsg) { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); dal.omodel = oMain; dal.oSub = oSub; dal.DetailColl.Add(oSub); if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //批量生成任务单汇报单 [WebMethod] public bool set_SaveICMOReportBillMul(Model.ClsSc_ICMOReportBillMain oMain, Int64 HSource, ref string sErrMsg) { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); dal.omodel = oMain; //dal.oSub = oSub; //dal.DetailColl.Add(oSub); if (dal.AddBillMul_PDA(HSource, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //根据任务单 返回 该任务单上一次汇报的机台和操作工 /// /// 根据 返回 该任务单上一次汇报的机台和操作工 /// /// 过滤条件 /// [WebMethod] public DataSet GetSc_ICMOReportBill_HICMOInterID(long HSourceInterID, string sWhere) { DAL.ClsSc_ICMOReportBill dal = new DAL.ClsSc_ICMOReportBill(); return dal.GetInfoByHICMOInterID(HSourceInterID, sWhere); } #endregion #region 生产汇报单 * //生成生产汇报单 [WebMethod] public bool set_SaveICMOReportBill_New(Model.ClsSc_ICMOReportBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HPRDORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_ICMOReportBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + ",'" + oSystemParameter.omodel.Sc_ICMOReportBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_ICMOReportBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Sc_ICMOReportBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { return false; } if (oSystemParameter.omodel.Sc_ICMOReportBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveICMOReportBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存生产汇报单失败!" + sErrMsg; return false; } #endregion #region 生产汇报单CLOUD //生成生产汇报单 [WebMethod] public bool set_SaveICMOReportBill_CLD_New(Model.ClsSc_ICMOReportBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { //if (sHSourceType == "3710") //源单:生产订单 //{ if (SaveICMOReportBill_ICMO_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } //} //else //{ // sErrMsg = "错误的源单类型"; // return false; //} } /// /// 生产汇报单 源单:生产订单 /// /// /// /// public bool SaveICMOReportBill_ICMO_CLD(Model.ClsSc_ICMOReportBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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 Ds2; // 判断生产订单状态 是否为 完工 或结案 Ds2 = oCn.RunProcReturn("exec h_p_Sc_LoadICMOReportStatusCheck " + oMain.HInterID.ToString(), "h_p_Sc_LoadICMOReportStatusCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0) { sErrMsg = "判断生产订单状态失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HBack"]) == 2) { sErrMsg = "生产订单状态已完工不允许上传!" + DBUtility.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["HBackRemark"]); return false; } } oCn.BeginTran(); //写入WMS生产汇报单 //插入子表 oCn.RunProc("EXEC h_p_Sc_ICMOReportBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'"); //插入主表 oCn.RunProc("Insert Into Sc_ICMOReportBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HDate" + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + ",HEmpID,HGroupID,HDeptID,HPRDORGID" + ") " + " values('3711','3711'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HEmpID.ToString() + "," + oMain.HGroupID.ToString() + "," + oMain.HDeptID.ToString() + "," + oMain.HPRDORGID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToICMOReport_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetICMOReportBill_ICMO_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetICMOReportBill_ICMO_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetICMOReportBill_ICMO_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetICMOReportBill_ICMO_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_ZYMESFLAG = ""; //生产汇报单同步MES标记 string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); sJson_ZYMESFLAG = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHZYMESFLAG"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //"\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + //\"FDocumentStatus\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkshipIdH\":{\"FNumber\":\"\"}, //\"FDescription\":\"\", sJson_ZYMESFLAG + sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_EntryCustom = ""; string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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"]) + "\"}},"; } //自定义字段处理 if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_EntryCustom = "\"FBILLSTATUS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLSTATUS"]) + "\"," + //单据状态 "\"F_abcd_Datetime\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_abcd_Datetime"]) + "\","; //计划开工日期 } else if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_EntryCustom = "\"F_QOUL_ASSISTANT\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_QOUL_ASSISTANT"]) + "\"}," + //产品等级 "\"F_QOUL_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_QOUL_TEXT"]) + "\","; //销售订单号 } else { sJson_EntryCustom = ""; } sJson_Entry = sJson_Entry + " {" + //" \"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) + "," + " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FREPORTTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPORTTYPE"]) + "\"}," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FWORKSHIPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}," + //\"FShiftGroupId\":{\"FNumber\":\"\"}, sJson_BatchNo + //\"FDeptId\":{\"FNumber\":\"\"}, //sJson_StockPlace + //仓位移到下方 " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISENTRUST"]) + "," + " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + //\"FHumanQty\":\"0\", " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //\"FMachineQty\":\"0\", //\"FMaterialUnitID\":{\"FNumber\":\"\"}, //\"FStartTime\":\"1900-01-01\", //\"FEndTime\":\"1900-01-01\", //\"FTimeUnitId\":\"\", " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + //" \"FSTANDHOURUNITID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTANDHOURUNITID"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FSTDMANHOUR\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTDMANHOUR"]) + "," + " \"FHRPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FHRPREPARETIME"]) + "," + //\"FHrWorkTime\":\"0\", " \"FMACPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMACPREPARETIME"]) + "," + //\"FMacWorkTime\":\"0\", //\"FDescriptionE\":\"\", " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FSTOCKINORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKINORGID"]) + "\"}," + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + " \"FCOSTRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTRATE"]) + "," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + //" \"FSNQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNQty"]) + "," + sJson_FProduceDate + sJson_FExpiryDate + " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + " \"FBASEQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEQUAQTY"]) + "," + " \"FQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQUAQTY"]) + "," + " \"FBASEFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEFINISHQTY"]) + "," + " \"FFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FFINISHQTY"]) + "," + " \"FInStockType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockType"]) + "\"," + sJson_StockPlace + sJson_EntryCustom + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FQCMaterialId\":{\"FNUMBER\":\"\"}, //\"FInspectResult\":\"\", //\"FQcAuxPropId\":{\"FQCAUXPROPID__FF100002\":{\"FNumber\":\"\"}}, //\"FQCQty\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNUMBER\":\"\"}, //\"FQCStockInSelQty\":\"0\", //\"FSerialNote\":\"\", //\"FBaseQCQty\":\"0\", //\"FBaseQCStockInSelQty\":\"0\"}] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_MORPT", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildICMOReport '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产汇报单失败!" + HReturn; //sErrMsg = "生成生产汇报单失败!" + HReturn + sJson; LogService.Write("生成生产汇报单(源单:生产订单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { //韩电扫码生成生产汇报单时,回填对应条码档案源单信息 if (oSystemParameterMain.Sc_ICMOReportBill_UpdateSourceInterID == "Y") { oCn.RunProc("exec h_p_WMS_UpdateSourceByBarCodeBill_ICMOReportBill '" + oMain.HBillNo + "'"); } sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产汇报单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产汇报单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Sc_ICMOReportBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Sc_ICMOReportBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_MORPT", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_MORPT", sJson3 }); //审核单据 HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产汇报单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产汇报单(源单:生产订单)成功!" + sRemark); sErrMsg = "生成并审核生产汇报单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产汇报单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产汇报单(源单:生产订单)成功!" + sRemark); sErrMsg = "生成生产汇报单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 生产汇报单 Layui调用* //生成生产汇报单 [WebMethod] public bool set_SaveICMOReportBill_Layui(Model.ClsSc_ICMOReportBillMain 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.Sc_ICMOReportBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { return false; } if (oSystemParameter.omodel.Sc_ICMOReportBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveICMOReportBill_CLD_Layui(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存生产汇报单失败!" + sErrMsg; return false; } #endregion #region 生产汇报单CLOUD Layui调用 //生成生产汇报单 [WebMethod] public bool set_SaveICMOReportBill_CLD_Layui(Model.ClsSc_ICMOReportBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { //if (sHSourceType == "3710") //源单:生产订单 //{ if (SaveICMOReportBill_ICMO_CLD_Layui(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo + ";" + sErrMsg; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } //} //else //{ // sErrMsg = "错误的源单类型"; // return false; //} } /// /// 生产汇报单 源单:生产订单 /// /// /// /// public bool SaveICMOReportBill_ICMO_CLD_Layui(Model.ClsSc_ICMOReportBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //建立一个 事务; 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; DataSet Ds2; // 判断生产订单状态 是否为 完工 或结案 Ds2 = oCn.RunProcReturn("exec h_p_Sc_LoadICMOReportStatusCheck " + oMain.HInterID.ToString(), "h_p_Sc_LoadICMOReportStatusCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0) { sErrMsg = "判断生产订单状态失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HBack"]) == 2) { sErrMsg = "生产订单状态已完工不允许上传!" + DBUtility.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["HBackRemark"]); return false; } } //写入WMS生产汇报单 oCn.BeginTran(); //插入子表 oCn.RunProc("EXEC h_p_Sc_ICMOReportBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'"); //插入主表 oCn.RunProc("Insert Into Sc_ICMOReportBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HDate" + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + ",HEmpID,HGroupID,HDeptID,HPRDORGID" + ") " + " values('3711','3711'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HEmpID.ToString() + "," + oMain.HGroupID.ToString() + "," + oMain.HDeptID.ToString() + "," + oMain.HPRDORGID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToICMOReport_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Sc_ICMOReportBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Sc_ICMOReportBillMain 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_GetICMOReportBill_ICMO_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetICMOReportBill_ICMO_CLD_New"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_ZYMESFLAG = ""; //生产汇报单同步MES标记 sJson_ZYMESFLAG = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHZYMESFLAG"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //"\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + //\"FDocumentStatus\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkshipIdH\":{\"FNumber\":\"\"}, //\"FDescription\":\"\", sJson_ZYMESFLAG + "\"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_EntryCustom = ""; 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 (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"]) + "\"}},"; } //自定义字段处理 if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_EntryCustom = "\"FBILLSTATUS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLSTATUS"]) + "\"," + //单据状态 "\"F_abcd_Datetime\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_abcd_Datetime"]) + "\","; //计划开工日期 } // sJson_Entry = sJson_Entry + " {" + //" \"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) + "," + " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FREPORTTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPORTTYPE"]) + "\"}," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FWORKSHIPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}," + //\"FShiftGroupId\":{\"FNumber\":\"\"}, sJson_BatchNo + //\"FDeptId\":{\"FNumber\":\"\"}, sJson_StockPlace + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISENTRUST"]) + "," + " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + //\"FHumanQty\":\"0\", " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //\"FMachineQty\":\"0\", //\"FMaterialUnitID\":{\"FNumber\":\"\"}, //\"FStartTime\":\"1900-01-01\", //\"FEndTime\":\"1900-01-01\", //\"FTimeUnitId\":\"\", " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + //" \"FSTANDHOURUNITID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTANDHOURUNITID"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FSTDMANHOUR\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTDMANHOUR"]) + "," + " \"FHRPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FHRPREPARETIME"]) + "," + //\"FHrWorkTime\":\"0\", " \"FMACPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMACPREPARETIME"]) + "," + //\"FMacWorkTime\":\"0\", //\"FDescriptionE\":\"\", " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FSTOCKINORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKINORGID"]) + "\"}," + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + " \"FCOSTRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTRATE"]) + "," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + //\"FSNQty\":\"0\", //\"FProduceDate\":\"1900-01-01\", //\"FExpiryDate\":\"1900-01-01\", " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + " \"FBASEQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEQUAQTY"]) + "," + " \"FQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQUAQTY"]) + "," + " \"FBASEFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEFINISHQTY"]) + "," + " \"FFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FFINISHQTY"]) + "," + sJson_EntryCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FQCMaterialId\":{\"FNUMBER\":\"\"}, //\"FInspectResult\":\"\", //\"FQcAuxPropId\":{\"FQCAUXPROPID__FF100002\":{\"FNumber\":\"\"}}, //\"FQCQty\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNUMBER\":\"\"}, //\"FQCStockInSelQty\":\"0\", //\"FSerialNote\":\"\", //\"FBaseQCQty\":\"0\", //\"FBaseQCStockInSelQty\":\"0\"}] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } 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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 生产汇报单 string HReturn; string HReturn2 = ""; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_MORPT", sJson }); //调用保存方式 if (oSystemParameterMain.Sc_ICMOReportBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_MORPT", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_MORPT", sJson3 }); //审核单据 string sJson4 = "{\"Ids\":\"\",\"Numbers\":[\"" + oMain.HBillNo + "\"],\"EntryIds\":\"\",\"RuleId\":\"PRD_MORPT2INSTOCK\",\"TargetBillTypeId\":\"\",\"TargetOrgId\":\"0\",\"TargetFormId\":\"PRD_INSTOCK\",\"IsEnableDefaultRule\":\"false\",\"IsDraftWhenSaveFail\":\"true\",\"CustomParams\":{}}"; var result4 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Push", new object[] { "PRD_MORPT", sJson4 }); //下推生产入库单 HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); HReturn2 = result4.ToString(); } else { HReturn = result.ToString(); } if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产汇报单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { if (HReturn2.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产入库单失败!" + HReturn2; } else { sErrMsg = ""; } //车间在线报工模块 汇报后,根据汇报数量 反写 条码标签数量 oCn.RunProc("exec h_p_WMS_UpdateHQtyByBarCodeBill " + oMain.HInterID.ToString() + ",'3711'"); oCn.Commit(); return true; } } else { sErrMsg = "生成生产汇报单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成生产汇报单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 生产汇报单 报工平台产量汇报,报检申请 Layui调用* //生成生产汇报单 [WebMethod] public bool set_SaveICMOProductReportBill_Layui(Model.ClsSc_ICMOReportBillMain oMain, string workcode, int HSourceID, 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.Sc_ICMOReportBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { return false; } if (oSystemParameter.omodel.Sc_ICMOReportBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveICMOProductReportBill_CLD_Layui(oMain, workcode,HSourceID, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存生产汇报单失败!" + sErrMsg; return false; } #endregion #region 生产汇报单CLOUD 报工平台产量汇报,报报检申请 Layui调用 //生成生产汇报单 [WebMethod] public bool set_SaveICMOProductReportBill_CLD_Layui(Model.ClsSc_ICMOReportBillMain oMain,string workcode,int HSourceID, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { //if (sHSourceType == "3710") //源单:生产订单 //{ if (SaveICMOProductReportBill_ICMO_CLD_Layui(oMain, workcode, HSourceID, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo + ";" + sErrMsg; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } //} //else //{ // sErrMsg = "错误的源单类型"; // return false; //} } /// /// 生产汇报单 源单:生产订单 /// /// /// /// public bool SaveICMOProductReportBill_ICMO_CLD_Layui(Model.ClsSc_ICMOReportBillMain oMain,string workcode,int HSourceID, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //建立一个 事务; 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; //DataSet Ds2; // 判断生产订单状态 是否为 完工 或结案 //Ds2 = oCn.RunProcReturn("exec h_p_Sc_LoadICMOReportStatusCheck " + oMain.HInterID.ToString(), "h_p_Sc_LoadICMOReportStatusCheck"); //if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0) //{ // sErrMsg = "判断生产订单状态失败!"; // return false; //} //else //{ // if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HBack"]) == 2) // { // sErrMsg = "生产订单状态已完工不允许上传!" + DBUtility.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["HBackRemark"]); // return false; // } //} //写入WMS生产汇报单 oCn.BeginTran(); //根据单号、资源ID、订单主ID、订单子ID、制单人过滤产量汇报报检申请提交数据 string sql = string.Format(@"update Sc_ICMOBillWorkQtyStatus_Tmp set HICMOReportInterID ='" + oMain.HInterID + "', HICMOReportBillNo='" + oMain.HBillNo + "' from Sc_ICMOBillWorkQtyStatus_Tmp a where a.HICMOBillNo='" + workcode + "' and a.HSourceID='" + HSourceID + "' and HICMOInterID='" + oMain.HMainSourceInterID + "' and a.HICMOEntryID='" + oMain.HMainSourceEntryID + "' and a.HMaker='" + oMain.HMaker + "' and HRelationInterID='0'"); oCn.RunProc(sql); //根据生产订单号查询生产订单表,拿到组织、车间 DataSet ds0 = oCn.RunProcReturn("select HPRDORGID,HDeptID from Sc_ICMOBillMain with(nolock) where HBillNo='" + workcode + "'", "Sc_ICMOBillMain"); //查询产量汇报临时表 DataSet ds = oCn.RunProcReturn("select top 1 * from Sc_ICMOBillWorkQtyStatus_Tmp with(nolock) where HICMOReportInterID='" + oMain.HInterID + "' and HICMOReportBillNo='" + oMain.HBillNo + "'", "Sc_ICMOBillWorkQtyStatus_Tmp"); if (ds.Tables[0].Rows.Count <= 0) { sErrMsg = "当前单据无产量汇报记录!"; oCn.RollBack(); return false; } oMain.HGroupID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HGroupID"]); oMain.HDeptID = DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HDeptID"]); oMain.HPRDORGID = DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HPRDORGID"]); //插入子表 oCn.RunProc("exec h_p_Sc_ICMOReportBillSub_Insert_WorkQty " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'"); //插入主表 oCn.RunProc("Insert Into Sc_ICMOReportBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HDate" + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + ",HEmpID,HGroupID,HDeptID,HPRDORGID" + ") " + " values('3711','3711'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HEmpID.ToString() + "," + oMain.HGroupID.ToString() + "," + oMain.HDeptID.ToString() + "," + oMain.HPRDORGID.ToString() + ") "); //更新生产状态临时表(当日完工数量)HDateFinishQty h_p_JIT_Sc_ICMOBillStatus_Tmp_Qty oCn.RunProc("exec h_p_JIT_Sc_ICMOBillStatus_Tmp_Qty '"+ workcode + "','" + HSourceID + "','" + oMain.HMainSourceInterID + "','"+oMain.HMainSourceEntryID + "'"); //string sql1 = string.Format(@"update Sc_ICMOBillWorkQtyStatus_Tmp set // HICMOReportInterID ='" + oMain.HInterID + "', HICMOReportBillNo='" + oMain.HBillNo + "' from Sc_ICMOBillWorkQtyStatus_Tmp a where a.HICMOBillNo='" + workcode + "' and a.HSourceID='" + HSourceID + "' and HICMOInterID='" + oMain.HMainSourceInterID + "' and a.HICMOEntryID='" + oMain.HMainSourceEntryID + "' and a.HMaker='" + oMain.HMaker + "' and HRelationInterID='0'"); //oCn.RunProc(sql1); //string sql1 = string.Format(@"update Sc_ICMOBillStatus_Tmp "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToICMOReport_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Sc_ICMOReportBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Sc_ICMOReportBillMain 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_GetICMOReportBill_ICMO_CLD_WorkQty " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetICMOReportBill_ICMO_CLD_WorkQty"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取json子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_ZYMESFLAG = ""; //生产汇报单同步MES标记 sJson_ZYMESFLAG = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHZYMESFLAG"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //"\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + //\"FDocumentStatus\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkshipIdH\":{\"FNumber\":\"\"}, //\"FDescription\":\"\", sJson_ZYMESFLAG + "\"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_EntryCustom = ""; 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 (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"]) + "\"}},"; } //自定义字段处理 if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_EntryCustom = "\"FBILLSTATUS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLSTATUS"]) + "\"," + //单据状态 "\"F_abcd_Datetime\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_abcd_Datetime"]) + "\","; //计划开工日期 } // sJson_Entry = sJson_Entry + " {" + //" \"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) + "," + " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FREPORTTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPORTTYPE"]) + "\"}," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FWORKSHIPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}," + //\"FShiftGroupId\":{\"FNumber\":\"\"}, sJson_BatchNo + //\"FDeptId\":{\"FNumber\":\"\"}, sJson_StockPlace + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISENTRUST"]) + "," + " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + //\"FHumanQty\":\"0\", " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //\"FMachineQty\":\"0\", //\"FMaterialUnitID\":{\"FNumber\":\"\"}, //\"FStartTime\":\"1900-01-01\", //\"FEndTime\":\"1900-01-01\", //\"FTimeUnitId\":\"\", " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + //" \"FSTANDHOURUNITID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTANDHOURUNITID"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FSTDMANHOUR\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTDMANHOUR"]) + "," + " \"FHRPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FHRPREPARETIME"]) + "," + //\"FHrWorkTime\":\"0\", " \"FMACPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMACPREPARETIME"]) + "," + //\"FMacWorkTime\":\"0\", //\"FDescriptionE\":\"\", " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FSTOCKINORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKINORGID"]) + "\"}," + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + " \"FCOSTRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTRATE"]) + "," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + //\"FSNQty\":\"0\", //\"FProduceDate\":\"1900-01-01\", //\"FExpiryDate\":\"1900-01-01\", " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + " \"FBASEQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEQUAQTY"]) + "," + " \"FQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQUAQTY"]) + "," + " \"FBASEFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEFINISHQTY"]) + "," + " \"FFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FFINISHQTY"]) + "," + sJson_EntryCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FQCMaterialId\":{\"FNUMBER\":\"\"}, //\"FInspectResult\":\"\", //\"FQcAuxPropId\":{\"FQCAUXPROPID__FF100002\":{\"FNumber\":\"\"}}, //\"FQCQty\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNUMBER\":\"\"}, //\"FQCStockInSelQty\":\"0\", //\"FSerialNote\":\"\", //\"FBaseQCQty\":\"0\", //\"FBaseQCStockInSelQty\":\"0\"}] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } 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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveMESCLOUDUseNamePsd(oMain.HMaker); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 生产汇报单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); string msgReport = dbId + ';' + sCLOUDUseName + ';' + sCLOUDPsd + ';' + 2052; //LogService.Write($"{Pub_Class.ClsPub.sCLOUDUrl}、{dbId}、{sCLOUDUseName}、{sCLOUDPsd}"); LogService.Write(sJson); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_MORPT", sJson }); //调用保存方式 if (oSystemParameterMain.Sc_ICMOReportBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_MORPT", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_MORPT", sJson3 }); //审核单据 HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); LogService.Write(sJson2); LogService.Write(sJson3); } else { HReturn = result.ToString(); } if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产汇报单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { oCn.Commit(); return true; } } else { sErrMsg = "生成生产汇报单失败!登录失败!"+ msgReport; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成生产汇报单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 生产汇报单 报工平台产量汇报,报检申请 Layui调用*(雅琪诺专用) //生成生产汇报单 [WebMethod] public bool set_SaveICMOProductReportBill_LayuiYqn(Model.ClsSc_ICMOReportBillMain oMain, string workcode, int HSourceID, string sHSourceType,string HProcID, ref string sErrMsg) { Log.LogInfo(workcode.ToString()); //记录提交数据 //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } // if (oSystemParameter.omodel.Sc_ICMOReportBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { return false; } if (oSystemParameter.omodel.Sc_ICMOReportBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveICMOProductReportBill_CLD_LayuiYqn(oMain, workcode, HSourceID, sHSourceType, HProcID, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存生产汇报单失败!" + sErrMsg; return false; } #endregion #region 生产汇报单CLOUD 报工平台产量汇报,报报检申请 Layui调用(雅琪诺专用) //生成生产汇报单 [WebMethod] public bool set_SaveICMOProductReportBill_CLD_LayuiYqn(Model.ClsSc_ICMOReportBillMain oMain, string workcode, int HSourceID, string sHSourceType,string HProcID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { //if (sHSourceType == "3710") //源单:生产订单 //{ if (SaveICMOProductReportBill_ICMO_CLD_LayuiYqn(oMain, workcode, HSourceID, sHSourceType, HProcID, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo + ";" + sErrMsg; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } //} //else //{ // sErrMsg = "错误的源单类型"; // return false; //} } /// /// 生产汇报单 源单:生产订单 /// /// /// /// public bool SaveICMOProductReportBill_ICMO_CLD_LayuiYqn(Model.ClsSc_ICMOReportBillMain oMain, string workcode, int HSourceID, string sHSourceType,string HProcID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //建立一个 事务; 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; //DataSet Ds2; // 判断生产订单状态 是否为 完工 或结案 //Ds2 = oCn.RunProcReturn("exec h_p_Sc_LoadICMOReportStatusCheck " + oMain.HInterID.ToString(), "h_p_Sc_LoadICMOReportStatusCheck"); //if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0) //{ // sErrMsg = "判断生产订单状态失败!"; // return false; //} //else //{ // if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HBack"]) == 2) // { // sErrMsg = "生产订单状态已完工不允许上传!" + DBUtility.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["HBackRemark"]); // return false; // } //} //写入WMS生产汇报单 oCn.BeginTran(); //根据单号、资源ID、订单主ID、订单子ID、制单人过滤产量汇报报检申请提交数据 string sql = string.Format(@"update Sc_ICMOBillWorkQtyStatus_Tmp set HICMOReportInterID ='" + oMain.HInterID + "', HICMOReportBillNo='" + oMain.HBillNo + "' from Sc_ICMOBillWorkQtyStatus_Tmp a where a.HICMOBillNo='" + workcode + "' and a.HSourceID='" + HSourceID + "' and HProcID='"+ HProcID + "' and HICMOInterID='" + oMain.HMainSourceInterID + "' and a.HICMOEntryID='" + oMain.HMainSourceEntryID + "' and a.HMaker='" + oMain.HMaker + "' and HRelationInterID='0'"); oCn.RunProc(sql); //根据生产订单号查询生产订单表,拿到组织、车间 DataSet ds0 = oCn.RunProcReturn("select HPRDORGID,HDeptID from Sc_ICMOBillMain with(nolock) where HBillNo='" + workcode + "'", "Sc_ICMOBillMain"); //查询产量汇报临时表 DataSet ds = oCn.RunProcReturn("select top 1 * from Sc_ICMOBillWorkQtyStatus_Tmp with(nolock) where HICMOReportInterID='" + oMain.HInterID + "' and HICMOReportBillNo='" + oMain.HBillNo + "' and HProcID='" + HProcID + "'", "Sc_ICMOBillWorkQtyStatus_Tmp"); if (ds.Tables[0].Rows.Count <= 0) { sErrMsg = "当前单据无产量汇报记录!"; oCn.RollBack(); return false; } oMain.HGroupID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HGroupID"]); oMain.HDeptID = DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HDeptID"]); oMain.HPRDORGID = DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HPRDORGID"]); //插入子表 oCn.RunProc("exec h_p_Sc_ICMOReportBillSub_Insert_WorkQtyYqn " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + sHSourceType + "'"); //Log.LogInfo("执行通过2"); //插入主表 oCn.RunProc("Insert Into Sc_ProcessReportMain" + "(HYear,HPeriod,HBillType,HBillSubType,HInterID" + ",HDate,HBillNo,HBillStatus,HCheckItemNowID,HCheckItemNextID" + ",HICMOInterID,HICMOBillNo ,HDeptID ,HDeptNumber,HGroupID" + ",HGroupNumber,HMaterID,HMaterNumber,HUnitID,HUnitNumber" + ",HPlanQty,HInStockQty,HSumTimes,HExplanation,HRemark" + ",HInnerBillNo,HMaker,HMakeDate,HSupID,HMarker" + ") " + " values('" + oMain.HYear.ToString() + "','"+ oMain.HPeriod.ToString() + "','3714','3714','"+ oMain.HInterID.ToString() + "'" + ", convert(varchar(10),getdate(),120),'"+oMain.HBillNo+"','2','0','0'" + ", '"+oMain.HMainSourceInterID+"','','" + oMain.HDeptID.ToString() + "','','"+ ds.Tables[0].Rows[0]["HGroupID"].ToString() +"'" + ", '','" + ds.Tables[0].Rows[0]["HMaterID"].ToString() + "','','0',''" + ", '" + ds.Tables[0].Rows[0]["HPlanQty"].ToString() + "','0','0','同步erp生产汇报单','报工台同步工序汇报单'" + ",'','" +oMain.HMaker+ "','" + oMain.HDate + "','0',''" + ") "); //更新生产状态临时表(当日完工数量)HDateFinishQty h_p_JIT_Sc_ICMOBillStatus_Tmp_Qty //oCn.RunProc("exec h_p_JIT_Sc_ICMOBillStatus_Tmp_QtyYqn '" + workcode + "','" + HSourceID + "','"+HProcID+"','" + oMain.HMainSourceInterID + "','" + oMain.HMainSourceEntryID + "'"); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToICMOReport_AddYqn " + oMain.HInterID.ToString()); if (oSystemParameterMain.Sc_ICMOReportBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Sc_ProcessReportMain 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_GetICMOReportBill_ICMO_CLD_WorkQtyYqn " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetICMOReportBill_ICMO_CLD_WorkQty"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取json子表信息失败!"; oCn.RollBack(); return false; } else { Log.LogInfo("执行通过s"); string sJson_ZYMESFLAG = ""; //生产汇报单同步MES标记 sJson_ZYMESFLAG = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHZYMESFLAG"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //"\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + //\"FDocumentStatus\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkshipIdH\":{\"FNumber\":\"\"}, //\"FDescription\":\"\", sJson_ZYMESFLAG + "\"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_EntryCustom = ""; 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 (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"]) + "\"}},"; } //自定义字段处理 if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_EntryCustom = "\"FBILLSTATUS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLSTATUS"]) + "\"," + //单据状态 "\"F_abcd_Datetime\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_abcd_Datetime"]) + "\","; //计划开工日期 } // sJson_Entry = sJson_Entry + " {" + //" \"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) + "," + " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FREPORTTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPORTTYPE"]) + "\"}," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FWORKSHIPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}," + " \"FShiftGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HGROUPID"]) + "\"}," + //\"FShiftGroupId\":{\"FNumber\":\"\"}, sJson_BatchNo + //\"FDeptId\":{\"FNumber\":\"\"}, sJson_StockPlace + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISENTRUST"]) + "," + " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + //\"FHumanQty\":\"0\", " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //\"FMachineQty\":\"0\", //\"FMaterialUnitID\":{\"FNumber\":\"\"}, //\"FStartTime\":\"1900-01-01\", //\"FEndTime\":\"1900-01-01\", //\"FTimeUnitId\":\"\", " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + //" \"FSTANDHOURUNITID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTANDHOURUNITID"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FSTDMANHOUR\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTDMANHOUR"]) + "," + " \"FHRPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FHRPREPARETIME"]) + "," + //\"FHrWorkTime\":\"0\", " \"FMACPREPARETIME\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMACPREPARETIME"]) + "," + //\"FMacWorkTime\":\"0\", //\"FDescriptionE\":\"\", " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FSTOCKINORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKINORGID"]) + "\"}," + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + " \"FCOSTRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTRATE"]) + "," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"F_zzzz_procedure\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HSOURCENAME"]) + "\"," + " \"F_zzzz_equipment\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HPROCNAME"]) + "\"," + //\"FSNQty\":\"0\", //\"FProduceDate\":\"1900-01-01\", //\"FExpiryDate\":\"1900-01-01\", " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + " \"FBASEQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEQUAQTY"]) + "," + " \"FQUAQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQUAQTY"]) + "," + " \"FBASEFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEFINISHQTY"]) + "," + " \"FFINISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FFINISHQTY"]) + "," + sJson_EntryCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FQCMaterialId\":{\"FNUMBER\":\"\"}, //\"FInspectResult\":\"\", //\"FQcAuxPropId\":{\"FQCAUXPROPID__FF100002\":{\"FNumber\":\"\"}}, //\"FQCQty\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNUMBER\":\"\"}, //\"FQCStockInSelQty\":\"0\", //\"FSerialNote\":\"\", //\"FBaseQCQty\":\"0\", //\"FBaseQCStockInSelQty\":\"0\"}] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } 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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveMESCLOUDUseNamePsd(oMain.HMaker); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 生产汇报单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); string msgReport = dbId + ';' + sCLOUDUseName + ';' + sCLOUDPsd + ';' + 2052; //LogService.Write($"{Pub_Class.ClsPub.sCLOUDUrl}、{dbId}、{sCLOUDUseName}、{sCLOUDPsd}"); LogService.Write(sJson); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_MORPT", sJson }); //调用保存方式 if (oSystemParameterMain.Sc_ICMOReportBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_MORPT", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_MORPT", sJson3 }); //审核单据 HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); LogService.Write(sJson2); LogService.Write(sJson3); } else { HReturn = result.ToString(); } if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产汇报单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { oCn.Commit(); return true; } } else { sErrMsg = "生成生产汇报单失败!登录失败!" + msgReport; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成生产汇报单失败Erro!" + e.Message+e.StackTrace; oCn.RollBack(); return false; } } #endregion #region 调拨单(领料、销售、直接)CLOUD //调拨单(领料 [WebMethod] public bool set_SaveMoveBill_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "3720")//生产用料清单 { if (SaveMoveStockBill_PPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } ////领料调拨(源单:生产任务单-投料) //if (sHSourceType == "3720") //{ // if (SaveMoveMaterOut_CLD(oMain, oSystemParameterMain, ref sErrMsg)) // { // //"保存成功!"; // sErrMsg = "保存成功!" + oMain.HBillNo; // return true; // } // else // { // //"保存失败!"; // sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; // //sErrMsg = sErrMsg; // return false; // } //} //发货调拨(源单:发货通知单) else if (sHSourceType == "1402") { if (SaveMoveSellOut_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; //sErrMsg = sErrMsg; return false; } } else if (sHSourceType == "1243") //调拨申请单 { if (SaveMoveStockBill_MoveStockRequest_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } //直接调拨 else if (sHSourceType == "-1") { if (SaveMoveOut_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; //sErrMsg = sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } //领料调拨 private bool SaveMoveMaterOut_CLD(Model.ClsKf_MoveStockBillMain 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_MoveStockBillSub_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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateMoveStockPPBomRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); } //返工生产调拨 回填条码档案源单信息 if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { oCn.RunProc("exec h_p_Kf_MoveMaterOut_UpdateSourceByBarCodeBill " + oMain.HInterID.ToString()); } if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") //系统参数 启用器具管理 { string HMouldBillType = "3814"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveMaterOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveMaterOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_CHLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CHLX"]) + "\","; //出货类型 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\" }," + "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\" }," + "\"FStockOutOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\" }," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + sJson_StockStyle + "\"FBillEntry\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FAUXPROPID = ""; 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //自定义字段处理 sJson_Entry = sJson_Entry + " { \"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + //"\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}}," + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + //"\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}}," + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + "\"FBusinessDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + "\"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + "\"FOwnerOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\" }," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FSecUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitID"]) + "\" }," + "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + "\"FISFREE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "\"," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + "\"FKeeperOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\" }," + "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + "\"FTransReserveLink\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "\"," + "\"FCheckDelivery\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "\"," + sJson_BatchNo + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FBillEntry_Link\": [ { " + "\"FBillEntry_Link_FFLOWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWID"]) + "\"," + "\"FBillEntry_Link_FFLOWLINEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWLINEID"]) + "\"," + "\"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FRuleId"]) + "\"," + "\"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSTableName"]) + "\"," + "\"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSBillId"]) + "\"," + "\"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 领料调拨 1个物料1单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','3720'"); if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生成领料调拨单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成领料调拨单失败!" + e.Message; oCn.RollBack(); return false; } } //发货调拨 private bool SaveMoveSellOut_CLD(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; // oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_SeOutStock " + 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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") //系统参数 启用器具管理 { string HMouldBillType = "3814"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveSellOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveSellOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_CHLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CHLX"]) + "\","; //出货类型 } else if (oSystemParameterMain.WMS_CampanyName == "四维尔") { sJson_StockStyle = "\"F_ABCD_ASSISTANT\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT"]) + "\" }," + //收货人 "\"F_ABCD_ASSISTANT1\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT1"]) + "\" }," + //送货地址 "\"F_ABCD_ASSISTANT2\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT2"]) + "\" }," + //物流公司 "\"F_ABCD_ASSISTANT3\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT3"]) + "\" }," + //联系电话 "\"F_ABCD_DATE2\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_DATE2"]) + "\","; //要求到货日期 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\" }," + "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\" }," + "\"FStockOutOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\" }," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FIsIncludedTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "\"," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + sJson_StockStyle + sJson_MainCustom + "\"FBillEntry\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FAUXPROPID = ""; string sJson_SWECustom = ""; 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_SrcStockPlace = "\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; sJson_DestStockPlace = "\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } else { //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //自定义字段处理 if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_SWECustom = "\"FNoteEntry\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNOTE"]) + "\"," + //备注 "\"FRANNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRANNUMBER"]) + "\"," + //RanNumber "\"F_ABCD_DECIMAL1\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_DECIMAL1"]) + "," + //箱数 "\"F_ABCD_QTY1\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_QTY1"]) + ","; //应发数量 } sJson_Entry = sJson_Entry + " { \"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + //"\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}}," + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + //"\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}}," + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + "\"FBusinessDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + "\"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + "\"FOwnerOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\" }," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FSecUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitID"]) + "\" }," + "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + "\"FISFREE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "\"," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + "\"FKeeperOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\" }," + "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + "\"FTransReserveLink\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "\"," + "\"FCheckDelivery\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "\"," + sJson_BatchNo + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FJOINUNSETTLEQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FJOINUNSETTLEQTY"]) + "\"," + "\"FJOINBASEUNSETTQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FJOINBASEUNSETTQTY"]) + "\"," + sJson_SWECustom + "\"FBillEntry_Link\": [ { " + "\"FBillEntry_Link_FFLOWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWID"]) + "\"," + "\"FBillEntry_Link_FFLOWLINEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWLINEID"]) + "\"," + "\"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FRuleId"]) + "\"," + "\"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSTableName"]) + "\"," + "\"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSBillId"]) + "\"," + "\"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSId"]) + "\"," + " } ] } "; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','1402'"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成发货调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:发货通知单)失败-旧方法!" + HReturn + sJson); //写入txt文本 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_Move '" + 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_Move_Close '" + oMain.HBillNo + "'"); } } LogService.Write("生成直接调拨单(源单:发货通知单)成功-旧方法!" + sJson); oCn.Commit(); } } else { sErrMsg = "生成发货调拨单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成发货调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成发货调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { sErrMsg = "生成并审核发货调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { sErrMsg = "审核发货调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { sErrMsg = "生成发货调拨单成功!单据号为:" + oMain.HBillNo; return true; } } //分布式调出单 private bool SaveMoveSellOut_CLD33(Model.ClsKf_MoveStockBillMain 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_MoveStockBillSub_Insert_SeOutStock " + 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," + ") " + " values('1207','1207'," + 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_MoveStockBill_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_GetMoveSellOutBill_CLD33 " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveSellOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " +//\"FID\":" + oMain.HInterID.ToString() + "," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FOwnerTypeIdHead \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\" }," + "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\" }," + "\"FStockInOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockInOrgId"]) + "\" }," + "\"FOwnerTypeInIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerInIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerInIdHead"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FIsIncludedTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "\"," + "\"FIsPriceExcludeTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "\"," + "\"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + "\"FSTKTRSOUTENTRY\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } string sJson_BatchNo = ""; 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 = ""; } //自定义字段处理 sJson_Entry = sJson_Entry + " { \"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + "\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}}," + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + "\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}}," + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + //"\"FBusinessDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + "\"FOwnerTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + "\"FOwnerInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerInId"]) + "\" }," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FSecUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitID"]) + "\" }," + "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + "\"FISFREE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "\"," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FKeeperTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + "\"FKeeperInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperInId"]) + "\" }," + "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + "\"FTransReserveLink\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "\"," + "\"FCheckDelivery\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "\"," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FBillEntry_Link\": [ { " + "\"FBillEntry_Link_FFLOWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWID"]) + "\"," + "\"FBillEntry_Link_FFLOWLINEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWLINEID"]) + "\"," + "\"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FRuleId"]) + "\"," + "\"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSTableName"]) + "\"," + "\"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSBillId"]) + "\"," + "\"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 发货调拨 1个物料1单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TRANSFEROUT", sJson }); if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TRANSFEROUT", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TRANSFEROUT", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生成发货调拨单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成发货调拨单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 调拨单 //生成调拨单 [WebMethod] public bool set_SaveMoveStockBill(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, ref string sErrMsg) { DAL.ClsKf_MoveStockBill dal = new DAL.ClsKf_MoveStockBill(); DAL.ClsKF_PonderationBillMain_Temp_View tmp = new DAL.ClsKF_PonderationBillMain_Temp_View(); dal.omodel = oMain; //判断扫描记录,是否按照先进先出规则 if (!tmp.CheckICInventory_FIFO_Tmp(oMain.HInterID, oMain.HBillType, ref sErrMsg)) { return false; } //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_MoveStockBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MoveStockBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_MoveStockBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { //上传前必填项判断 if (oMain.HSecManagerID == 0) { sErrMsg = "验收没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (sHSourceType == "3720") { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else if (sHSourceType == "1402") { if (dal.AddBill_PDA_SeOutStock(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else if (sHSourceType == "1243") { if (dal.AddBill_PDA_MoveStockRequest(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_MoveStockBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "韩电" || oSystemParameter.omodel.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { if (set_SaveMoveBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SaveMoveStockBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_MoveStockBill_ERPMode.ToUpper() == "MES") //只生成WMS单据 { if (set_SaveMoveStockBill_MES(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存调拨单失败!" + sErrMsg; return false; } //生成调拨单(盘点单) [WebMethod] public bool set_SaveMoveStockBill_PD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, ref string sErrMsg) { DAL.ClsKf_MoveStockBill dal = new DAL.ClsKf_MoveStockBill(); DAL.ClsKF_PonderationBillMain_Temp_View tmp = new DAL.ClsKF_PonderationBillMain_Temp_View(); dal.omodel = oMain; //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } // if (set_SaveMoveStockBill_CLD_New_PD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } sErrMsg = "保存调拨单失败!" + sErrMsg; return false; } #region 安瑞盘点单 [WebMethod] public bool set_SaveMoveStockBill_CLD_New_PD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "-1")//无源单 { if (SaveMoveOut_CLD_PD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } #endregion /// /// 安瑞盘点单 /// /// /// /// private bool SaveMoveOut_CLD_PD(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','-1'"); //插入主表 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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3814"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveOutBill_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveOutBill_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; string sJson_MainCustom = ""; //主表自定义字段 string sJson_BillTypeID = ""; //单据类型 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oMain.HBillSubType == "" || oMain.HBillSubType == null) { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" },"; } else { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + oMain.HBillSubType + "\" },"; } if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_CHLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CHLX"]) + "\","; //出货类型 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + sJson_BillTypeID + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\" }," + "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\" }," + "\"FStockOutOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\" }," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + sJson_StockStyle + sJson_MainCustom + "\"FBillEntry\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //调入仓位、调出仓位 if (oSystemParameterMain.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { sJson_SrcStockPlace = "\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; sJson_DestStockPlace = "\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } else { //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else if (oSystemParameterMain.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {\"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + sJson_BatchNo + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + //"\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}}," + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + //"\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}}," + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + // "\"FBusinessDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + sJson_FProduceDate + sJson_FExpiryDate + "\"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + "\"FOwnerOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\" }," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + "\"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + "\"FKeeperOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\" }," + "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + "\"FPriceUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitId"]) + "\" }," + "\"FPriceQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," + "\"FPriceBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," + "\"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + sJson_SubCustom + "\"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "} "; //"\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + //"\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //"\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," + //"\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + //"\"FBillEntry_Link\": [ { " + //"\"FBillEntry_Link_FFLOWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWID"]) + "\"," + //"\"FBillEntry_Link_FFLOWLINEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWLINEID"]) + "\"," + //"\"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FRuleId"]) + "\"," + //"\"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSTableName"]) + "\"," + //"\"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSBillId"]) + "\"," + //"\"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSId"]) + "\"," + //" } ] //" } "; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Draft", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 //oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','-1'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn + sJson; LogService.Write("生成直接调拨单(源单:无源单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); return true; } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BarCode_MoveStock_PD(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, string HScanStyle, ref string sErrMsg) { try { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOutOrgID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } sBarCode = sBarCode.Trim(); if (sBarCode == "") { sErrMsg = "条码不能为空,请扫描条码!"; return null; } else { //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); string sBarCodePrefix = sBarCode.Substring(0, Math.Min(3, sBarCode.Length));//截取条码前三位字符串 if (sBarCodePrefix == "PAK") { bool HRedBlueFlag = false; //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode_New '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HStockOutOrgID.ToString(), "h_p_WMS_AddMouldBarCode_New"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //森楷专用 if (oSystemParameter.omodel.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock_SenKai(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, "整托扫码", oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } return oBar; } else { //托盘条码 卓力 if (dal.omodel_View.HBarCodeType == "托盘条码" && oSystemParameter.omodel.WMS_CampanyName == "卓力") { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_Pack_MoveStock_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料托条码失败!" + sErrMsg; return null; } return oBar; } //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 else if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } if (i != 0) { SourceFlag = true; } //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock_AR(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } } } return oBar; } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock_PD(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } return oBar; } } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } } catch (Exception e) { sErrMsg = e.Message + ";" + e.StackTrace; return null; } } //扫描物料条码 存入条码出入库临时表 调拨 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_MoveStock_PD(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); string HMaterNumber; //物料代码 string sSourceBillCtl = "N"; //是否进行源单信息核对('Y'为核对源单信息) string sBatchNoCtl = "N"; //是否进行批号核对('Y'为核对批号) string sMultilineCtl = "N"; //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) string sMustQtyCtl = "不控制"; //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) string sMaterWHSPCtl = "N"; //是否取物料默认仓库仓位('Y'为是) string sSourceWHSPCtl = "N"; //是否取源单中仓库仓位('Y'为是) string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) string sFIFOCtl = "N"; //先进先出控制('Y'为控制) string sMulSourceCtl = "N"; //是否启用多源单扫码模式('Y'为启用) //根据单据类型,获取对应单据系统参数值 if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg)) { } //判断调入仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "调入仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse"); if (dsWh == null || dsWh.Tables[0].Rows.Count == 0) { sErrMsg = "所选调入仓库不属于该调入组织!"; return false; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调入仓位没有选择!"; return false; } } //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断;3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStock '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillType + "'," + DBUtility.ClsPub.BoolToString(SourceFlag), "h_p_WMS_AddBarCode_MoveStock"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]); omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]); omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]); omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]); //源单可扫数量 HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } double sRelQty = 0; //获取扫码数量 if (omodel_View.HBarCodeType == "唯一条码") { if (HQty > 0 && omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } else //批次条码、品种条码 { if (HQty > 0) { sRelQty = HQty; } else if (omodel_View.HSourceQty > 0) { sRelQty = omodel_View.HSourceQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } double sWMSQty = 0; //条码库存数量 double sERPQty = 0; //ERP库存数量 string sWhName = ""; //仓库名称 string sSPName = ""; //仓位名称 //if (omodel_View.HBarCodeType == "唯一条码") //{ // //判断条码库存 库存控制-WMS负库存控制 // if (oSystemParameterMain.WMS_WMSStockCtl == "Y" && HBillType != "1251") // { // //判断条码库存 返回条码库存数量 // DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory"); // if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) // { // sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!"; // return false; // } // else // { // HSCWHID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]); // HSCSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]); // sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HQty"]); // sWhName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HWhName"]); // sSPName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HSPName"]); // if (sWMSQty <= 0) // { // sErrMsg = "所扫描物料条码:" + omodel_View.HBarCode + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无条码库存!"; // return false; // } // //判断扫描数量与条码库存数量 // else if (sRelQty > sWMSQty) // { // sRelQty = sWMSQty; // } // } // } //} //判断调出仓库、仓位是否有效 if (HSCWHID == 0) { sErrMsg = "调出仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse"); if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选调出仓库不属于该调出组织!"; return false; } else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调出仓位没有选择!"; return false; } } //判断ERP库存 库存控制-ERP负库存控制 私有云模式 //if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && oSystemParameterMain.WMS_CloudMode == "Y" && HBillType != "1251") //{ // //判断ERP库存 返回ERP库存数量 // DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory"); // if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) // { // sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!"; // return false; // } // else // { // sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); // sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]); // sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]); // if (sERPQty <= 0) // { // sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!"; // return false; // } // //判断扫描数量与金蝶库存数量 // else if (sRelQty > sERPQty) // { // sRelQty = sERPQty; // } // } //} if (HWhID == HSCWHID && HSPID == HSCSPID) { sErrMsg = "调入仓库、仓位不能与调出仓库、仓位相同!"; return false; } //唯一条码,是否启用一次扫码控制('Y'为启用) if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return false; } } } oMain.HInterID = HBillID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = omodel_View.HMaterID; oMain.HAuxPropID = omodel_View.HAuxPropID; oMain.HQty = sRelQty; oMain.HQtyMust = 0; oMain.HBarCode = omodel_View.HBarCode; oMain.HBatchNo = omodel_View.HBatchNo; oMain.HMTONo = omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = HSCWHID; oMain.HOutStockPlaceID = HSCSPID; oMain.HSourceInterID = omodel_View.HSourceInterID; oMain.HSourceEntryID = omodel_View.HSourceEntryID; oMain.HSourceBillNo = omodel_View.HSourceBillNo; oMain.HSourceBillType = HSourceBillType; if (omodel_View.HProduceDate < Convert.ToDateTime("1950-01-01")) { oMain.HBeginDate = ""; } else { oMain.HBeginDate = omodel_View.HProduceDate.ToShortDateString(); } if (omodel_View.HExpiryDate < Convert.ToDateTime("1950-01-01")) { oMain.HEndDate = ""; } else { oMain.HEndDate = omodel_View.HExpiryDate.ToShortDateString(); } oMain.HRedBlueFlag = false; oMain.HPieceQty = 1; oMain.HSTOCKORGID = HStockOutOrgID; oMain.HOWNERID = HStockInOrgID; //先进先出控制 //if (HSourceBillType != "-1" && HBillType != "1251" && sFIFOCtl == "Y") //{ // DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + oMain.HBatchNo + "','" + oMain.HBarCode + "'," + oMain.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode"); // if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) // { // sErrMsg = "判断先进先出控制发生错误!"; // return false; // } // else // { // if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 0) // { // sRelQty = DBUtility.ClsPub.isDoule(FIFO.Tables[0].Rows[0]["HQty"]); // } // else // { // sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); // return false; // } // } //} oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill,HBeginDate,HEndDate) " + " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','',0" + ",0,0,'" + oMain.HCusBarCode + "',0," + (oMain.HBeginDate == "" ? "NULL" : "'" + oMain.HBeginDate + "'") + "," + (oMain.HEndDate == "" ? "NULL" : "'" + oMain.HEndDate + "'") + ")"); return true; } //扫描物料条码 存入条码出入库临时表 调拨 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_MoveStock_AR(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); string HMaterNumber; //物料代码 string sSourceBillCtl = "N"; //是否进行源单信息核对('Y'为核对源单信息) string sBatchNoCtl = "N"; //是否进行批号核对('Y'为核对批号) string sMultilineCtl = "N"; //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) string sMustQtyCtl = "不控制"; //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) string sMaterWHSPCtl = "N"; //是否取物料默认仓库仓位('Y'为是) string sSourceWHSPCtl = "N"; //是否取源单中仓库仓位('Y'为是) string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) string sFIFOCtl = "N"; //先进先出控制('Y'为控制) string sMulSourceCtl = "N"; //是否启用多源单扫码模式('Y'为启用) //根据单据类型,获取对应单据系统参数值 if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg)) { } //判断调入仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "调入仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse"); if (dsWh == null || dsWh.Tables[0].Rows.Count == 0) { sErrMsg = "所选调入仓库不属于该调入组织!"; return false; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调入仓位没有选择!"; return false; } } //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断;3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStock '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillType + "'," + DBUtility.ClsPub.BoolToString(SourceFlag), "h_p_WMS_AddBarCode_MoveStock"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]); omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]); omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]); omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]); //源单可扫数量 HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } double sRelQty = 0; //获取扫码数量 if (omodel_View.HBarCodeType == "唯一条码") { if (HQty > 0 && omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } else //批次条码、品种条码 { if (HQty > 0) { sRelQty = HQty; } else if (omodel_View.HSourceQty > 0) { sRelQty = omodel_View.HSourceQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } double sWMSQty = 0; //条码库存数量 double sERPQty = 0; //ERP库存数量 string sWhName = ""; //仓库名称 string sSPName = ""; //仓位名称 if (omodel_View.HBarCodeType == "唯一条码") { //判断条码库存 库存控制-WMS负库存控制 if (oSystemParameterMain.WMS_WMSStockCtl == "Y" && HBillType != "1251") { //判断条码库存 返回条码库存数量 DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory"); if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!"; return false; } else { HSCWHID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]); HSCSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]); sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HSPName"]); if (sWMSQty <= 0) { sErrMsg = "所扫描物料条码:" + omodel_View.HBarCode + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无条码库存!"; return false; } //判断扫描数量与条码库存数量 else if (sRelQty > sWMSQty) { sRelQty = sWMSQty; } } } } //判断调出仓库、仓位是否有效 if (HSCWHID == 0) { sErrMsg = "调出仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse"); if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选调出仓库不属于该调出组织!"; return false; } else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调出仓位没有选择!"; return false; } } //判断ERP库存 库存控制-ERP负库存控制 私有云模式 if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && oSystemParameterMain.WMS_CloudMode == "Y" && HBillType != "1251") { //判断ERP库存 返回ERP库存数量 DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory"); if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!"; return false; } else { sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]); if (sERPQty <= 0) { sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!"; return false; } //判断扫描数量与金蝶库存数量 else if (sRelQty > sERPQty) { sRelQty = sERPQty; } } } if (HWhID == HSCWHID && HSPID == HSCSPID) { sErrMsg = "调入仓库、仓位不能与调出仓库、仓位相同!"; return false; } //唯一条码,是否启用一次扫码控制('Y'为启用) if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return false; } } } oMain.HInterID = HBillID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = omodel_View.HMaterID; oMain.HAuxPropID = omodel_View.HAuxPropID; oMain.HQty = sRelQty; oMain.HQtyMust = 0; oMain.HBarCode = omodel_View.HBarCode; oMain.HBatchNo = omodel_View.HBatchNo; oMain.HMTONo = omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = HSCWHID; oMain.HOutStockPlaceID = HSCSPID; oMain.HSourceInterID = omodel_View.HSourceInterID; oMain.HSourceEntryID = omodel_View.HSourceEntryID; oMain.HSourceBillNo = omodel_View.HSourceBillNo; oMain.HSourceBillType = HSourceBillType; if (omodel_View.HProduceDate < Convert.ToDateTime("1950-01-01")) { oMain.HBeginDate = ""; } else { oMain.HBeginDate = omodel_View.HProduceDate.ToShortDateString(); } if (omodel_View.HExpiryDate < Convert.ToDateTime("1950-01-01")) { oMain.HEndDate = ""; } else { oMain.HEndDate = omodel_View.HExpiryDate.ToShortDateString(); } oMain.HRedBlueFlag = false; oMain.HPieceQty = 1; oMain.HSTOCKORGID = HStockOutOrgID; oMain.HOWNERID = HStockInOrgID; //先进先出控制 if (HSourceBillType != "-1" && HBillType != "1251" && sFIFOCtl == "Y") { DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + oMain.HBatchNo + "','" + oMain.HBarCode + "'," + oMain.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "判断先进先出控制发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 0) { sRelQty = DBUtility.ClsPub.isDoule(FIFO.Tables[0].Rows[0]["HQty"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return false; } } } oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill,HBeginDate,HEndDate) " + " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','',0" + ",0,0,'" + oMain.HCusBarCode + "',0," + (oMain.HBeginDate == "" ? "NULL" : "'" + oMain.HBeginDate + "'") + "," + (oMain.HEndDate == "" ? "NULL" : "'" + oMain.HEndDate + "'") + ")"); return true; } //核对虚仓调拨K3 [WebMethod] public bool set_CheckXCMoveStockBill(Model.ClsKf_XCMoveStockBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_XCMoveStockBill_K3 dal = new DAL.ClsKf_XCMoveStockBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //核对虚仓调拨K3(单行) [WebMethod] public bool set_CheckXCMoveStockBill_Row(Int64 HSourceInterID, Int64 HSourceEntryID, ref string sErrMsg) { DAL.ClsKf_XCMoveStockBill_K3 dal = new DAL.ClsKf_XCMoveStockBill_K3(); if (dal.AddBill_WMS_PDA(HSourceInterID, HSourceEntryID, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //核对实仓调拨K3 [WebMethod] public bool set_CheckMoveStockBill(Model.ClsKf_MoveStockBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_MoveStockBill_K3 dal = new DAL.ClsKf_MoveStockBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //核对实仓调拨K3(单行) [WebMethod] public bool set_CheckMoveStockBill_Row(Int64 HSourceInterID, Int64 HSourceEntryID, ref string sErrMsg) { DAL.ClsKf_MoveStockBill_K3 dal = new DAL.ClsKf_MoveStockBill_K3(); if (dal.AddBill_WMS_PDA(HSourceInterID, HSourceEntryID, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核调拨单K3 [WebMethod] public bool set_AuditMoveStockBill(Model.ClsKf_MoveStockBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_MoveStockBill_K3 dal = new DAL.ClsKf_MoveStockBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //得到调拨出货类型 [WebMethod] public DataSet get_StockMoveStyle() { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("select HName from Gy_StockMoveStyle where HStopflag=0", "Gy_StockMoveStyle"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } //得到调拨方向 [WebMethod] public DataSet get_MoveDirect() { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("select HName from Gy_MoveDirect where HStopflag=0", "Gy_MoveDirect"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } #endregion #region 直接调拨单CLOUD *New [WebMethod] public bool set_SaveMoveStockBill_CLD_New(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "3720")//生产用料清单 { if (SaveMoveStockBill_PPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1604") //委外用料清单 { if (SaveMoveStockBill_WWPPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1402") //发货通知单 { if (SaveMoveStockBill_SeOutStock_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1243") //调拨申请单 { if (SaveMoveStockBill_MoveStockRequest_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1242") //出库申请单 { if (SaveMoveStockBill_StockOutRequest_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1214") //生产发料通知单 { if (SaveMoveStockBill_MateOutRequest_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "-1")//无源单 { if (SaveMoveOut_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 直接调拨单 源单:生产用料清单 /// /// /// /// private bool SaveMoveStockBill_PPBom_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateMoveStockPPBomRelation_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3814"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_PPBom_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_PPBom_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_PPBom_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_PPBom_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FStockerId\":{\"FNumber\":\"\"}, //\"FStockerGroupId\":{\"FNumber\":\"\"}, "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FScanBox\":\"\", //\"FThirdSystem\":\"\", //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", sJson_MainCustom + "\"FBillEntry\": [ "; 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_DestBatchNo = ""; //调入批号 string sJson_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , "; sJson_DestBatchNo = " \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"},"; } else { sJson_BatchNo = ""; sJson_DestBatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + sJson_BatchNo + " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," + sJson_SrcStockPlace + //\"FPrice\":\"0\", " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," + sJson_DestStockPlace + " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," + //\"FDeliChkQualifyType\":\"\", //\"FAmount\":\"0\", sJson_FProduceDate + " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + sJson_FExpiryDate + " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FNoteEntry\":\"\", " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //\"FOutJoinQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecQty\":\"0\", //\"FBASEOUTJOINQTY\":\"0\", " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "," + " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //\"FActQty\":\"0\", " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," + //\"FDiscountRate\":\"0\", //\"FRepairQty\":\"0\", //\"FRETURNNOTE\":\"\", sJson_DestBatchNo + " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," + " \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + //\"FServiceContext\":\"\", //\"FPriceUnitID\":{\"FNumber\":\"\"}, //\"FPriceQty\":\"0\", //\"FPriceBaseQty\":\"0\", //\"FSOEntryId\":\"0\", " \"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //\"FThirdSrcEntryId\":\"\", " \"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FORDERTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\"}," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FBillEntry_Link\": [{" + " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:生产用料清单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成直接调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核直接调拨单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成并审核直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成直接调拨单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 直接调拨单 源单:委外用料清单 /// /// /// /// private bool SaveMoveStockBill_WWPPBom_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_WWPPBomToMoveStock_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_WWPPBom_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_WWPPBom_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_WWPPBom_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_WWPPBom_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FStockerId\":{\"FNumber\":\"\"}, //\"FStockerGroupId\":{\"FNumber\":\"\"}, "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FScanBox\":\"\", //\"FThirdSystem\":\"\", //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", sJson_MainCustom + "\"FBillEntry\": [ "; 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_DestBatchNo = ""; //调入批号 string sJson_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , "; sJson_DestBatchNo = " \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"},"; } else { sJson_BatchNo = ""; sJson_DestBatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + sJson_BatchNo + " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," + sJson_SrcStockPlace + //\"FPrice\":\"0\", " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," + sJson_DestStockPlace + " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," + //\"FDeliChkQualifyType\":\"\", //\"FAmount\":\"0\", sJson_FProduceDate + " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + sJson_FExpiryDate + " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FNoteEntry\":\"\", " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //\"FOutJoinQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecQty\":\"0\", //\"FBASEOUTJOINQTY\":\"0\", " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "," + " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //\"FActQty\":\"0\", " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," + //\"FDiscountRate\":\"0\", //\"FRepairQty\":\"0\", //\"FRETURNNOTE\":\"\", sJson_DestBatchNo + " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," + " \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + //\"FServiceContext\":\"\", //\"FPriceUnitID\":{\"FNumber\":\"\"}, //\"FPriceQty\":\"0\", //\"FPriceBaseQty\":\"0\", //\"FSOEntryId\":\"0\", " \"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //\"FThirdSrcEntryId\":\"\", " \"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "," + " \"FORDERTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\"}," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FBillEntry_Link\": [{" + " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FBillEntry_Link_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:委外用料清单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成直接调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核直接调拨单(源单:委外用料清单)成功!" + sRemark); sErrMsg = "生成并审核直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成直接调拨单(源单:委外用料清单)成功!" + sRemark); sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 直接调拨单 源单:发货通知单 /// /// /// /// private bool SaveMoveStockBill_SeOutStock_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_SeOutStockToMoveStock_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_SeOutStock_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_SeOutStock_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_SeOutStock_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_SeOutStock_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FScanBox\":\"\", //\"FThirdSystem\":\"\", //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", "\"FExchangeRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FExchangeRate"]) + "," + "\"FEXCHANGETYPEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FEXCHANGETYPEID"]) + "\" }," + "\"FSettleModeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleModeId"]) + "\"}," + "\"FRecConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRecConditionId"]) + "\"}," + "\"FSaleDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleDeptId"]) + "\" }," + "\"FSaleGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleGroupId"]) + "\" }," + "\"FSalerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSalerId"]) + "\" }," + sJson_MainCustom + "\"FBillEntry\": [ "; 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_DestBatchNo = ""; //调入批号 string sJson_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , "; sJson_DestBatchNo = " \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"},"; } else { sJson_BatchNo = ""; sJson_DestBatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + sJson_BatchNo + " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," + sJson_SrcStockPlace + //\"FPrice\":\"0\", " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," + sJson_DestStockPlace + " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," + //\"FDeliChkQualifyType\":\"\", //\"FAmount\":\"0\", sJson_FProduceDate + " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + sJson_FExpiryDate + " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FNoteEntry\":\"\", //" \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //\"FOutJoinQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecQty\":\"0\", //\"FBASEOUTJOINQTY\":\"0\", " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "," + " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //\"FActQty\":\"0\", " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," + " \"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + //\"FRepairQty\":\"0\", //\"FRETURNNOTE\":\"\", sJson_DestBatchNo + " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," + " \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + //\"FServiceContext\":\"\", " \"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + " \"FPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "," + " \"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + " \"FSOEntryId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOEntryId"]) + "," + " \"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //\"FThirdSrcEntryId\":\"\", " \"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FConsignPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FConsignPrice"]) + "," + " \"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + " \"FTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "," + " \"FTaxNetPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxNetPrice"]) + "," + " \"FCUSTMATID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCUSTMATID"]) + "\"}," + " \"FSaleUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSaleUnitId"]) + "\"}," + " \"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + " \"FSrcAuxUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcAuxUnitId"]) + "\"}," + " \"FNoticeNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNoticeNo"]) + "\"," + " \"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "," + " \"FORDERTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\"}," + " \"FJoinUnSettleQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FJoinUnSettleQty"]) + "\"," + " \"FJoinBaseUnSettQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FJoinBaseUnSettQty"]) + "\"," + " \"FSrcBizBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBizBaseQty"]) + "\"," + " \"FSrcAuxBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcAuxBaseQty"]) + "\"," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FBillEntry_Link\": [{" + " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:发货通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成直接调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核直接调拨单(源单:发货通知单)成功!" + sRemark); sErrMsg = "生成并审核直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成直接调拨单(源单:发货通知单)成功!" + sRemark); sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 直接调拨单 源单:调拨申请单 /// /// /// /// private bool SaveMoveStockBill_MoveStockRequest_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_MoveStockRequestToMoveStock_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3814"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_MoveStockRequest_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_MoveStockRequest_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_MoveStockRequest_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_MoveStockRequest_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FIsIncludedTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "\"," + "\"FIsPriceExcludeTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "\"," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FStockerId\":{\"FNumber\":\"\"}, //\"FStockerGroupId\":{\"FNumber\":\"\"}, "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FScanBox\":\"\", //\"FThirdSystem\":\"\", //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", sJson_MainCustom + "\"FBillEntry\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + sJson_BatchNo + " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," + sJson_SrcStockPlace + //\"FPrice\":\"0\", " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," + sJson_DestStockPlace + " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," + //\"FDeliChkQualifyType\":\"\", //\"FAmount\":\"0\", sJson_FProduceDate + " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + sJson_FExpiryDate + " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FNoteEntry\":\"\", //" \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //\"FOutJoinQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecQty\":\"0\", //\"FBASEOUTJOINQTY\":\"0\", " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + " \"FISFREE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "\"," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //\"FActQty\":\"0\", " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," + //\"FDiscountRate\":\"0\", //\"FRepairQty\":\"0\", //\"FRETURNNOTE\":\"\", //" \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"}," + " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," + //" \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + //\"FServiceContext\":\"\", " \"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + " \"FPriceQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," + " \"FPriceBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "\"," + //\"FSOEntryId\":\"0\", " \"FTransReserveLink\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "\"," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //\"FThirdSrcEntryId\":\"\", // " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + " \"FSaleUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSaleUnitId"]) + "\"}," + " \"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + " \"FSrcAuxUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcAuxUnitId"]) + "\"}," + " \"FSrcBizBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBizBaseQty"]) + "\"," + " \"FSrcAuxBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcAuxBaseQty"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FBillEntry_Link\": [{" + " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FBillEntry_Link_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:调拨申请单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成直接调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核直接调拨单(源单:调拨申请单)成功!" + sRemark); sErrMsg = "生成并审核直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成直接调拨单(源单:调拨申请单)成功!" + sRemark); sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 直接调拨单 源单:出库申请单 /// /// /// /// private bool SaveMoveStockBill_StockOutRequest_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_StockOutRequestToMoveStock_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_StockOutRequest_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_StockOutRequest_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_StockOutRequest_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_StockOutRequest_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FStockerId\":{\"FNumber\":\"\"}, //\"FStockerGroupId\":{\"FNumber\":\"\"}, "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FScanBox\":\"\", //\"FThirdSystem\":\"\", //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", sJson_MainCustom + "\"FBillEntry\": [ "; 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_DestBatchNo = ""; //调入批号 string sJson_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , "; sJson_DestBatchNo = " \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"},"; } else { sJson_BatchNo = ""; sJson_DestBatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + sJson_BatchNo + " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," + sJson_SrcStockPlace + //\"FPrice\":\"0\", " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," + sJson_DestStockPlace + " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," + //\"FDeliChkQualifyType\":\"\", //\"FAmount\":\"0\", sJson_FProduceDate + " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + sJson_FExpiryDate + " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FNoteEntry\":\"\", " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //\"FOutJoinQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecQty\":\"0\", //\"FBASEOUTJOINQTY\":\"0\", " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "," + " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //\"FActQty\":\"0\", " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," + //\"FDiscountRate\":\"0\", //\"FRepairQty\":\"0\", //\"FRETURNNOTE\":\"\", sJson_DestBatchNo + " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," + " \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + //\"FServiceContext\":\"\", //\"FPriceUnitID\":{\"FNumber\":\"\"}, //\"FPriceQty\":\"0\", //\"FPriceBaseQty\":\"0\", //\"FSOEntryId\":\"0\", " \"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //\"FThirdSrcEntryId\":\"\", " \"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "," + " \"FORDERTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\"}," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + " \"FSrcSeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcSeq"]) + "\"," + " \"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + " \"FSaleBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSaleBaseQty"]) + "," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FBillEntry_Link\": [{" + " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FBillEntry_Link_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:出库申请单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成直接调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核直接调拨单(源单:出库申请单)成功!" + sRemark); sErrMsg = "生成并审核直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成直接调拨单(源单:出库申请单)成功!" + sRemark); sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 直接调拨单 源单:生产发料通知单 /// /// /// /// private bool SaveMoveStockBill_MateOutRequest_CLD(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_MateOutRequestToMoveStock_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_MateOutRequest_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_MateOutRequest_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_MateOutRequest_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBill_MateOutRequest_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FStockerId\":{\"FNumber\":\"\"}, //\"FStockerGroupId\":{\"FNumber\":\"\"}, "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FScanBox\":\"\", //\"FThirdSystem\":\"\", //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", sJson_MainCustom + "\"FBillEntry\": [ "; 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_DestBatchNo = ""; //调入批号 string sJson_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , "; sJson_DestBatchNo = " \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"},"; } else { sJson_BatchNo = ""; sJson_DestBatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + sJson_BatchNo + " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," + sJson_SrcStockPlace + //\"FPrice\":\"0\", " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," + sJson_DestStockPlace + " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," + //\"FDeliChkQualifyType\":\"\", //\"FAmount\":\"0\", sJson_FProduceDate + " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + sJson_FExpiryDate + " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FNoteEntry\":\"\", " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //\"FOutJoinQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecQty\":\"0\", //\"FBASEOUTJOINQTY\":\"0\", " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "," + " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //\"FActQty\":\"0\", " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," + //\"FDiscountRate\":\"0\", //\"FRepairQty\":\"0\", //\"FRETURNNOTE\":\"\", sJson_DestBatchNo + " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," + " \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + //\"FServiceContext\":\"\", //\"FPriceUnitID\":{\"FNumber\":\"\"}, //\"FPriceQty\":\"0\", //\"FPriceBaseQty\":\"0\", //\"FSOEntryId\":\"0\", " \"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //\"FThirdSrcEntryId\":\"\", " \"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "," + " \"FORDERTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\"}," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + " \"FSrcSeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcSeq"]) + "\"," + " \"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + " \"FSaleBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSaleBaseQty"]) + "," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FBillEntry_Link\": [{" + " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FBillEntry_Link_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:生产发料通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成直接调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核直接调拨单(源单:生产发料通知单)成功!" + sRemark); sErrMsg = "生成并审核直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成直接调拨单(源单:生产发料通知单)成功!" + sRemark); sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 直接调拨单 源单:无源单 /// /// /// /// private bool SaveMoveOut_CLD(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','-1'"); //插入主表 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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3814"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveOutBill_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveOutBill_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; string sJson_MainCustom = ""; //主表自定义字段 string sJson_BillTypeID = ""; //单据类型 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oMain.HBillSubType == "" || oMain.HBillSubType == null) { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" },"; } else { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + oMain.HBillSubType + "\" },"; } if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_CHLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CHLX"]) + "\","; //出货类型 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + sJson_BillTypeID + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\" }," + "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\" }," + "\"FStockOutOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\" }," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + sJson_StockStyle + sJson_MainCustom + "\"FBillEntry\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //调入仓位、调出仓位 if (oSystemParameterMain.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { sJson_SrcStockPlace = "\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; sJson_DestStockPlace = "\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } else { //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else if (oSystemParameterMain.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {\"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + sJson_BatchNo + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + //"\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}}," + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + //"\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}}," + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + // "\"FBusinessDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + sJson_FProduceDate + sJson_FExpiryDate + "\"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + "\"FOwnerOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\" }," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + "\"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + "\"FKeeperOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\" }," + "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + "\"FPriceUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitId"]) + "\" }," + "\"FPriceQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," + "\"FPriceBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," + "\"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + sJson_SubCustom + "\"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "} "; //"\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + //"\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //"\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," + //"\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + //"\"FBillEntry_Link\": [ { " + //"\"FBillEntry_Link_FFLOWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWID"]) + "\"," + //"\"FBillEntry_Link_FFLOWLINEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FFLOWLINEID"]) + "\"," + //"\"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FRuleId"]) + "\"," + //"\"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSTableName"]) + "\"," + //"\"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSBillId"]) + "\"," + //"\"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBillEntry_Link_FSId"]) + "\"," + //" } ] //" } "; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + oMain.HBillNo + "','-1'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成直接调拨单失败!" + HReturn; LogService.Write("生成直接调拨单(源单:无源单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成直接调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核直接调拨单(源单:无源单)成功!" + sRemark); sErrMsg = "生成并审核直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成直接调拨单(源单:无源单)成功!" + sRemark); sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 直接调拨单 只生成WMS单据 [WebMethod] public bool set_SaveMoveStockBill_MES(Model.ClsKf_MoveStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); 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 = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + s; return false; } oMain.HYear = sYear; oMain.HPeriod = sPeriod; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','-1'"); //插入主表 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" + ",HStockStyle,HTransferDirect,HShipType" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + 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) + ",'" + oMain.HStockStyle + "','" + oMain.HTransferDirect + "','" + oMain.HShipType + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 if (sHSourceType == "3720")//生产用料清单 { oCn.RunProc("exec h_p_Sc_UpDateMoveStockPPBomRelation_Add " + oMain.HInterID.ToString()); } else if (sHSourceType == "1604") //委外用料清单 { oCn.RunProc("exec h_p_Kf_UpDateRelation_WWPPBomToMoveStock_Add " + oMain.HInterID.ToString()); } else if (sHSourceType == "1402") //发货通知单 { oCn.RunProc("exec h_p_Kf_UpDateRelation_SeOutStockToMoveStock_Add " + oMain.HInterID.ToString()); } else if (sHSourceType == "1243") //调拨申请单 { oCn.RunProc("exec h_p_Kf_UpDateRelation_MoveStockRequestToMoveStock_Add " + oMain.HInterID.ToString()); } else if (sHSourceType == "1242") //出库申请单 { oCn.RunProc("exec h_p_Kf_UpDateRelation_StockOutRequestToMoveStock_Add " + oMain.HInterID.ToString()); } else if (sHSourceType == "1214") //生产发料通知单 { oCn.RunProc("exec h_p_Kf_UpDateRelation_MateOutRequestToMoveStock_Add " + oMain.HInterID.ToString()); } else if (sHSourceType == "-1")//无源单 { } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); } sErrMsg = "生成直接调拨单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } catch (Exception e) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 直接调拨单 校验模式* //校验直接调拨单 [WebMethod] public bool set_SaveMoveStockBill_BillCheck(Model.ClsKf_MoveStockBillMain oMain, ref string sErrMsg) { if (set_SaveMoveStockBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } [WebMethod] public bool set_SaveMoveStockBill_CLD_BillCheck(Model.ClsKf_MoveStockBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_MoveStockBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MoveStockBillCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } if (oSystemParameter.omodel.Kf_MoveStockBillCheck_MustQtyCtl == "完全等于应收") { string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核直接调拨单失败!" + HReturn; oCn.RollBack(); return false; } else { oCn.Commit(); return true; } } else { sErrMsg = "校验审核直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } else { //根据TMP表 返回 修改信息 DataSet Ds2; Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockBillCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FBillEntry\",\"FQty\"]," + "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"false\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + "\"FBillEntry\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + " {" + "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FQty"]) + "\" " + "}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //验证用户信息 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //修改单据 var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "修改直接调拨单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { HReturn = ""; //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "校验审核直接调拨单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { //重新同步直接调拨单 oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_MoveStock '" + oMain.HBillNo + "'"); oCn.Commit(); return true; } } } else { sErrMsg = "校验审核直接调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } } catch (Exception e) { sErrMsg = "校验审核直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 分步式调出单 * //生成分步式调出单 [WebMethod] public bool set_SaveMoveStockStepOutBill_New(Model.ClsKf_MoveStockStepOutBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockStepOutBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_MoveStockStepOutBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MoveStockStepOutBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (set_SaveMoveStockStepOutBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } //} sErrMsg = "保存分步式调出单失败!" + sErrMsg; return false; } #endregion #region 分步式调出单CLOUD * //生成分步式调出单 [WebMethod] public bool set_SaveMoveStockStepOutBill_CLD_New(Model.ClsKf_MoveStockStepOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1402") //发货通知单 { if (SaveMoveStockStepOutBill_SeOutStock_CLD_New(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } if (sHSourceType == "1243") //调拨申请单 { if (SaveMoveStockStepOutBill_MoveStockRequest_CLD_New(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "-1") //无源单 { if (SaveMoveStockStepOutBill_CLD_New(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 分步式调出单 源单:调拨申请单 /// /// /// /// public bool SaveMoveStockStepOutBill_MoveStockRequest_CLD_New(Model.ClsKf_MoveStockStepOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockStepOutBillSub_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" + ",HSTOCKINORGID,HSTOCKOUTORGID,HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1250','1250'," + 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) + ", " + oMain.HStockInOrgID.ToString() + "," + oMain.HStockOutOrgID.ToString() + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_MoveStockRequestToMoveStock_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3840"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepOutBill_MoveStockRequest_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepOutBill_MoveStockRequest_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepOutBill_MoveStockRequest_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepOutBill_MoveStockRequest_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FOwnerTypeIdHead \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FOwnerTypeInIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeInIdHead"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FOwnerInIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerInIdHead"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FStockInOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockInOrgId"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + "\"FVESTONWAY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVESTONWAY"]) + "\"," + //\"FSTOCKERID\":{\"FNumber\":\"\"}, //\"FSTOCKERGROUPID\":{\"FNumber\":\"\"}, //\"FNOTE\":\"\", "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + //\"FScanBox\":\"\", //\"FCustID\":{\"FNUMBER\":\"\"}, "\"FSUPPLIERID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\" }," + sJson_MainCustom + "\"FSTKTRSOUTENTRY\": [ "; 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_DestBatchNo = ""; //调入批号 string sJson_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FDestProduceDate = ""; //调入生产日期 string sJson_FDestExpiryDate = ""; //调入有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , "; sJson_DestBatchNo = " \"FDESTLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDESTLOT"]) + "\"}, \"FDESTLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDESTLOT"]) + "\" , "; } else { sJson_BatchNo = ""; sJson_DestBatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; sJson_FDestProduceDate = " \"FDestProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestProduceDate"]) + "\","; sJson_FDestExpiryDate = " \"FDESTEXPIRYDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDESTEXPIRYDATE"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; sJson_FDestProduceDate = ""; sJson_FDestExpiryDate = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + sJson_BatchNo + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + //"\"FDELICHKQUALIFYTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDELICHKQUALIFYTYPE"]) + "\"," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + sJson_FProduceDate + "\"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FOwnerTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEINID"]) + "\"," + "\"FOwnerInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerInId"]) + "\" }," + //"\"FEntryNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryNote"]) + "\"," + "\"FKeeperTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEINID"]) + "\"," + "\"FKeeperInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperInId"]) + "\" }," + "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FExtAuxUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\" }," + //\"FExtAuxUnitQty\":\"0\", "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FDestMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMTONO"]) + "\"," + "\"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + "\"FSNUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\" }," + "\"FSecUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitID"]) + "\" }," + "\"FCheckDelivery\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "\"," + "\"FSrcBillDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillDate"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + sJson_FExpiryDate + sJson_FDestProduceDate + sJson_FDestExpiryDate + sJson_DestBatchNo + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] "\"FSTKTSTKRANSFEROUTENTRY_Link\": [ { " + "\"FSTKTSTKRANSFEROUTENTRY_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TRANSFEROUT", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMoveStockStepOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成分步式调出单失败!" + HReturn; LogService.Write("生成分步式调出单(源单:调拨申请单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成分步式调出单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成分步式调出单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockStepOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TRANSFEROUT", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TRANSFEROUT", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成分步式调出单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核分步式调出单(源单:调拨申请单)成功!" + sRemark); sErrMsg = "生成并审核分步式调出单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核分步式调出单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成分步式调出单(源单:调拨申请单)成功!" + sRemark); sErrMsg = "生成分步式调出单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 分步式调出单 源单:发货通知单 /// /// /// /// public bool SaveMoveStockStepOutBill_SeOutStock_CLD_New(Model.ClsKf_MoveStockStepOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockStepOutBillSub_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" + ",HSTOCKINORGID,HSTOCKOUTORGID,HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1250','1250'," + 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) + ", " + oMain.HStockInOrgID.ToString() + "," + oMain.HStockOutOrgID.ToString() + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_SeOutStockToMoveStockStepOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3840"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepOutBill_SeOutStock_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepOutBill_SeOutStock_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepOutBill_SeOutStock_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepOutBill_SeOutStock_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Custom = ""; string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_CampanyName == "四维尔")//系统参数 客户定制化名称 空白为通用 { sJson_Custom = "\"F_ABCD_ASSISTANT\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT"]) + "\" }," + //物流公司 "\"F_ABCD_ASSISTANT1\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT1"]) + "\" }," + //送货地址 "\"F_ABCD_ASSISTANT2\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT2"]) + "\" }," + //收货人 "\"F_ABCD_ASSISTANT3\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT3"]) + "\" }," + //联系电话 "\"F_ABCD_DATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_DATE"]) + "\","; //要求到货日期 } else { sJson_Custom = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", //"\"FOwnerTypeIdHead \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + //"\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FOwnerTypeInIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeInID"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FOwnerInIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERINID"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FStockInOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockInOrgId"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + //"\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + "\"FVESTONWAY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVESTONWAY"]) + "\"," + //\"FSTOCKERID\":{\"FNumber\":\"\"}, //\"FSTOCKERGROUPID\":{\"FNumber\":\"\"}, //\"FNOTE\":\"\", "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + //\"FScanBox\":\"\", //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FSUPPLIERID\":{\"FNUMBER\":\"\"}, "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEOUTID"]) + "\"," + "\"FOwnerOutIDHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNEROUTID"]) + "\" }," + "\"FISGENFORIOS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISGENFORIOS"]) + "\"," + "\"FISIOSFORFIN\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISIOSFORFIN"]) + "\"," + sJson_Custom + sJson_MainCustom + "\"FSTKTRSOUTENTRY\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FDestProduceDate = ""; //调入生产日期 string sJson_FDestExpiryDate = ""; //调入有效期至 string sJson_EntryCustom = ""; string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; sJson_FDestProduceDate = " \"FDestProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestProduceDate"]) + "\","; sJson_FDestExpiryDate = " \"FDESTEXPIRYDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDESTEXPIRYDATE"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; sJson_FDestProduceDate = ""; sJson_FDestExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } //自定义字段处理 if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_EntryCustom = "\"F_ABCD_INTEGER\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_INTEGER"]) + "," + //SNP "\"F_ABCD_DECIMAL\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_DECIMAL"]) + "," + //箱数 "\"F_ABCD_QTY2\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_QTY2"]) + ","; //应发数量 } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + sJson_BatchNo + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + //\"FBOMID\":{\"FNumber\":\"\"}, "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + //"\"FDELICHKQUALIFYTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDELICHKQUALIFYTYPE"]) + "\"," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + sJson_FProduceDate + //\"FBusinessDate\":\"1900-01-01\", "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FOwnerTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEINID"]) + "\"," + "\"FOwnerInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerInId"]) + "\" }," + "\"FEntryNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryNote"]) + "\"," + "\"FKeeperTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEINID"]) + "\"," + "\"FKeeperInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperInId"]) + "\" }," + //"\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + //"\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + //\"FExtAuxUnitId\":{\"FNumber\":\"\"}, //\"FExtAuxUnitQty\":\"0\", "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //"\"FSecUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitID"]) + "\" }," + //"\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + //"\"FISFREE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "\"," + //"\"FTransReserveLink\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "\"," + //"\"FCheckDelivery\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "\"," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //"\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," + //"\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FSTOCKOUTFLAG\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKOUTFLAG"]) + "\"," + "\"FSRCTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCTYPE"]) + "\"," + sJson_FExpiryDate + sJson_FDestProduceDate + sJson_FDestExpiryDate + sJson_EntryCustom + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] "\"FSTKTSTKRANSFEROUTENTRY_Link\": [ { " + "\"FSTKTSTKRANSFEROUTENTRY_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TRANSFEROUT", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMoveStockStepOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成分步式调出单失败!" + HReturn; LogService.Write("生成分步式调出单(源单:发货通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成分步式调出单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成分步式调出单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockStepOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TRANSFEROUT", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TRANSFEROUT", sJson3 }); //审核单据 HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成分步式调出单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核分步式调出单(源单:发货通知单)成功!" + sRemark); sErrMsg = "生成并审核分步式调出单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核分步式调出单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成分步式调出单(源单:发货通知单)成功!" + sRemark); sErrMsg = "生成分步式调出单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 分步式调出单 源单:无源单 /// /// /// /// public bool SaveMoveStockStepOutBill_CLD_New(Model.ClsKf_MoveStockStepOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockStepOutBillSub_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" + ",HSTOCKINORGID,HSTOCKOUTORGID,HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1250','1250'," + 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) + ", " + oMain.HStockInOrgID.ToString() + "," + oMain.HStockOutOrgID.ToString() + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3840"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepOutBill_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepOutBill_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepOutBill_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", //"\"FOwnerTypeIdHead \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + //"\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FOwnerTypeInIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeInID"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FOwnerInIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERINID"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FStockInOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockInOrgId"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + //"\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + "\"FVESTONWAY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVESTONWAY"]) + "\"," + //\"FSTOCKERID\":{\"FNumber\":\"\"}, //\"FSTOCKERGROUPID\":{\"FNumber\":\"\"}, //\"FNOTE\":\"\", "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + //\"FScanBox\":\"\", //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FSUPPLIERID\":{\"FNUMBER\":\"\"}, "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEOUTID"]) + "\"," + "\"FOwnerOutIDHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNEROUTID"]) + "\" }," + "\"FISGENFORIOS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISGENFORIOS"]) + "\"," + "\"FISIOSFORFIN\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISIOSFORFIN"]) + "\"," + sJson_MainCustom + "\"FSTKTRSOUTENTRY\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FDestProduceDate = ""; //调入生产日期 string sJson_FDestExpiryDate = ""; //调入有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; sJson_FDestProduceDate = " \"FDestProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestProduceDate"]) + "\","; sJson_FDestExpiryDate = " \"FDESTEXPIRYDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDESTEXPIRYDATE"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; sJson_FDestProduceDate = ""; sJson_FDestExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + sJson_BatchNo + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + //\"FBOMID\":{\"FNumber\":\"\"}, "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + //"\"FDELICHKQUALIFYTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDELICHKQUALIFYTYPE"]) + "\"," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + sJson_FProduceDate + //\"FBusinessDate\":\"1900-01-01\", "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FOwnerTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEINID"]) + "\"," + "\"FOwnerInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerInId"]) + "\" }," + //\"FEntryNote\":\"\", "\"FKeeperTypeInId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEINID"]) + "\"," + "\"FKeeperInId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperInId"]) + "\" }," + //"\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + //"\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + //\"FExtAuxUnitId\":{\"FNumber\":\"\"}, //\"FExtAuxUnitQty\":\"0\", "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //"\"FSecUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitID"]) + "\" }," + //"\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + //"\"FISFREE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "\"," + //"\"FTransReserveLink\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "\"," + //"\"FCheckDelivery\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "\"," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + //"\"FORDERTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\" }," + //"\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FSTOCKOUTFLAG\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKOUTFLAG"]) + "\"," + "\"FSRCTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCTYPE"]) + "\"," + sJson_FExpiryDate + sJson_FDestProduceDate + sJson_FDestExpiryDate + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] "\"FSTKTSTKRANSFEROUTENTRY_Link\": [ { " + "\"FSTKTSTKRANSFEROUTENTRY_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + "\"FSTKTSTKRANSFEROUTENTRY_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TRANSFEROUT", sJson }); //调用保存方式 sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMoveStockStepOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成分步式调出单失败!" + HReturn; LogService.Write("生成分步式调出单(源单:无源单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成分步式调出单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成分步式调出单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockStepOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TRANSFEROUT", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TRANSFEROUT", sJson3 }); //审核单据 HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成分步式调出单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核分步式调出单(源单:无源单)成功!" + sRemark); sErrMsg = "生成并审核分步式调出单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核分步式调出单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成分步式调出单(源单:无源单)成功!" + sRemark); sErrMsg = "生成分步式调出单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 分步式调入单 * //生成分步式调入单 [WebMethod] public bool set_SaveMoveStockStepInBill_New(Model.ClsKf_MoveStockStepInBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockStepInBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_MoveStockStepInBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MoveStockStepInBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (set_SaveMoveStockStepInBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } //} sErrMsg = "保存分步式调入单失败!" + sErrMsg; return false; } #endregion #region 分步式调入单CLOUD * //生成分步式调入单 [WebMethod] public bool set_SaveMoveStockStepInBill_CLD_New(Model.ClsKf_MoveStockStepInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1250") //分步式调出单 { if (SaveMoveStockStepInBill_MoveStockStepOut_CLD_New(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 分步式调入单 源单:分步式调出单 /// /// /// /// public bool SaveMoveStockStepInBill_MoveStockStepOut_CLD_New(Model.ClsKf_MoveStockStepInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockStepInBillSub_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" + ",HSTOCKINORGID,HSTOCKOUTORGID,HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1251','1251'," + 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) + ", " + oMain.HStockInOrgID.ToString() + "," + oMain.HStockOutOrgID.ToString() + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_MoveStockStepOutToMoveStockStepIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3841"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",3"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepInBill_MoveStockStepOut_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepInBill_MoveStockStepOut_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockStepInBill_MoveStockStepOut_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMoveStockStepInBill_MoveStockStepOut_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Custom = ""; string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_CampanyName == "四维尔")//系统参数 客户定制化名称 空白为通用 { sJson_Custom = "\"F_ABCD_DATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_DATE"]) + "\","; //调出日期 } else { sJson_Custom = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKINORGID"]) + "\" }," + "\"FStockOutOrgID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKOUTORGID"]) + "\" }," + //\"FTransferMode\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEOUTID"]) + "\"," + "\"FOwnerOutIDHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNEROUTID"]) + "\" }," + //\"FSTOCKERID\":{\"FNumber\":\"\"}, "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FVESTONWAY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVESTONWAY"]) + "\"," + //\"FSTOCKERGROUPID\":{\"FNumber\":\"\"}, "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEINID"]) + "\"," + //"\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + //\"FNOTE\":\"\", //\"FScanBox\":\"\", //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FSUPPLIERID\":{\"FNUMBER\":\"\"}, //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", //\"FThirdSystem\":\"\", "\"FOwnerTypeInIDHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEINID"]) + "\"," + "\"FOwnerInIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERINID"]) + "\" }," + "\"FISGENFORIOS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISGENFORIOS"]) + "\"," + "\"FISIOSFORFIN\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISIOSFORFIN"]) + "\"," + sJson_Custom + sJson_MainCustom + "\"FSTKTRSINENTRY\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FSrcProduceDate = ""; //调出生产日期 string sJson_FSrcExpiryDate = ""; //调出有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; sJson_FSrcProduceDate = " \"FSrcProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcProduceDate"]) + "\","; sJson_FSrcExpiryDate = " \"FSrcExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; sJson_FSrcProduceDate = ""; sJson_FSrcExpiryDate = ""; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FPlanTransferQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPLANTRANSFERQTY"]) + "\"," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + //\"FPathLossQty\":\"0\", //\"FPathLossRespParty\":\"\", //\"FDestLot\":{\"FNumber\":\"\"}, "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_FProduceDate + sJson_SrcStockPlace + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + //\"FBOMID\":{\"FNumber\":\"\"}, "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + sJson_DestStockPlace + "\"FKeeperTypeOutID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEOUTID"]) + "\"," + "\"FKeeperOutID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPEROUTID"]) + "\" }," + //\"FMTONO\":\"\", //\"FProjectNo\":\"\", "\"FOwnerTypeOutID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEOUTID"]) + "\"," + "\"FOwnerOutID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNEROUTID"]) + "\" }," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEINID"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERINID"]) + "\" }," + //\"FEntryNote\":\"\", //\"FBusinessDate\":\"1900-01-01\", "\"FSrcMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + //"\"FSecUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitID"]) + "\" }," + sJson_FSrcProduceDate + sJson_BatchNo + //\"FSRCBOMID\":{\"FNumber\":\"\"}, //"\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + //\"FSRCMTONO\":\"\", sJson_FSrcExpiryDate + //\"FExtAuxUnitId\":{\"FNumber\":\"\"}, //\"FExtAuxUnitQty\":\"0\", //\"FWayAuxUnitQty\":\"0\", //\"FSrcProjectNo\":\"\", //\"FBasePlanTransQty\":\"0\", "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEINID"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERINID"]) + "\" }," + //\"FBasePathLossQty\":\"0\", //"\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + //\"FThirdSrcEntryId\":\"\", //"\"FSRCBILLTYPEID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\" }," + "\"FSRCBILLTYPE\": \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + "\"FSRCBILLNAME\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNAME"]) + "\" }," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FSTOCKOUTFLAG\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKOUTFLAG"]) + "\"," + "\"FSRCTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCTYPE"]) + "\"," + sJson_FExpiryDate + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FIsPathLoss\":\"false\", //\"FSerialNote\":\"\"}] "\"FSTKTSTKRANSFERINENTRY_Link\": [ { " + "\"FSTKTSTKRANSFERINENTRY_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + "\"FSTKTSTKRANSFERINENTRY_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + "\"FSTKTSTKRANSFERINENTRY_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + "\"FSTKTSTKRANSFERINENTRY_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"," + "\"FSTKTSTKRANSFERINENTRY_Link_FBASETRANSFERQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASETRANSFERQTY"]) + "," + "\"FSTKTSTKRANSFERINENTRY_Link_FBASETRANSFERQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASETRANSFERQTYOLD"]) + "" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TRANSFERIN", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMoveStockStepIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成分步式调入单失败!" + HReturn; LogService.Write("生成分步式调入单(源单:分步式调出单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成分步式调入单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成分步式调入单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MoveStockStepInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TRANSFERIN", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TRANSFERIN", sJson3 }); //审核单据 HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成分步式调入单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核分步式调入单(源单:分步式调出单)成功!" + sRemark); sErrMsg = "生成并审核分步式调入单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核分步式调入单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成分步式调入单(源单:分步式调出单)成功!" + sRemark); sErrMsg = "生成分步式调入单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 盘点单 //生成盘点单K3 [WebMethod] public bool set_SaveCheckStockBill(Model.ClsKf_CheckStockBillMain_K3 oMain, string sHMaker, ref string sErrMsg) { DAL.ClsKf_CheckStockInBill_K3 dalIn = new DAL.ClsKf_CheckStockInBill_K3(); DAL.ClsKf_CheckStockOutBill_K3 dalOut = new DAL.ClsKf_CheckStockOutBill_K3(); dalIn.omodel = oMain; dalOut.omodel = oMain; bool iOutBool = false; bool iInBool = false; if (oMain.HExplanation.ToUpper() == "ALL") { if (dalIn.AddBill_PDA(sHMaker, ref sErrMsg)) { iInBool = true; } else { iInBool = false; } if (dalOut.AddBill_PDA(sHMaker, ref sErrMsg)) { iOutBool = true; } else { iOutBool = false; } if (iInBool == true && iOutBool == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else if (oMain.HExplanation.ToUpper() == "IN") { if (dalIn.AddBill_PDA(sHMaker, ref sErrMsg)) { iInBool = true; //"保存成功!"; return true; } else { iInBool = false; //"保存失败!"; return false; } } else if (oMain.HExplanation.ToUpper() == "OUT") { if (dalOut.AddBill_PDA(sHMaker, ref sErrMsg)) { iOutBool = true; //"保存成功!"; return true; } else { iOutBool = false; //"保存失败!"; return false; } } else { sErrMsg = "单据新增类型错误!"; //"保存失败!"; return false; } } //生成盘点单 新增到条码出入库表(K3无需生成盘点单) [WebMethod] public bool set_SaveCheckStockBill_WMS(Int64 sHInterID, Int64 sHWHID, Int64 sHSPID, string sHMaker, ref string sErrMsg) { DAL.ClsKf_CheckStockInBill_K3 dal = new DAL.ClsKf_CheckStockInBill_K3(); if (dal.AddBill_WMS_PDA(sHInterID, sHWHID, sHSPID, sHMaker, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //生成盘点单时 判断实际条码盘点数量和条码库存数量是否一致 [WebMethod] public bool Get_IsCheckStock_ICInventory(long sHInterID) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.IsCheckStock_ICInventory(sHInterID)) { return true; } else { return false;//实际条码盘点数量和条码库存数量不一致 } } #endregion #region 销售退库 销售出库(红字) *旧 //生成销售退库单 [WebMethod] public bool set_SaveSellOutBackBill(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_SellOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_SellOutBackBill dal = new DAL.ClsKf_SellOutBackBill(); 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; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_SellOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveSellOutBackBill_CLD(oMain, "2222", oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存销售退库单失败!" + sErrMsg; return false; } #endregion #region 销售退库 销售出库(红字) * //生成销售退库单 [WebMethod] public bool set_SaveSellOutBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg) { string sHBillNo = ""; //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_SellOutBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_SellOutBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_SellOutBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_SellOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (oSystemParameter.omodel.WMS_CampanyName == "飞龙") //系统参数 客户定制化名称 空白为通用 { if (SaveSellOutBackBill_MulSource_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sHBillNo, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } else { if (SaveSellOutBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } } if (oSystemParameter.omodel.Kf_SellOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (oSystemParameter.omodel.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { if (set_SaveSellOutBackBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SaveSellOutBackBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } sErrMsg = "保存销售退库单失败!" + sErrMsg; return false; } #endregion #region 销售退库K3 销售出库(红字) * /// /// 生成销售退库单K3 /// /// /// /// public bool SaveSellOutBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_SellOutBackBill dal = new DAL.ClsKf_SellOutBackBill(); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_SellOutBackBillSub_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('1247','1247'," + 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_SellOutBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "1403") //退货通知单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockBackToSellOutBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData_SeOutStockBack " + oMain.HInterID.ToString()); } else if (sHSourceType == "1205") //销售出库单-蓝字 { oCn.RunProc("exec h_p_Kf_UpDateRelation_SellOutToSellOutBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData_Blue " + oMain.HInterID.ToString()); } else if (sHSourceType == "1401") //销售订单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOutBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData_SeOrder " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_SellOutBackBill_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_SellOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_SellOutBackBill_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_SellOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); } } } //同步生成外购退料单 if (oSystemParameterMain.Kf_SellOutBackBill_AutoSavePOStockInBackBill == "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 = "所登录用户账号不正确,请重新登录!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HSupID"]) == 0) { sErrMsg = "所登录用户账号没有绑定对应供应商,无法同步生成外购退料单,生成单据失败,请先设置对应供应商!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } long HNewInterID = DBUtility.ClsPub.CreateBillID_Prod("1239", ref sErrMsg); string HNewBillNo = DBUtility.ClsPub.CreateBillCode_Prod("1239", ref sErrMsg, true); string HNewSourceType = "-1"; //无源单 //新增ERP子表、主表 oCn.RunProc("exec h_p_Kf_SellOutBackBill_AutoSavePOStockInBackBill " + oMain.HInterID.ToString() + "," + HNewInterID + ",'" + HNewBillNo + "'"); //新增K3子表、主表 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_Insert_New " + HNewInterID + ",'" + HNewBillNo + "'," + oMain.HBillerID.ToString() + ",'" + HNewSourceType + "'"); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateBillRelateData " + HNewInterID); //审核单据 if (oSystemParameterMain.Kf_POStockInBackBill_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_POStockInBackBill_Check " + HNewInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateStock " + HNewInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateOrderStock " + HNewInterID); } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断条码库存是否异常(负库存、库存大于条码初始化) 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]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成销售退库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 销售退库K3 销售出库(红字) 多源单生成多张单据 * /// /// 生成销售退库单K3 多源单生成多张单据 /// /// /// /// public bool SaveSellOutBackBill_MulSource_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sHBillNo, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_SellOutBackBill dal = new DAL.ClsKf_SellOutBackBill(); dal.omodel = oMain; sHBillNo = ""; Int64 sHSupID = 0; //上传前必填项判断 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_SellOutBackBill_AutoSavePOStockInBackBill == "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; } else { sHSupID = DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HSupID"]); } } try { Int64 HNewInterID = 0; string HNewBillNo = ""; Int64 HCusID = 0; string HSourceType = ""; string HMainSourceType = ""; string HSubBillType = ""; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //根据单据ID获取条码出入库临时表中相同源单类型、不同客户有哪几个 DataSet DsCus = oCn.RunProcReturn("exec h_p_Kf_GetCusIDAndSourceTypeByTemp_SellOutBack " + oMain.HInterID.ToString() + "," + oMain.HSupID.ToString(), "h_p_Kf_GetCusIDAndSourceTypeByTemp_SellOutBack"); 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]["HCusID"]); HSourceType = Pub_Class.ClsPub.isStrNull(DsCus.Tables[0].Rows[i]["HSourceBillType"]); HMainSourceType = Pub_Class.ClsPub.isStrNull(DsCus.Tables[0].Rows[i]["HMainSourceBillType"]); HSubBillType = Pub_Class.ClsPub.isStrNull(DsCus.Tables[0].Rows[i]["HSubBillType"]); //判断会计期是否合理 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; //只生成蓝字其他入库单 if (HSubBillType == "1203") { long HOtherInInterID = DBUtility.ClsPub.CreateBillID_Prod("1203", ref sErrMsg); string HOtherInBillNo = "QT-" + oMain.HBillNo + "-" + j; //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherInBillSub_Insert_FeiLong " + oMain.HInterID.ToString() + "," + HOtherInInterID + ",'" + HOtherInBillNo + "'"); //插入主表 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('1203','1203'," + HOtherInInterID + ",'" + HOtherInBillNo + "',convert(varchar(10),getdate(),120),'" + HMainSourceType + "'" + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + sHSupID + "," + 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 + "',0" + ") "); //新增K3子表、主表 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_Insert_New " + HOtherInInterID + ",'" + HOtherInBillNo + "'," + oMain.HBillerID.ToString() + ",'" + HSourceType + "'"); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateBillRelateData_New " + HOtherInInterID); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateStock_New " + HOtherInInterID); oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateOrderStock_New " + HOtherInInterID); //审核单据 if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HOtherInInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_Check_New " + HOtherInInterID + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HOtherInInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_Check_New " + HOtherInInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateStock_New " + HOtherInInterID); oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateOrderStock_New " + HOtherInInterID); } } } } //只生成红字外购入库单 else if (HSubBillType == "1239") { long HPInBackInterID = DBUtility.ClsPub.CreateBillID_Prod("1239", ref sErrMsg); string HPInBackBillNo = "TL-" + oMain.HBillNo + "-" + j; //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBackBillSub_Insert_FeiLong " + oMain.HInterID.ToString() + "," + HPInBackInterID + ",'" + HPInBackBillNo + "'"); //插入主表 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('1239','1239'," + HPInBackInterID + ",'" + HPInBackBillNo + "',convert(varchar(10),getdate(),120),'" + HMainSourceType + "'" + ", " + oMain.HYear.ToString() + "," + oMain.HPeriod.ToString() + ",'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + sHSupID + "," + 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_POStockInBackBill_Insert_New " + HPInBackInterID + ",'" + HPInBackBillNo + "'," + oMain.HBillerID.ToString() + ",'" + HSourceType + "'"); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateBillRelateData " + HPInBackInterID); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateStock " + HPInBackInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateOrderStock " + HPInBackInterID); //审核单据 if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HPInBackInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_Check " + HPInBackInterID + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HPInBackInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_Check " + HPInBackInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateStock " + HPInBackInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateOrderStock " + HPInBackInterID); } } } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断条码库存是否异常(负库存、库存大于条码初始化) DataSet Ds = oCn.RunProcReturn("EXEC h_p_KF_ICInventoryBarCodeQtyCtrl " + HPInBackInterID, "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]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } } //生成销售出库红字且同步生成外购入库红字 else { //重新获取销售退库单单据内码、单据号 HNewInterID = DBUtility.ClsPub.CreateBillID_Prod("1247", ref sErrMsg); HNewBillNo = oMain.HBillNo + "-" + j; //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_SellOutBackBillSub_Insert_MulCus " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + HSourceType + "'," + 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('1247','1247'," + HNewInterID + ",'" + HNewBillNo + "',convert(varchar(10),getdate(),120),'" + HMainSourceType + "'" + ", " + 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_SellOutBackBill_Insert_New " + HNewInterID + ",'" + HNewBillNo + "'," + oMain.HBillerID.ToString() + ",'" + HSourceType + "'"); //更新关联数量 if (HSourceType == "1403") //退货通知单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockBackToSellOutBack_Add " + HNewInterID); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData_SeOutStockBack " + HNewInterID); } else if (HSourceType == "1205") //销售出库单-蓝字 { oCn.RunProc("exec h_p_Kf_UpDateRelation_SellOutToSellOutBack_Add " + HNewInterID); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData_Blue " + HNewInterID); } else if (HSourceType == "1401") //销售订单 { oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOutBack_Add " + HNewInterID); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData_SeOrder " + HNewInterID); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateBillRelateData " + HNewInterID); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateStock " + HNewInterID); oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateOrderStock " + HNewInterID); //审核单据 if (oSystemParameterMain.Kf_SellOutBackBill_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_SellOutBackBill_Check " + HNewInterID + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_SellOutBackBill_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_SellOutBackBill_Check " + HNewInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateStock " + HNewInterID); oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBackBill_UpdateOrderStock " + HNewInterID); } } } //同步生成外购退料单 if (oSystemParameterMain.Kf_SellOutBackBill_AutoSavePOStockInBackBill == "Y") //系统参数 同步生成外购退料单 { long HPOStockInBackInterID = DBUtility.ClsPub.CreateBillID_Prod("1239", ref sErrMsg); string HPOStockInBackBillNo = "TL-" + oMain.HBillNo + "-" + j; string HPOStockInBackSourceType = "-1"; //无源单 //新增ERP子表、主表 oCn.RunProc("exec h_p_Kf_SellOutBackBill_AutoSavePOStockInBackBill " + HNewInterID + "," + HPOStockInBackInterID + ",'" + HPOStockInBackBillNo + "'"); //新增K3子表、主表 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_Insert_New " + HPOStockInBackInterID + ",'" + HPOStockInBackBillNo + "'," + oMain.HBillerID.ToString() + ",'" + HPOStockInBackSourceType + "'"); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateBillRelateData " + HPOStockInBackInterID); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS4 = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS4 == null || DS4.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS4.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateStock " + HPOStockInBackInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateOrderStock " + HPOStockInBackInterID); //审核单据 if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HPOStockInBackInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_Check " + HPOStockInBackInterID + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HPOStockInBackInterID); //审核K3单据 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_Check " + HPOStockInBackInterID + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateStock " + HPOStockInBackInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateOrderStock " + HPOStockInBackInterID); } } } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断条码库存是否异常(负库存、库存大于条码初始化) DataSet Ds2 = oCn.RunProcReturn("EXEC h_p_KF_ICInventoryBarCodeQtyCtrl " + HPOStockInBackInterID, "h_p_KF_ICInventoryBarCodeQtyCtrl"); if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0][0]) == 1) { } else { sErrMsg = DBUtility.ClsPub.isStrNull(Ds2.Tables[0].Rows[0][1]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } } catch (Exception e) { sErrMsg = "生成销售退库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 销售退货CLOUD 销售出库(红字) *New [WebMethod] public bool set_SaveSellOutBackBill_CLD_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1403") //退货通知单 { if (SaveSellOutBackBill_SeOutStockBack_CLD_New(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1401") //销售订单 { if (SaveSellOutBackBill_SeOrder_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 销售退货单 (源单:退货通知单) /// /// /// /// private bool SaveSellOutBackBill_SeOutStockBack_CLD_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_SellOutBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1247','1247'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockBackToSellOutBack_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBackBill_SeOutStockBack_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBackBill_SeOutStockBack_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBackBill_SeOutStockBack_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBackBill_SeOutStockBack_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FRetcustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRetcustId"]) + "\"}," + "\"FSaledeptid\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaledeptid"]) + "\"}," + "\"FReturnReason\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReturnReason"]) + "\"}," + "\"FHeadLocId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHeadLocId"]) + "\"}," + //\"FCorrespondOrgId\":{\"FNumber\":\"\"}, "\"FTransferBizType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"}," + "\"FSaleGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleGroupId"]) + "\"}," + "\"FSalesManId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSalesManId"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FHeadNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHeadNote"]) + "\"," + "\"FReceiveCustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveCustId"]) + "\"}," + "\"FReceiveAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveAddress"]) + "\"," + "\"FSettleCustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCustId"]) + "\"}," + "\"FReceiveCusContact\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveCusContact"]) + "\"}," + "\"FPayCustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayCustId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FIsTotalServiceOrCost\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsTotalServiceOrCost"]) + "\"," + // "\"FBussinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBussinessType"]) + "\"," + sJson_MainCustom + "\"SubHeadEntity\":{" + //\"FEntryId\":\"0\", "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + //\"FThirdBillNo\":\"\", //\"FThirdBillId\":\"\", //\"FThirdSrcType\":\"\", "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}," + "\"FChageCondition\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChageCondition"]) + "\"}," + //\"FPriceListId\":{\"FNumber\":\"\"}, //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"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"]) + "\"," + "\"FISINCLUDEDTAX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISINCLUDEDTAX"]) + "\"," + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FENTRYID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FMapId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMapId"]) + "\"}," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + //\"FInventoryQty\":\"0\", "\"FMustQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "\"," + "\"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "\"," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "\"," + "\"FTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "\"," + "\"FIsFree\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsFree"]) + "\"," + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + "\"FEntryTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "\"," + "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FReturnType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReturnType"]) + "\"}," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + //\"FStockstatusId\":{\"FNumber\":\"\"}, "\"FDeliveryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDeliveryDate"]) + "\"," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNote"]) + "\"," + "\"FDiscountRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "\"," + //\"FPriceDiscount\":\"0\", //\"FAuxUnitQty\":\"0\", "\"FExtAuxUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\" }," + //\"FExtAuxUnitQty\":\"0\", //\"FSalCostPrice\":\"0\", //\"FISCONSUMESUM\":\"\", sJson_BatchNo + "\"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"]) + "\"," + //\"FProjectNo\":\"\", //\"FQualifyType\":\"\", //\"FEOwnerSupplierId\":{\"FNUMBER\":\"\"}, "\"FIsOverLegalOrg\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsOverLegalOrg"]) + "\"," + //\"FESettleCustomerId\":{\"FNUMBER\":\"\"}, //\"FThirdEntryId\":\"\", "\"FSOEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOEntryId"]) + "\"," + //\"FPriceListEntry\":{\"FNUMBER\":\"\"}, "\"FARNOTJOINQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FARNOTJOINQTY"]) + "\"," + "\"FIsReturnCheck\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReturnCheck"]) + "\"," + // "\"FSOBILLTYPEID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOBILLTYPEID"]) + "\" }," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FBaseunitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseunitId"]) + "\" }," + "\"FAuxUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitId"]) + "\" }," + "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + "\"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + "\"FPriceUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitId"]) + "\" }," + "\"FPriceCoefficient\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceCoefficient"]) + "\"," + "\"FSysPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSysPrice"]) + "\"," + "\"FLimitDownPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLimitDownPrice"]) + "\"," + "\"FSNUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\" }," + "\"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\" }," + "\"FRowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowId"]) + "\"," + "\"FParentRowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentRowId"]) + "\"," + "\"FSalBaseNum\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSalBaseNum"]) + "\"," + "\"FStockBaseDen\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockBaseDen"]) + "\"," + "\"FSrcBillTypeID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeID"]) + "\"," + sJson_SubCustom + "\"FTaxDetailSubEntity\":[{" + //"FDetailID": 0, "\"FTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "\"," + "\"FTaxRateId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRateId"]) + "\" }," + "\"FTaxAmount\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxAmount"]) + "\"," + "\"FCostPercent\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPercent"]) + "\"," + "\"FCostAmount\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostAmount"]) + "\"," + "\"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + "\"FSellerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSellerWithholding"]) + "\"," + "\"FBuyerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBuyerWithholding"]) + "\"," + " } ]," + //\"FSerialSubEntity\":[{ //\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] "\"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_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEUNITQTYOLD"]) + "\"," + "\"FEntity_Link_FSALBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSALBASEQTYOLD"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_RETURNSTOCK", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildSellOutBack '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成销售退货单失败!" + HReturn; LogService.Write("生成销售退货单(源单:退货通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成销售退货单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成销售退货单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_SellOutBackBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SAL_RETURNSTOCK", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SAL_RETURNSTOCK", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成销售退货单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核销售退货单(源单:退货通知单)成功!" + sRemark); sErrMsg = "生成并审核销售退货单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核销售退货单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成销售退货单(源单:退货通知单)成功!" + sRemark); sErrMsg = "生成销售退货单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 销售退货单 (源单:销售订单) /// /// /// /// private bool SaveSellOutBackBill_SeOrder_CLD(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_SellOutBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1247','1247'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOutBack_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBackBill_SeOrder_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBackBill_SeOrder_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBackBill_SeOrder_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBackBill_SeOrder_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FRetcustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRetcustId"]) + "\"}," + //"\"FSaledeptid\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaledeptid"]) + "\"}," +//放最底下 //"\"FReturnReason\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReturnReason"]) + "\"}," + "\"FHeadLocId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHeadLocId"]) + "\"}," + "\"FCorrespondOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCorrespondOrgId"]) + "\"}," + "\"FTransferBizType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"}," + "\"FSaleGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleGroupId"]) + "\"}," + "\"FSalesManId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSalesManId"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + //"\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + //"\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + //"\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FHeadNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHeadNote"]) + "\"," + "\"FReceiveCustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveCustId"]) + "\"}," + "\"FReceiveAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveAddress"]) + "\"," + "\"FSettleCustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCustId"]) + "\"}," + "\"FReceiveCusContact\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReceiveCusContact"]) + "\"}," + "\"FPayCustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayCustId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FIsTotalServiceOrCost\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsTotalServiceOrCost"]) + "\"," + // "\"FBussinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBussinessType"]) + "\"," + "\"FSaledeptid\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaledeptid"]) + "\"}," + sJson_MainCustom + "\"SubHeadEntity\":{" + //\"FEntryId\":\"0\", "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + //\"FThirdBillNo\":\"\", //\"FThirdBillId\":\"\", //\"FThirdSrcType\":\"\", "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}," + "\"FChageCondition\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChageCondition"]) + "\"}," + //\"FPriceListId\":{\"FNumber\":\"\"}, //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"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"]) + "\"," + "\"FISINCLUDEDTAX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISINCLUDEDTAX"]) + "\"," + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FENTRYID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FMapId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMapId"]) + "\"}," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + //\"FInventoryQty\":\"0\", "\"FMustQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "\"," + "\"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "\"," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "\"," + "\"FTaxPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "\"," + "\"FIsFree\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsFree"]) + "\"," + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + "\"FEntryTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "\"," + "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + //"\"FReturnType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReturnType"]) + "\"}," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + //\"FStockstatusId\":{\"FNumber\":\"\"}, //"\"FDeliveryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDeliveryDate"]) + "\"," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNote"]) + "\"," + "\"FDiscountRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "\"," + //\"FPriceDiscount\":\"0\", //\"FAuxUnitQty\":\"0\", "\"FExtAuxUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\" }," + //\"FExtAuxUnitQty\":\"0\", //\"FSalCostPrice\":\"0\", //\"FISCONSUMESUM\":\"\", sJson_BatchNo + "\"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"]) + "\"," + //\"FProjectNo\":\"\", //\"FQualifyType\":\"\", //\"FEOwnerSupplierId\":{\"FNUMBER\":\"\"}, "\"FIsOverLegalOrg\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsOverLegalOrg"]) + "\"," + //\"FESettleCustomerId\":{\"FNUMBER\":\"\"}, //\"FThirdEntryId\":\"\", "\"FSOEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOEntryId"]) + "\"," + "\"FPriceListEntry\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "\" }," + "\"FARNOTJOINQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FARNOTJOINQTY"]) + "\"," + //"\"FIsReturnCheck\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReturnCheck"]) + "\"," + // "\"FSOBILLTYPEID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOBILLTYPEID"]) + "\" }," + //"\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FBaseunitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseunitId"]) + "\" }," + "\"FAuxUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitId"]) + "\" }," + "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + "\"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + "\"FPriceUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitId"]) + "\" }," + "\"FPriceCoefficient\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceCoefficient"]) + "\"," + "\"FSysPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSysPrice"]) + "\"," + "\"FLimitDownPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLimitDownPrice"]) + "\"," + "\"FSNUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\" }," + "\"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\" }," + "\"FRowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowId"]) + "\"," + "\"FParentRowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentRowId"]) + "\"," + "\"FSalBaseNum\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSalBaseNum"]) + "\"," + "\"FStockBaseDen\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockBaseDen"]) + "\"," + "\"FSrcBillTypeID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeID"]) + "\"," + "\"FBaseunitQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseunitQty"]) + "\"," + sJson_SubCustom + "\"FTaxDetailSubEntity\":[{" + //"FDetailID": 0, "\"FTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "\"," + "\"FTaxRateId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRateId"]) + "\" }," + //"\"FTaxAmount\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxAmount"]) + "\"," + "\"FCostPercent\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPercent"]) + "\"," + //"\"FCostAmount\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostAmount"]) + "\"," + "\"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + "\"FSellerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSellerWithholding"]) + "\"," + "\"FBuyerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBuyerWithholding"]) + "\"," + " } ]," + //\"FSerialSubEntity\":[{ //\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] "\"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_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEUNITQTYOLD"]) + "\"," + "\"FEntity_Link_FSALBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSALBASEQTYOLD"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_RETURNSTOCK", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildSellOutBack '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成销售退货单失败!" + HReturn; LogService.Write("生成销售退货单(源单:销售订单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成销售退货单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成销售退货单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_SellOutBackBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SAL_RETURNSTOCK", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SAL_RETURNSTOCK", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成销售退货单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核销售退货单(源单:销售订单)成功!" + sRemark); sErrMsg = "生成并审核销售退货单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核销售退货单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成销售退货单(源单:销售订单)成功!" + sRemark); sErrMsg = "生成销售退货单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 销售退货CLOUD 销售出库(红字) * [WebMethod] public bool set_SaveSellOutBackBill_CLD(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1403") //退货通知单 { if (SaveSellOutBackBill_SeOutStockBack_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo + sErrMsg; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } private bool SaveSellOutBackBill_SeOutStockBack_CLD(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, 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_SellOutBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1247','1247'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockBackToSellOutBack_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_SellOutBackBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); } //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBackBill_SeOutStockBack_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBackBill_SeOutStockBack_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{" + //\"FID\":" + oMain.HInterID.ToString() + "," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FSALEORGID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEORGID"]) + "\" }," + "\"FRETCUSTID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRETCUSTID"]) + "\" }," + "\"FSALEDEPTID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEDEPTID"]) + "\" }," + "\"FRETURNREASON\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRETURNREASON"]) + "\" }," + "\"FHEADLOCID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHEADLOCID"]) + "\" }," + //"FCorrespondOrgId": {"FNumber": ""}, "\"FTransferBizType\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\" }," + "\"FSALEGROUPID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEGROUPID"]) + "\" }," + "\"FSALESMANID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALESMANID"]) + "\" }," + "\"FSTOCKORGID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\" }," + "\"FSTOCKDEPTID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKDEPTID"]) + "\" }," + "\"FSTOCKERGROUPID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERGROUPID"]) + "\" }," + "\"FSTOCKERID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\" }," + "\"FHeadNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNOTE"]) + "\"," + "\"FRECEIVECUSTID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVECUSTID"]) + "\" }," + "\"FRECEIVEADDRESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVEADDRESS"]) + "\"," + "\"FSETTLECUSTID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECUSTID"]) + "\" }," + "\"FReceiveCusContact\":{ \"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECCONTACTID"]) + "\" }," + "\"FPAYCUSTID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYCUSTID"]) + "\" }," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEID"]) + "\"," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERID"]) + "\" }," + //"FScanBox": "", //"FCDateOffsetUnit": "", //"FCDateOffsetValue": 0, "\"FIsTotalServiceOrCost\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsTotalServiceOrCost"]) + "," + //"FSHOPNUMBER": "", //"FGYDATE": "1900-01-01", "\"FBUSINESSTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBUSINESSTYPE"]) + "\"," + "\"SubHeadEntity\":{ \"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," + //"FThirdBillNo": "", //"FThirdBillId": "", //"FThirdSrcType": "", "\"FSETTLEORGID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLEORGID"]) + "\" }," + "\"FSETTLETYPEID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLETYPEID"]) + "\" }," + //"FChageCondition": {"FNumber": ""}, //"FPriceListId": {"FNumber": ""}, //"FDiscountListId": {"FNumber": ""}, "\"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"]) + "," + //"FBuyerNick": "", //"FReceiverAddress": "", //"FReceiverName": "", //"FReceiverMobile": "", //"FReceiverCountry": "", //"FReceiverState": "", //"FReceiverCity": "", //"FReceiverDistrict": "", //"FReceiverPhone": "" "\"FRECEIPTCONDITIONID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIPTCONDITIONID"]) + "\" }," + "\"FISINCLUDEDTAX\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISINCLUDEDTAX"]) + "," + "\"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_FDELIVERYDATE = ""; string sJson_FPRODUCEDATE = ""; string sJson_FEXPIRYDATE = ""; string sJson_FVAT = ""; string sJson_FSELLERWITHHOLDING = ""; string sJson_FBUYERWITHHOLDING = ""; 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 (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"]) + "\"}},"; } } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDELIVERYDATE"]) == "")//退货日期 { sJson_FDELIVERYDATE = ""; } else { sJson_FDELIVERYDATE = "\"FDELIVERYDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDELIVERYDATE"]) + "\","; } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCEDATE"]) == "")//生产日期 { sJson_FPRODUCEDATE = ""; } else { sJson_FPRODUCEDATE = "\"FPRODUCEDATE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCEDATE"]) + "\" },"; } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEXPIRYDATE"]) == "")//有效期至 { sJson_FEXPIRYDATE = ""; } else { sJson_FEXPIRYDATE = "\"FEXPIRYDATE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEXPIRYDATE"]) + "\" },"; } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) == "")//增值税 { sJson_FVAT = ""; } else { sJson_FVAT = ",\"FVAT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + ""; } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSELLERWITHHOLDING"]) == "")//卖方代扣代缴 { sJson_FSELLERWITHHOLDING = ""; } else { sJson_FSELLERWITHHOLDING = ",\"FSELLERWITHHOLDING\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSELLERWITHHOLDING"]) + ""; } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBUYERWITHHOLDING"]) == "")//买方代扣代缴 { sJson_FBUYERWITHHOLDING = ""; } else { sJson_FBUYERWITHHOLDING = ",\"FBUYERWITHHOLDING\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBUYERWITHHOLDING"]) + ""; } sJson_Entry = sJson_Entry + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FROWTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FROWTYPE"]) + "\"," + "\"FMAPID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMAPID"]) + "\" }," + "\"FMATERIALID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\" }," + //"\"FAUXPROPID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "," + "\"FUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\" }," + //"FInventoryQty": 0, "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPARENTMATID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTMATID"]) + "\" }," + "\"FPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICE"]) + "," + "\"FTAXPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXPRICE"]) + "," + "\"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + "\"FTAXCOMBINATION\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXCOMBINATION"]) + "\" }," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "," + "\"FBOMID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\" }," + "\"FRETURNTYPE\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRETURNTYPE"]) + "\" }," + "\"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + "\"FOWNERID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\" }," + sJson_FPRODUCEDATE + sJson_FEXPIRYDATE + "\"FSTOCKID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\" }," + sJson_StockPlace + "\"FStockStatusID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusID"]) + "\" }," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + sJson_FDELIVERYDATE + "\"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNOTE"]) + "\"," + "\"FDISCOUNTRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDISCOUNTRATE"]) + "," + //"FPriceDiscount": 0, //"FAuxUnitQty": 0, "\"FEXTAUXUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEXTAUXUNITID"]) + "\" }," + //"FExtAuxUnitQty": 0, //"FSalCostPrice": 0, //"FISCONSUMESUM": "", "\"FBaseunitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseunitQty"]) + "," + //没按次序添加 "\"FBASEUNITQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTYOLD"]) + "," + //没按次序添加 sJson_BatchNo + "\"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"]) + "," + //"FProjectNo": "", //"FQualifyType": "", //"FEOwnerSupplierId": {"FNUMBER": ""}, "\"FIsOverLegalOrg\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsOverLegalOrg"]) + "," + //"FESettleCustomerId": {"FNUMBER": ""}, "\"FSOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOENTRYID"]) + "," + //"FThirdEntryId": "", //"FPriceListEntry": {"FNUMBER": ""}, "\"FARNOTJOINQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FARNOTJOINQTY"]) + "," + "\"FIsReturnCheck\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReturnCheck"]) + "," + //"FETHIRDBILLID": "", //"FETHIRDBILLNO": "", //"F_fp": "", "\"FSOBILLTYPEID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOBILLTYPEID"]) + "\" }," + "\"FKEEPERID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\" }," + "\"FBASEUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\" }," + "\"FAUXUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXUNITID"]) + "\" }," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FPRICEUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEUNITID"]) + "\" }," + "\"FPRICECOEFFICIENT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICECOEFFICIENT"]) + "," + "\"FSYSPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSYSPRICE"]) + "," + "\"FLIMITDOWNPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLIMITDOWNPRICE"]) + "," + "\"FSNUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\" }," + "\"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\" }," + //"\"FROWID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FROWID"]) + "\" }," + //"\"FPARENTROWID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTROWID"]) + "\" }," + "\"FMustQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "," + "\"FOUTCONTROL\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOUTCONTROL"]) + "," + "\"FSALBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSALBASENUM"]) + "," + "\"FSTOCKBASEDEN\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "," + "\"FTaxDetailSubEntity\": [ { " + //"FDetailID": 0, "\"FTAXRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATE"]) + "," + "\"FTAXRATEID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATEID"]) + "\" }," + "\"FTAXAMOUNT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXAMOUNT"]) + "," + "\"FCOSTPERCENT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTPERCENT"]) + "," + "\"FCOSTAMOUNT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTAMOUNT"]) + "" + sJson_FVAT + sJson_FSELLERWITHHOLDING + sJson_FBUYERWITHHOLDING + " } ]," + //"\"FSerialSubEntity\": [ { " + // "FDetailID": 0, // "FSerialNo": "", // "FSerialNote": "" //" } ]," + "\"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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 销售退货单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_RETURNSTOCK", sJson }); if (oSystemParameterMain.Kf_SellOutBackBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SAL_RETURNSTOCK", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SAL_RETURNSTOCK", 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 { sErrMsg = "999999" + HReturn + sJson; oCn.Commit(); return true; } } else { sErrMsg = "生成销售退货单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成销售退货单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 销售出库 *旧 //生成销售出库单 [WebMethod] public bool set_SaveSellOutBill(Model.ClsKf_SellOutBillMain 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_SellOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { 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; } //同步生成K3单据 if (oMain.HRedBlueFlag) { return false; } else { //源单 发货通知单 if (sHSourceType == "1402" || sHSourceType == "-1") { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { // //源单 销售订单 // if (dal.AddBill_PDA_SEOrder(ref sErrMsg)) // { // //"保存成功!"; // return true; // } // else // { // //"保存失败!"; return false; // } } } } if (oSystemParameter.omodel.Kf_SellOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveSellOutBill_CLD(oMain, "2222", oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存销售出库单失败!" + sErrMsg; return false; } //稽核销售出库单K3 [WebMethod] public bool set_AuditSellOutBill(Model.ClsKf_SellOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_SellOutBill_K3 dal = new DAL.ClsKf_SellOutBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } #endregion #region 销售出库 * //生成销售出库单 [WebMethod] 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.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_SellOutBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_SellOutBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_SellOutBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); 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 (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "韩电" || oSystemParameter.omodel.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { if (set_SaveSellOutBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SaveSellOutBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } sErrMsg = "保存销售出库单失败!" + sErrMsg; return false; } #endregion #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; } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断金蝶K3负库存 DataSet Ds = oCn.RunProcReturn("EXEC h_p_IFK3_ICInventory_Load " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "'", "h_p_IFK3_ICInventory_Load"); if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 2) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0][1]); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { 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()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新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()); //审核单据 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()); } } else { //审核单据 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]); // if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 // { // } // else // { // 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 = "所登录用户账号不正确,请重新登录!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else if (DBUtility.ClsPub.isLong(Ds2.Tables[0].Rows[0]["HSupID"]) == 0) { sErrMsg = "所登录用户账号没有绑定对应供应商,无法同步生成外购入库单,生成单据失败,请先设置对应供应商!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { 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); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS4 = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS4 == null || DS4.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS4.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateStock_New " + HNewInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateOrderStock_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()); } } else { //审核单据 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 = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成销售出库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { 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); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateStock_New " + HNewInterID); oCn.RunProc("exec h_p_IFK3_ToERP_SellOutBill_UpdateOrderStock_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()); } } else { //审核单据 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]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { 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); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS4 = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS4 == null || DS4.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS4.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateStock_New " + HPOStockInInterID); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateOrderStock_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()); } } else { //审核单据 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 = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成销售出库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 销售出库CLOUD *New [WebMethod] public bool set_SaveSellOutBill_CLD_New(Model.ClsKf_SellOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1401") //销售订单 { if (SaveSellOutBill_SeOrder_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1402") //发货通知单 { if (SaveSellOutBill_SeOutStock_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 销售出库单 源单:销售订单 /// /// /// /// private bool SaveSellOutBill_SeOrder_CLD(Model.ClsKf_SellOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1205','1205'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOrderToSellOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 子表信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBill_SeOrder_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBill_SeOrder_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBill_SeOrder_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBill_SeOrder_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + sJson_Date + "\"FSALEORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEORGID"]) + "\"}," + "\"FCUSTOMERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCUSTOMERID"]) + "\"}," + //"\"FSALEDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEDEPTID"]) + "\"}," + //移到最下方位置 "\"FHEADLOCATIONID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHEADLOCATIONID"]) + "\"}," + "\"FCORRESPONDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCORRESPONDORGID"]) + "\"}," + //\"FCarrierID\":{\"FNumber\":\"\"}, //\"FCarriageNO\":\"\", "\"FSALESGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALESGROUPID"]) + "\"}," + "\"FSALESMANID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALESMANID"]) + "\"}," + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + //\"FDeliveryDeptID\":{\"FNumber\":\"\"}, //\"FStockerGroupID\":{\"FNumber\":\"\"}, "\"FSTOCKERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNOTE"]) + "\"," + "\"FRECEIVERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVERID"]) + "\"}," + "\"FRECEIVEADDRESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVEADDRESS"]) + "\"," + "\"FSETTLEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLEID"]) + "\"}," + "\"FRECEIVERCONTACTID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVERCONTACTID"]) + "\"}," + "\"FPAYERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYERID"]) + "\"}," + "\"FOWNERTYPEIDHEAD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEIDHEAD"]) + "\"," + "\"FOWNERIDHEAD\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERIDHEAD"]) + "\"}," + //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FPLANRECADDRESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPLANRECADDRESS"]) + "\"," + "\"FIsTotalServiceOrCost\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsTotalServiceOrCost"]) + "\"," + "\"FBUSINESSTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBUSINESSTYPE"]) + "\"," + "\"FSALEDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEDEPTID"]) + "\"}," + sJson_MainCustom + "\"SubHeadEntity\":{ " + //\"FEntryId\":\"0\", "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + //\"FThirdBillNo\":\"\", //\"FThirdBillId\":\"\", //\"FThirdSrcType\":\"\", "\"FSETTLEORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLEORGID"]) + "\"}," + "\"FSETTLETYPEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLETYPEID"]) + "\"}," + "\"FRECEIPTCONDITIONID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIPTCONDITIONID"]) + "\"}," + //"\"FPriceListId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceListId"]) + "\"}," + //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"FISINCLUDEDTAX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISINCLUDEDTAX"]) + "\"," + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + " {" + //\"FENTRYID\":\"0\", " \"FROWTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FROWTYPE"]) + "\"," + " \"FCUSTMATID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCUSTMATID"]) + "\"}," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + //\"FInventoryQty\":\"0\", " \"FPARENTMATID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTMATID"]) + "\"}," + " \"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "\"," + //\"FDisPriceQty\":\"0\", //" \"FPRICE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICE"]) + "\"," + //移到最下方位置 //" \"FTAXPRICE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXPRICE"]) + "\"," + //移到最下方位置 " \"FISFREE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "\"," + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + sJson_FProduceDate + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + sJson_BatchNo + sJson_FExpiryDate + " \"FTAXCOMBINATION\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXCOMBINATION"]) + "\"}," + " \"FENTRYTAXRATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FENTRYTAXRATE"]) + "\"," + //\"FAuxUnitQty\":\"0\", " \"FEXTAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEXTAUXUNITID"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + " \"FSTOCKSTATUSID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKSTATUSID"]) + "\"}," + //\"FQualifyType\":\"\", " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FEntrynote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrynote"]) + "\"," + " \"FDISCOUNTRATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDISCOUNTRATE"]) + "\"," + //\"FPriceDiscount\":\"0\", //\"FActQty\":\"0\", " \"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"]) + "\"," + //\"FProjectNo\":\"\", " \"FOUTCONTROL\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOUTCONTROL"]) + "\"," + //\"FRepairQty\":\"0\", //\"FIsCreateProDoc\":\"\", //\"FEOwnerSupplierId\":{\"FNUMBER\":\"\"}, " \"FISOVERLEGALORG\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISOVERLEGALORG"]) + "\"," + //\"FESettleCustomerId\":{\"FNUMBER\":\"\"}, //" \"FPriceListEntry\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "\"}," + " \"FARNOTJOINQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FARNOTJOINQTY"]) + "\"," + //\"FQmEntryID\":\"0\", //\"FConvertEntryID\":\"0\", " \"FSOENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOENTRYID"]) + "\"," + //\"FThirdEntryId\":\"\", //\"FBeforeDisPriceQty\":\"0\", //\"FSignQty\":\"0\", " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXUNITID"]) + "\"}," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FSOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOORDERNO"]) + "\"," + " \"FPRICEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEUNITID"]) + "\"}," + " \"FPRICECOEFFICIENT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICECOEFFICIENT"]) + "\"," + " \"FSYSPRICE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSYSPRICE"]) + "\"," + " \"FLIMITDOWNPRICE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLIMITDOWNPRICE"]) + "\"," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"FSRCBIZUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + " \"FROWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FROWID"]) + "\"," + " \"FPARENTROWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTROWID"]) + "\"," + " \"FSRCTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCTYPE"]) + "\"," + " \"FMustQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "\"," + " \"FBASEMUSTQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEMUSTQTY"]) + "\"," + " \"FBASEUNITQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTY"]) + "\"," + " \"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]["FPRICE"]) + "\"," + " \"FTAXPRICE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXPRICE"]) + "\"," + sJson_SubCustom + " \"FTaxDetailSubEntity\": [ { " + //"FDetailID": 0, " \"FTAXRATEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATEID"]) + "\"}," + " \"FTAXRATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATE"]) + "\"," + " \"FCOSTPERCENT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTPERCENT"]) + "\"," + " \"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + " \"FSELLERWITHHOLDING\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSELLERWITHHOLDING"]) + "\"," + " \"FBUYERWITHHOLDING\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBUYERWITHHOLDING"]) + "\"" + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\",\"FSerialNote\":\"\"}]}], //\"FOutStockTrace\":[{\"FEntryID\":\"0\", //\"FLogComId\":{\"FCODE\":\"\"}, //\"FDelTime\":\"1900-01-01\", //\"FCarryBillNo\":\"\", //\"FTraceStatus\":\"\", //\"FOutStockTraceDetail\":[{\"FDetailID\":\"0\", //\"FTraceTime\":\"\", //\"FTraceDetail\":\"\"}] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEUNITQTYOLD"]) + "\"," + " \"FEntity_Link_FSALBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSALBASEQTYOLD"]) + "\"," + " \"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_OUTSTOCK", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildSellOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成销售出库单失败!" + HReturn; LogService.Write("生成销售出库单(源单:销售订单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成销售出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成销售出库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_SellOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; 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 = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成销售出库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核销售出库单(源单:销售订单)成功!" + sRemark); sErrMsg = "生成并审核销售出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成销售出库单(源单:销售订单)成功!" + sRemark); sErrMsg = "生成销售出库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 销售出库单 源单:发货通知单 /// /// /// /// private bool SaveSellOutBill_SeOutStock_CLD(Model.ClsKf_SellOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1205','1205'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateRelation_SeOutStockToSellOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 子表信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBill_SeOutStock_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBill_SeOutStock_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBill_SeOutStock_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBill_SeOutStock_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sIsEntryBatchFill = "True"; //是否批量填充分录,默认true(非必录) string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_CampanyName == "博日科技") //系统参数 客户定制化名称 空白为通用 { sIsEntryBatchFill = "false"; } if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"" + sIsEntryBatchFill + "\"," + "\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + sJson_Date + "\"FSALEORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEORGID"]) + "\"}," + "\"FCUSTOMERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCUSTOMERID"]) + "\"}," + "\"FSALEDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALEDEPTID"]) + "\"}," + "\"FHEADLOCATIONID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FHEADLOCATIONID"]) + "\"}," + "\"FCORRESPONDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCORRESPONDORGID"]) + "\"}," + "\"FCARRIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCARRIERID"]) + "\"}," + "\"FCARRIAGENO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCARRIAGENO"]) + "\"," + "\"FSALESGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALESGROUPID"]) + "\"}," + "\"FSALESMANID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSALESMANID"]) + "\"}," + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + "\"FDELIVERYDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDELIVERYDEPTID"]) + "\"}," + "\"FSTOCKERGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERGROUPID"]) + "\"}," + "\"FSTOCKERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNOTE"]) + "\"," + "\"FRECEIVERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVERID"]) + "\"}," + "\"FRECEIVEADDRESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVEADDRESS"]) + "\"," + "\"FSETTLEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLEID"]) + "\"}," + "\"FRECEIVERCONTACTID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIVERCONTACTID"]) + "\"}," + "\"FPAYERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYERID"]) + "\"}," + "\"FOWNERTYPEIDHEAD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEIDHEAD"]) + "\"," + "\"FOWNERIDHEAD\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERIDHEAD"]) + "\"}," + //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FPLANRECADDRESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPLANRECADDRESS"]) + "\"," + "\"FIsTotalServiceOrCost\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsTotalServiceOrCost"]) + "," + "\"FBUSINESSTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBUSINESSTYPE"]) + "\"," + sJson_MainCustom + "\"SubHeadEntity\":{ " + //\"FEntryId\":\"0\", "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + //\"FThirdBillNo\":\"\", //\"FThirdBillId\":\"\", //\"FThirdSrcType\":\"\", "\"FSETTLEORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLEORGID"]) + "\"}," + "\"FSETTLETYPEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLETYPEID"]) + "\"}," + "\"FRECEIPTCONDITIONID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRECEIPTCONDITIONID"]) + "\"}," + //\"FPriceListId\":{\"FNumber\":\"\"}, //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"FISINCLUDEDTAX\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISINCLUDEDTAX"]) + "," + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else if (oSystemParameterMain.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + " {" + //\"FENTRYID\":\"0\", " \"FROWTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FROWTYPE"]) + "\"," + " \"FCUSTMATID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCUSTMATID"]) + "\"}," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + //\"FInventoryQty\":\"0\", " \"FPARENTMATID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTMATID"]) + "\"}," + " \"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + //\"FDisPriceQty\":\"0\", " \"FPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICE"]) + "," + " \"FTAXPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXPRICE"]) + "," + " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + sJson_FProduceDate + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + sJson_BatchNo + sJson_FExpiryDate + " \"FTAXCOMBINATION\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXCOMBINATION"]) + "\"}," + " \"FENTRYTAXRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FENTRYTAXRATE"]) + "," + //\"FAuxUnitQty\":\"0\", " \"FEXTAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEXTAUXUNITID"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + " \"FSTOCKSTATUSID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKSTATUSID"]) + "\"}," + //\"FQualifyType\":\"\", " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FEntrynote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrynote"]) + "\"," + " \"FDISCOUNTRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDISCOUNTRATE"]) + "," + //\"FPriceDiscount\":\"0\", //\"FActQty\":\"0\", //" \"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"]) + "," + //\"FProjectNo\":\"\", " \"FOUTCONTROL\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOUTCONTROL"]) + "," + //\"FRepairQty\":\"0\", //\"FIsCreateProDoc\":\"\", //\"FEOwnerSupplierId\":{\"FNUMBER\":\"\"}, " \"FISOVERLEGALORG\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISOVERLEGALORG"]) + "," + //\"FESettleCustomerId\":{\"FNUMBER\":\"\"}, //\"FPriceListEntry\":{\"FNUMBER\":\"\"}, " \"FARNOTJOINQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FARNOTJOINQTY"]) + "," + //\"FQmEntryID\":\"0\", //\"FConvertEntryID\":\"0\", " \"FSOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOENTRYID"]) + "," + //\"FThirdEntryId\":\"\", //\"FBeforeDisPriceQty\":\"0\", //\"FSignQty\":\"0\", " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXUNITID"]) + "\"}," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FSOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSOORDERNO"]) + "\"," + " \"FPRICEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEUNITID"]) + "\"}," + " \"FPRICECOEFFICIENT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICECOEFFICIENT"]) + "," + " \"FSYSPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSYSPRICE"]) + "," + " \"FLIMITDOWNPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLIMITDOWNPRICE"]) + "," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"FSRCBIZUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + " \"FROWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FROWID"]) + "\"," + " \"FPARENTROWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTROWID"]) + "\"," + " \"FSRCTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCTYPE"]) + "\"," + " \"FMustQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "\"," + " \"FBASEMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEMUSTQTY"]) + "," + " \"FBASEUNITQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTY"]) + "," + " \"FSALBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSALBASENUM"]) + "," + " \"FSTOCKBASEDEN\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "," + " \"FSALUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSALUNITID"]) + "\"}," + " \"FSALUNITQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSALUNITQTY"]) + "," + sJson_SubCustom + " \"FTaxDetailSubEntity\": [ { " + //"FDetailID": 0, " \"FTAXRATEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATEID"]) + "\"}," + " \"FTAXRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATE"]) + "," + " \"FCOSTPERCENT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTPERCENT"]) + "," + " \"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + " \"FSELLERWITHHOLDING\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSELLERWITHHOLDING"]) + "\"," + " \"FBUYERWITHHOLDING\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBUYERWITHHOLDING"]) + "\"" + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\",\"FSerialNote\":\"\"}]}], //\"FOutStockTrace\":[{\"FEntryID\":\"0\", //\"FLogComId\":{\"FCODE\":\"\"}, //\"FDelTime\":\"1900-01-01\", //\"FCarryBillNo\":\"\", //\"FTraceStatus\":\"\", //\"FOutStockTraceDetail\":[{\"FDetailID\":\"0\", //\"FTraceTime\":\"\", //\"FTraceDetail\":\"\"}] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_OUTSTOCK", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildSellOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成销售出库单失败!" + HReturn; LogService.Write("生成销售出库单(源单:发货通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成销售出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成销售出库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_SellOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; 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 = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成销售出库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核销售出库单(源单:发货通知单)成功!" + sRemark); sErrMsg = "生成并审核销售出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成销售出库单(源单:发货通知单)成功!" + sRemark); sErrMsg = "生成销售出库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 销售出库CLOUD * [WebMethod] 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)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } private bool SaveSellOutBill_CLD(Model.ClsKf_SellOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); 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" + ",HSTOCKORGID,HOWNERID" + ") " + " 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Xs_UpDateSeOutStockRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") //系统参数 启用器具管理 { string HMouldBillType = "3802"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",2"); } //根据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 = ""; string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_Custom = "\"F_QOUL_Text\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CPH"]) + "\"," + //车牌号 "\"F_QOUL_Text1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_THR"]) + "\"," + //提货人 "\"F_QOUL_Text2\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_THDH"]) + "\"," + //提货电话 "\"F_QOUL_COMBO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_QOUL_COMBO"]) + "\"," + //出货类型 "\"F_QOUL_COMBO1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_QOUL_COMBO1"]) + "\"," + //售后配件 "\"F_QOUL_COMBO2\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_QOUL_COMBO2"]) + "\"," + //广告配件 "\"F_QOUL_COMBO3\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_QOUL_COMBO3"]) + "\"," + //是否扫描 "\"F_QOUL_TEXT3\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_QOUL_TEXT3"]) + "\","; //交货地 } else if (oSystemParameterMain.WMS_CampanyName == "四维尔") { sJson_Custom = "\"F_ABCD_ASSISTANT1\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT1"]) + "\" }," + //物流公司 "\"F_ABCD_ASSISTANT2\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT2"]) + "\" }," + //送货地址 "\"F_ABCD_ASSISTANT3\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT3"]) + "\" }," + //收货人 "\"F_ABCD_ASSISTANT4\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_ASSISTANT4"]) + "\" }," + //联系电话 "\"F_ABCD_DATE3\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_DATE3"]) + "\","; //要求到货日期 } 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\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"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"]) + "\"," + sJson_MainCustom + "\"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 = ""; string sJson_FAUXPROPID = ""; string sJson_SWECustom = ""; 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"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //自定义字段处理 if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_SWECustom = "\"FEntrynote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNOTE"]) + "\"," + //备注 "\"FRANNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRANNUMBER"]) + "\"," + //RanNumber "\"F_ABCD_TEXT2\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_TEXT2"]) + "\"," + //送货时间 "\"F_ABCD_INTEGER\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_INTEGER"]) + "," + //SNP "\"F_ABCD_DATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_DATE"]) + "\"," + //建议到货日期 "\"F_ABCD_DATE1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_DATE1"]) + "\"," + //建议交货日期 "\"F_ABCD_DECIMAL\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_DECIMAL"]) + "," + //箱数 "\"F_ABCD_DATE2\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ABCD_DATE2"]) + "\","; //交货日期 } // 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"]) + "\" }," + sJson_FAUXPROPID + "\"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 + sJson_SWECustom + "\"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; //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_OUTSTOCK", sJson }); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildSellOut '" + oMain.HBillNo + "','1402'"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成销售出库单失败!" + HReturn; LogService.Write("生成销售出库单(源单:发货通知单)失败-旧方法!" + HReturn + sJson); //写入txt文本 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 + "'"); } } LogService.Write("生成销售出库单(源单:发货通知单)成功-旧方法!" + sJson); oCn.Commit(); } } else { sErrMsg = "生成销售出库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成销售出库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_SellOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; 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 = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成销售出库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { sErrMsg = "生成并审核销售出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { sErrMsg = "审核销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } else { sErrMsg = "生成销售出库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 销售出库 校验模式* //校验销售出库单 [WebMethod] public bool set_SaveSellOutBill_BillCheck(Model.ClsKf_SellOutBillMain oMain, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //原单据为扫码生成,对原扫描的条码进行核对 if (oSystemParameter.omodel.Kf_SellOutBillCheck_SourceBarCodeCtl == "Y") { if (set_SaveSellOutBill_CLD_BillCheck_Verify(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } //原单据非扫码生成 else { if (set_SaveSellOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } } //原单据非扫码生成 private bool set_SaveSellOutBill_CLD_BillCheck(Model.ClsKf_SellOutBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_SellOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_SellOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_SellOutBillCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } if (oSystemParameter.omodel.Kf_SellOutBillCheck_MustQtyCtl == "完全等于应收") { string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //提交单据 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 = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核销售出库单失败!" + HReturn; oCn.RollBack(); return false; } else { sErrMsg = "审核销售出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } else { sErrMsg = "校验审核销售出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } else { //根据TMP表 返回 修改信息 DataSet Ds2; Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetSellOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetSellOutBillCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) { sErrMsg = "获取修改信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FRealQty\"]," + "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"false\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + "\"FEntity\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{" + "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FRealQty"]) + "\" " + "}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //验证用户信息 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //修改单据 var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SAL_OUTSTOCK", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "修改销售出库单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { HReturn = ""; //提交单据 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 = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "校验审核销售出库单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { //重新同步销售出库单 oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_SellOut '" + oMain.HBillNo + "'"); sErrMsg = "修改并审核销售出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } } else { sErrMsg = "校验审核销售出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } } catch (Exception e) { sErrMsg = "校验审核销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } //原单据为扫码生成,对原扫描的条码进行核对 private bool set_SaveSellOutBill_CLD_BillCheck_Verify(Model.ClsKf_SellOutBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_SellOutBillCheck_Verify " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'", "h_p_WMS_BeforeUpload_SellOutBillCheck_Verify"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); //写入条码出入库校验表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Verify_Insert " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //金蝶云审核单据 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //提交单据 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 = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核销售出库单失败!" + HReturn; oCn.RollBack(); return false; } else { sErrMsg = "校验审核销售出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } else { sErrMsg = "校验审核销售出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } catch (Exception e) { sErrMsg = "校验审核销售出库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 进站记录 //进站记录表 [WebMethod] public bool set_SaveStationInBill(Model.ClsSc_StationInBillMain oMain, ref string sErrMsg) { DAL.ClsSc_StationInBill dal = new DAL.ClsSc_StationInBill(); dal.omodel = oMain; if (dal.AddBill(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } #endregion #region 开工单 //开工单 [WebMethod] public bool set_SaveMESBeginWorkBill(Model.ClsSc_MESBeginWorkBillMain oMain, ref string sErrMsg) { DAL.ClsSc_MESBeginWorkBill dal = new DAL.ClsSc_MESBeginWorkBill(); dal.omodel = oMain; if (dal.AddBill(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } #endregion #region 模具产能表 //模具产能表 [WebMethod] public bool set_SaveStdWorkQtyBill(Model.ClsSc_StdWorkQtyBillMain oMain, ref string sErrMsg) { DAL.ClsSc_StdWorkQtyBill dal = new DAL.ClsSc_StdWorkQtyBill(); dal.omodel = oMain; if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //根据物料返回产能信息 // // 根据物料返回产能信息 // // 过滤条件 // [WebMethod] public DataSet GetSc_StdWorkQtyBill_HMaterID(long HMaterID, string sWhere) { DAL.ClsSc_StdWorkQtyBill dal = new DAL.ClsSc_StdWorkQtyBill(); return dal.GetInfoByHMaterID(HMaterID, sWhere); } //根据任务单返回产能信息 // // 根据任务单返回产能信息 // // 过滤条件 // [WebMethod] public DataSet GetSc_StdWorkQtyBill_HICMOInterID(long HICMOInterID, string sWhere) { DAL.ClsSc_StdWorkQtyBill dal = new DAL.ClsSc_StdWorkQtyBill(); return dal.GetInfoByHICMOInterID(HICMOInterID, sWhere); } #endregion #region 领料出库核对CLOUD [WebMethod] public bool set_CheckMateOutBill_CLD(Model.ClsKf_MateOutBillMain_CLD oMain, ref string sErrMsg) { if (CheckMateOutBill_CLD(oMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } /// /// 生产领料 /// /// /// /// public bool CheckMateOutBill_CLD(Model.ClsKf_MateOutBillMain_CLD oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; //根据TMP表 返回 信息 Ds = oCn.RunProcReturn("exec h_p_Kf_CheckMateOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\", " + //\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}, " + "\"FPRDORGID\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FBillType\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\" " + " }, \"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 = ""; 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 = ""; } sJson_Entry = sJson_Entry + "{ \"FSEQ\":\"" + Convert.ToString(i + 1) + "\", " + " \"FPARENTMATERIALID\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTMATERIALID"]) + "\" } , " + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}, " + "\"FBASEUNITID\" : {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"} , " + sJson_BatchNo + " \"FBASESTOCKACTUALQTY\": " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASESTOCKACTUALQTY"]) + " ," + "\"FSTOCKUNITID\" : {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKUNITID"]) + "\"} , " + " \"FMOBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\" , " + " \"FMOID\" :\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "\" , " + " \"FMOENTRYID\" :\" " + Pub_Class.ClsPub.isLong(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "\" , " + " \"FMOENTRYSEQ\" :\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "\" , " + //" \"F_PAEZ_TEXT1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PAEZ_TEXT1"]) + "\", " + " \"FPPBOMBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBOMBILLNO"]) + "\" , " + " \"FPPBOMENTRYID\" : " + Pub_Class.ClsPub.isLong(Ds.Tables[1].Rows[i]["FPPBOMENTRYID"]) + " , " + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"} , " + " \"FWORKSHOPID\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}, " + " \"FSTOCKID\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + "\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}}," + "\"FAPPQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPPQTY"]) + ", " + " \"FACTUALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FACTUALQTY"]) + ", " + " \"FSRCBILLTYPE\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\" , " + "\"FSRCBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\" , " + " \"FSRCINTERID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + " , " + " \"FSRCENTRYID\" : " + Pub_Class.ClsPub.isLong(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + " , " + " \"FSRCENTRYSEQ\" :\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "\" , " + //" \"FOPERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOPERID"]) + ", " + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\", " + " \"FREQBILLID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "\", " + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\", " + " \"FREQENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "\", " + " \"FREQENTRYSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "\", " + " \"FPARENTOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTOWNERTYPEID"]) + "\" , " + " \"FPARENTOWNERID\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"} , " + " \"FOWNERID\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"} , " + " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\" , " + " \"FEntity_Link_FFlowLineId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + " , " + " \"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"]) + " " + " } ] } "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 入库单 1个物料1单 ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //string sJson1= "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; //var result1 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.UnAudit", //new object[] { "PRD_PickMtrl", sJson1 }); string sJson4 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result4 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Delete", new object[] { "PRD_PickMtrl", sJson4 }); var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_PickMtrl", sJson }); string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_PickMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_PickMtrl", sJson3 }); string HReturn = result4.ToString() + "," + result.ToString() + "," + result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生产领料单失败!" + HReturn + sJson; return false; } else { return true; } } else { sErrMsg = "生产领料单失败!登录失败!"; return false; } } } catch (Exception e) { sErrMsg = "生产领料单失败!" + e.Message; return false; } } #endregion #region 生产退料 生产领料(红字) *旧 //生成生产退料单 [WebMethod] public bool set_SaveMateOutBackBill(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_MateOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_MateOutBackBill dal = new DAL.ClsKf_MateOutBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "收料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_MateOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { } sErrMsg = "保存生产退料单失败!" + sErrMsg; return false; } #endregion #region 生产退料 生产领料(红字) * //生成生产退料单 [WebMethod] public bool set_SaveMateOutBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateOutBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_MateOutBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MateOutBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_MateOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveMateOutBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_MateOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveMateOutBackBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存生产退料单失败!" + sErrMsg; return false; } #endregion #region 生产退料K3 生产领料(红字) * /// /// 生成生产退料单K3 /// /// /// /// public bool SaveMateOutBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_MateOutBackBill dal = new DAL.ClsKf_MateOutBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MateOutBackBillSub_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('1244','1244'," + 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_MateOutBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "3720") //生产任务单-投料 { oCn.RunProc("exec h_p_Sc_UpDateRelation_PPBomToMateOutBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBackBill_UpdateBillRelateData_PPBom " + oMain.HInterID.ToString()); } else if (sHSourceType == "1204") //生产领料单-蓝字 { oCn.RunProc("exec h_p_Kf_UpDateRelation_MateOutToMateOutBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBackBill_UpdateBillRelateData_Blue " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBackBill_UpdateBillRelateData " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_MateOutBackBill_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_MateOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_MateOutBackBill_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_MateOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成生产退料单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 生产退料CLOUD 生产领料(红字) *New //生成生产退料单 [WebMethod] public bool set_SaveMateOutBackBill_CLD_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "3720") //生产用料清单 { if (SaveMateOutBackBill_PPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } //else if (sHSourceType == "1204") //生产领料单 //{ // if (SaveMateOutBackBill_MateOut_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) // { // //"保存成功!"; // sErrMsg = "保存成功!" + oMain.HBillNo; // return true; // } // else // { // //"保存失败!"; // sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; // return false; // } //} else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 生产退料单 (源单:生产用料清单) /// /// /// /// public bool SaveMateOutBackBill_PPBom_CLD(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MateOutBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1244','1244'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_PPBomToMateOutBack_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBackBill_PPBom_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBackBill_PPBom_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBackBill_PPBom_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBackBill_PPBom_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPrdOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPrdOrgId"]) + "\"}," + "\"FOwnerTypeId0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," + //\"FOwnerId0\":{\"FNumber\":\"\"}, "\"FReturnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReturnerId"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", //\"FCurrId\":{\"FNumber\":\"\"}, "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," + "\"FVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," + //\"FScanBox\":\"\", //\"FSourceType\":\"\", sJson_MainCustom + "\"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_FAUXPROPID = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FEntryID\":\"0\", "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FAPPQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPPQty"]) + "\"," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + "\"FReturnType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReturnType"]) + "\"," + //\"FReturnReason\":{\"FNumber\":\"\"}, "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + sJson_BatchNo + //\"FEntrtyMemo\":\"\", "\"FSrcBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillType"]) + "\"," + "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + "\"FEntrySrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEntrySeq"]) + "\"," + "\"FPPBomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomBillNo"]) + "\"," + "\"FProcessId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\"}," + "\"FParentMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\"}," + "\"FPPBOMEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBOMEntryId"]) + "\"," + "\"FMoId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + "\"," + //\"FConsome\":\"\", "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," + "\"FBASESTOCKQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASESTOCKQTY"]) + "\"," + "\"FMoBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoBillNo"]) + "\"," + "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," + //\"FOptQueue\":\"\", //\"FOptPlanBillNo\":\"\", //\"FOptPlanBillId\":\"0\", //\"FWorkCenterId\":{\"FNUMBER\":\"\"}, //\"FOptDetailId\":\"0\", "\"FMoEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + "\"," + //\"FEquipmentId\":{\"FNUMBER\":\"\"}, "\"FMoEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntrySeq"]) + "\"," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," + //\"FStockAppQty\":\"0\", "\"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecStockQty\":\"0\", "\"FStockQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockQty"]) + "\"," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + "\"FOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperId"]) + "\"," + "\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + //\"FSelRePickedQty\":\"0\", "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," + //\"FBaseSelRePickedQty\":\"0\", "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + "\"FEntrySrcEnteryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEnteryId"]) + "\"," + "\"FEntrySrcInterId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcInterId"]) + "\"," + sJson_FProduceDate + sJson_FExpiryDate + "\"FWorkShopId1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWorkShopId1"]) + "\"}," + "\"FParentOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerTypeId"]) + "\"," + "\"FParentOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\"}," + //\"FSrcBizBillType\":{\"FNAME\":\"\"}, //\"FSrcBizBillNo\":\"\", //\"FSrcBizInterId\":\"0\", //\"FSrcBizEntryId\":\"0\", //\"FSrcBizEntrySeq\":\"0\", // "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + "\"FReqSrc\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqSrc"]) + "\"," + "\"FReqBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqBillNo"]) + "\"," + "\"FReqBillId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqBillId"]) + "," + "\"FReqEntrySeq\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqEntrySeq"]) + "," + "\"FReqEntryId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqEntryId"]) + "," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] "\"FEntity_Link\": [ { " + "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + "\"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + "\"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_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_ReturnMtrl", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMateOutBack '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产退料单失败!" + HReturn; LogService.Write("生成生产退料单(源单:生产用料清单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产退料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产退料单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MateOutBackBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_ReturnMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_ReturnMtrl", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产退料单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产退料单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成并审核生产退料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产退料单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产退料单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成生产退料单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 领料出库 *旧 //生成领料出库单 [WebMethod] public bool set_SaveMateOutBill(Model.ClsKf_MateOutBillMain oMain, ref string sErrMsg) { DAL.ClsKf_MateOutBill dal = new DAL.ClsKf_MateOutBill(); DAL.ClsKF_PonderationBillMain_Temp_View tmp = new DAL.ClsKF_PonderationBillMain_Temp_View(); dal.omodel = oMain; //判断扫描记录,是否按照先进先出规则 //if (!tmp.CheckICInventory_FIFO_Tmp(oMain.HInterID, oMain.HBillType, ref sErrMsg)) //{ // return false; //} //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } // if (oSystemParameter.omodel.Kf_MateOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "领料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "发料没有选择!"; return false; } //同步生成K3单据 if (oMain.HRedBlueFlag) { if (dal.AddBill_PDA_Red(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_MateOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveMateOutBill_CLD(oMain, "1111", oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存生产领料单失败!" + sErrMsg; return false; } //核对生单领料出库单K3 [WebMethod] public bool set_CheckAddMateOutBill(Model.ClsKf_MateOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_MateOutBill_K3 dal = new DAL.ClsKf_MateOutBill_K3(); dal.omodel = oMain; if (oMain.HRedBlueFlag) { if (dal.CheckAddBill_RedPDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (dal.CheckAddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } //核对领料出库单K3 [WebMethod] public bool set_CheckMateOutBill(Model.ClsKf_MateOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_MateOutBill_K3 dal = new DAL.ClsKf_MateOutBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //核对领料出库单K3 [WebMethod] public bool set_CheckMateOutBill_Row(Int64 HSourceInterID, Int64 HSourceEntryID, ref string sErrMsg) { DAL.ClsKf_MateOutBill_K3 dal = new DAL.ClsKf_MateOutBill_K3(); if (dal.AddBill_WMS_PDA(HSourceInterID, HSourceEntryID, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核领料出库单K3 [WebMethod] public bool set_AuditMateOutBill(Model.ClsKf_MateOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_MateOutBill_K3 dal = new DAL.ClsKf_MateOutBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //根据部门、物料、指令单号、销售订单号返回源单信息 /// /// 根据部门、物料、指令单号、销售订单号返回源单信息 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_MateOutBill_K3_Source(long HDeptID, long HMaterID, long HInstructID, long HSeOrderBillID, string sWhere) { DAL.ClsKf_MateOutBill_K3 dal = new DAL.ClsKf_MateOutBill_K3(); return dal.GetInfoBySource(HDeptID, HMaterID, HInstructID, HSeOrderBillID, sWhere); } #endregion #region 领料出库 * //生成领料出库单 [WebMethod] public bool set_SaveMateOutBill_New(Model.ClsKf_MateOutBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateOutBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_MateOutBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MateOutBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_MateOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveMateOutBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_MateOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "韩电" || oSystemParameter.omodel.WMS_CampanyName == "雅琪诺" || oSystemParameter.omodel.WMS_CampanyName == "圣龙") //系统参数 客户定制化名称 空白为通用 { if (set_SaveMateOutBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SaveMateOutBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } sErrMsg = "保存领料出库单失败!" + sErrMsg; return false; } #endregion #region 领料出库K3 * /// /// 生成领料出库单K3 /// /// /// /// public bool SaveMateOutBill_K3(Model.ClsKf_MateOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_MateOutBill dal = new DAL.ClsKf_MateOutBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "领料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "发料没有选择!"; return false; } //生成领料出库单前判断 DataSet DsCheck; DsCheck = oCn.RunProcReturn("exec h_p_K3_LoadMateOutCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + sHSourceType + "'", "h_p_K3_LoadMateOutCheck"); if (DsCheck == null || DsCheck.Tables[0].Rows.Count == 0) { sErrMsg = "生成单据前判断失败!"; return false; } else { if (DBUtility.ClsPub.isLong(DsCheck.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(DsCheck.Tables[0].Rows[0]["HRemark"]); return false; } } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断金蝶K3负库存 DataSet Ds = oCn.RunProcReturn("EXEC h_p_IFK3_ICInventory_Load " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "'", "h_p_IFK3_ICInventory_Load"); if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 2) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0][1]); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MateOutBillSub_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('1204','1204'," + 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_MateOutBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "3720") //生产任务单-投料 { oCn.RunProc("exec h_p_Sc_UpDateRelation_PPBomToMateOut_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBill_UpdateBillRelateData_PPBom_New " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_MateOutBill_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_MateOutBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_MateOutBill_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_MateOutBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_MateOutBill_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]); // if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 // { // } // else // { // oCn.RollBack(); // } // return false; // } //} sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成领料出库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 领料出库CLOUD *New [WebMethod] public bool set_SaveMateOutBill_CLD_New(Model.ClsKf_MateOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "3720") //生产用料清单 { if (SaveMateOutBill_PPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1214") //生产发料通知单 { if (SaveMateOutBill_MateOutRequest_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 生产领料单 (源单:生产用料清单) /// /// /// /// public bool SaveMateOutBill_PPBom_CLD(Model.ClsKf_MateOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MateOutBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1204','1204'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_PPBomToMateOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBill_PPBom_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_PPBom_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBill_PPBom_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_PPBom_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + //"\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + sJson_Date + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPrdOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPrdOrgId"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOwnerTypeId0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," + //\"FOwnerId0\":{\"FNumber\":\"\"}, "\"FPickerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCurrId"]) + "\"}," + "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," + "\"FVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," + //\"FScanBox\":\"\", //\"FSourceType\":\"\", sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FEntryID\":\"0\", "\"FParentMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\"}," + "\"FBaseStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseStockActualQty"]) + "\"," + //\"FConsome\":\"\", //\"FFPMBillNo\":\"\", "\"FOptQueue\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptQueue"]) + "\"," + "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAppQty"]) + "\"," + "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActualQty"]) + "\"," + "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," + //\"FOptPlanBillNo\":\"\", "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FOptPlanBillId\":\"0\", sJson_StockPlace + //\"FWorkCenterId\":{\"FNUMBER\":\"\"}, //\"FOptDetailId\":\"0\", sJson_BatchNo + //\"FCobyBomEntryID\":\"0\", "\"FProcessId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\"}," + "\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + "\"FGroupRow\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGroupRow"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //\"FProduceDate\":\"1900-01-01\", //\"FEntrtyMemo\":\"\", "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + //\"FProjectNo\":\"\", "\"FMoBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoBillNo"]) + "\"," + "\"FMoEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + "\"," + "\"FPPBomEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomEntryId"]) + "\"," + "\"FOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperId"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," + "\"FStockAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAppQty"]) + "\"," + "\"FStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockActualQty"]) + "\"," + //\"FStockAllowOverQty\":\"0\", "\"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecActualQty\":\"0\", //\"FSecAllowOverQty\":\"0\", "\"FMoId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + "\"," + "\"FMoEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntrySeq"]) + "\"," + //\"FAllowOverQty\":\"0\", "\"FPPBomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomBillNo"]) + "\"," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," + "\"FBaseActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseActualQty"]) + "\"," + //\"FBaseAllowOverQty\":\"0\", "\"FEntryWorkShopId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryWorkShopId"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FExpiryDate\":\"1900-01-01\", "\"FSrcBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillType"]) + "\"," + "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + //\"FPrice\":\"0\", "\"FEntrySrcInterId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcInterId"]) + "\"," + //\"FAmount\":\"0\", "\"FEntrySrcEnteryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEnteryId"]) + "\"," + "\"FEntrySrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEntrySeq"]) + "\"," + "\"FParentOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerTypeId"]) + "\"," + "\"FParentOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\"}," + //\"FSRCBIZBILLTYPE\":{\"FNAME\":\"\"}, //\"FSRCBIZBILLNO\":\"\", //\"FSRCBIZINTERID\":\"0\", //\"FSRCBIZENTRYID\":\"0\", //\"FSRCBIZENTRYSEQ\":\"0\", "\"FPickingStatus\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPickingStatus"]) + "\"," + // "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] "\"FEntity_Link\": [ { " + "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + "\"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + "\"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_FBASEACTUALQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEACTUALQTYOLD"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_PickMtrl", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMateOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产领料单失败!" + HReturn; LogService.Write("生成生产领料单(源单:生产用料清单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产领料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产领料单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MateOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_PickMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_PickMtrl", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产领料单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产领料单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成并审核生产领料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产领料单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产领料单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成生产领料单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 生产领料单 (源单:生产发料通知单) /// /// /// /// public bool SaveMateOutBill_MateOutRequest_CLD(Model.ClsKf_MateOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MateOutBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1204','1204'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_MateOutRequestToMateOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBill_MateOutRequest_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_MateOutRequest_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBill_MateOutRequest_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_MateOutRequest_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + //"\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + sJson_Date + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPrdOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPrdOrgId"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOwnerTypeId0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," + //\"FOwnerId0\":{\"FNumber\":\"\"}, "\"FPickerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCurrId"]) + "\"}," + "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," + "\"FVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," + //\"FScanBox\":\"\", //\"FSourceType\":\"\", sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //仓位 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 + "{" + //\"FEntryID\":\"0\", "\"FParentMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\"}," + "\"FBaseStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseStockActualQty"]) + "\"," + //\"FConsome\":\"\", //\"FFPMBillNo\":\"\", "\"FOptQueue\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptQueue"]) + "\"," + "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAppQty"]) + "\"," + "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActualQty"]) + "\"," + "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," + //\"FOptPlanBillNo\":\"\", "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FOptPlanBillId\":\"0\", sJson_StockPlace + //\"FWorkCenterId\":{\"FNUMBER\":\"\"}, //\"FOptDetailId\":\"0\", sJson_BatchNo + //\"FCobyBomEntryID\":\"0\", "\"FProcessId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\"}," + "\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + "\"FGroupRow\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGroupRow"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //\"FProduceDate\":\"1900-01-01\", //\"FEntrtyMemo\":\"\", "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + //\"FProjectNo\":\"\", "\"FMoBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoBillNo"]) + "\"," + "\"FMoEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + "\"," + "\"FPPBomEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomEntryId"]) + "\"," + "\"FOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperId"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," + "\"FStockAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAppQty"]) + "\"," + "\"FStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockActualQty"]) + "\"," + //\"FStockAllowOverQty\":\"0\", "\"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecActualQty\":\"0\", //\"FSecAllowOverQty\":\"0\", "\"FMoId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + "\"," + "\"FMoEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntrySeq"]) + "\"," + //\"FAllowOverQty\":\"0\", "\"FPPBomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomBillNo"]) + "\"," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," + "\"FBaseActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseActualQty"]) + "\"," + //\"FBaseAllowOverQty\":\"0\", "\"FEntryWorkShopId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryWorkShopId"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FExpiryDate\":\"1900-01-01\", "\"FSrcBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillType"]) + "\"," + "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + "\"FSRCINTERID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + " , " + "\"FSRCENTRYID\" : " + Pub_Class.ClsPub.isLong(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + " , " + //\"FPrice\":\"0\", "\"FEntrySrcInterId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcInterId"]) + "\"," + //\"FAmount\":\"0\", "\"FEntrySrcEnteryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEnteryId"]) + "\"," + "\"FEntrySrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEntrySeq"]) + "\"," + "\"FParentOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerTypeId"]) + "\"," + "\"FParentOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\"}," + "\"FSRCBIZBILLTYPE\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZBILLTYPE"]) + "\"}," + "\"FSRCBIZBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZBILLNO"]) + "\"," + "\"FSRCBIZINTERID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZINTERID"]) + "\"," + "\"FSRCBIZENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZENTRYID"]) + "\"," + "\"FSRCBIZENTRYSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZENTRYSEQ"]) + "\"," + "\"FPickingStatus\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPickingStatus"]) + "\"," + // "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] "\"FEntity_Link\": [ { " + "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + "\"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + "\"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_FBASEACTUALQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEACTUALQTYOLD"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_PickMtrl", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMateOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产领料单失败!" + HReturn; LogService.Write("生成生产领料单(源单:生产发料通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产领料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产领料单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MateOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_PickMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_PickMtrl", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产领料单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产领料单(源单:生产发料通知单)成功!" + sRemark); sErrMsg = "生成并审核生产领料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产领料单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产领料单(源单:生产发料通知单)成功!" + sRemark); sErrMsg = "生成生产领料单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 领料出库CLOUD * [WebMethod] public bool set_SaveMateOutBill_CLD(Model.ClsKf_MateOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (SaveMateOutBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } /// /// 生产领料 /// /// /// /// public bool SaveMateOutBill_CLD(Model.ClsKf_MateOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; //写入WMS生产领料单 oCn.BeginTran(); //插入子表 oCn.RunProc("EXEC h_p_Kf_MateOutBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1204','1204'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDatePPBomRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_MateOutBill_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_GetMateOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSTOCKORGID"]) + "\"}," + "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HPRDORGID"]) + "\"}," + //"\"FWorkShopId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FWorkShopId"]) + "\"}, " + "\"FPickerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}, " + "\"FSTOCKERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}, " + "\"FBillType\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"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_FAUXPROPID = ""; 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 (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"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //自定义字段处理 // sJson_Entry = sJson_Entry + "{ \"FSEQ\":\"" + Convert.ToString(i + 1) + "\", " + "\"FPARENTMATERIALID\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTMATERIALID"]) + "\" } , " + "\"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}, " + "\"FBASEUNITID\" : {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"} , " + 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"]) + "\" , " + "\"FBASESTOCKACTUALQTY\": " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASESTOCKACTUALQTY"]) + " ," + "\"FSTOCKUNITID\" : {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKUNITID"]) + "\"} , " + "\"FMOBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\" , " + "\"FMOID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + " , " + "\"FMOENTRYID\" : " + Pub_Class.ClsPub.isLong(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + " , " + "\"FMOENTRYSEQ\" :" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + " , " + //" \"F_PAEZ_TEXT1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PAEZ_TEXT1"]) + "\", " + "\"FPPBOMBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBOMBILLNO"]) + "\" , " + "\"FPPBOMENTRYID\" : " + Pub_Class.ClsPub.isLong(Ds.Tables[1].Rows[i]["FPPBOMENTRYID"]) + " , " + "\"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"} , " + "\"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"]) + "\"}}," + "\"FAPPQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPPQTY"]) + ", " + "\"FACTUALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FACTUALQTY"]) + ", " + "\"FEntryWorkShopId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}, " + sJson_FAUXPROPID + "\"FSRCBILLTYPE\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\" , " + "\"FSRCBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\" , " + "\"FSRCINTERID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + " , " + "\"FSRCENTRYID\" : " + Pub_Class.ClsPub.isLong(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + " , " + "\"FSRCENTRYSEQ\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + " , " + //" \"FOPERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOPERID"]) + ", " + "\"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\", " + "\"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + ", " + "\"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\", " + "\"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + ", " + "\"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + ", " + "\"FEntrySrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEntrySeq"]) + "\" , " + "\"FPARENTOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTOWNERTYPEID"]) + "\" , " + "\"FPARENTOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HPARENTOWNERID"]) + "\"} , " + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HOWNERID"]) + "\"} , " + "\"FEntity_Link\": [ { " + "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\" , " + "\"FEntity_Link_FFlowLineId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + " , " + "\"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"]) + " " + " } ] } "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_PickMtrl", sJson }); if (oSystemParameterMain.Kf_MateOutBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_PickMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_PickMtrl", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生产领料单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生产领料单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 领料出库 校验模式* //校验领料出库单 [WebMethod] public bool set_SaveMateOutBill_BillCheck(Model.ClsKf_MateOutBillMain oMain, ref string sErrMsg) { if (set_SaveMateOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } public bool set_SaveMateOutBill_CLD_BillCheck(Model.ClsKf_MateOutBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_MateOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MateOutBillCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } if (oSystemParameter.omodel.Kf_MateOutBillCheck_MustQtyCtl == "完全等于应收") { string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_PickMtrl", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_PickMtrl", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核生产领料单失败!" + HReturn; oCn.RollBack(); return false; } else { oCn.Commit(); return true; } } else { sErrMsg = "校验审核生产领料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } else { //根据TMP表 返回 修改信息 DataSet Ds2; Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateOutBillCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FActualQty\"]," + "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"false\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + "\"FEntity\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{" + "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FActualQty"]) + "\" " + "}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //验证用户信息 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //修改单据 var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_PickMtrl", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "修改生产领料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { HReturn = ""; //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_PickMtrl", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_PickMtrl", sJson3 }); HReturn =result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "校验审核生产领料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { //重新同步生产领料单 oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_MateOut '" + oMain.HBillNo + "'"); oCn.Commit(); return true; } } } else { sErrMsg = "校验审核生产领料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } } catch (Exception e) { sErrMsg = "校验审核生产领料单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 生产补料单 * //生成生产补料单 [WebMethod] public bool set_SaveMateReplenishOutBill_New(Model.ClsKf_MateReplenishOutBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateReplenishOutBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_MateReplenishOutBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MateReplenishOutBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (set_SaveMateReplenishOutBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } sErrMsg = "保存生产补料单失败!" + sErrMsg; return false; } #endregion #region 生产补料CLOUD *New [WebMethod] public bool set_SaveMateReplenishOutBill_CLD_New(Model.ClsKf_MateReplenishOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "3720") //生产用料清单 { if (SaveMateReplenishOutBill_PPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 生产补料单 (源单:生产用料清单) /// /// /// /// public bool SaveMateReplenishOutBill_PPBom_CLD(Model.ClsKf_MateReplenishOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MateReplenishOutBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1254','1254'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_PPBomToMateReplenishOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateReplenishOutBill_PPBom_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateReplenishOutBill_PPBom_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateReplenishOutBill_PPBom_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HOWNERID.ToString(), "h_p_Kf_GetMateReplenishOutBill_PPBom_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPrdOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPrdOrgId"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOwnerTypeId0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," + //\"FOwnerId0\":{\"FNumber\":\"\"}, "\"FPickerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCurrId"]) + "\"}," + "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," + "\"FVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," + //\"FScanBox\":\"\", sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FEntryID\":\"0\", "\"FParentMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\"}," + //\"FConsome\":\"\", "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," + "\"FBaseStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseStockActualQty"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAppQty"]) + "\"," + "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActualQty"]) + "\"," + "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," + //\"FScrapQty\":\"0\", //\"FOptQueue\":\"\", //\"FOptPlanBillNo\":\"\", //\"FOptPlanBillId\":\"0\", "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FWorkCenterId\":{\"FNUMBER\":\"\"}, sJson_StockPlace + //\"FOptDetailId\":\"0\", sJson_BatchNo + "\"FProcessId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\"}," + "\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + //\"FFeedReasonId\":{\"FNumber\":\"\"}, //\"FEntrtyDescription\":\"\", "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + sJson_FProduceDate + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FMoBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoBillNo"]) + "\"," + "\"FMoEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + "\"," + "\"FPPBomEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomEntryId"]) + "\"," + "\"FOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperId"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FStockAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAppQty"]) + "\"," + "\"FStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockActualQty"]) + "\"," + //\"FSecActualQty\":\"0\", "\"FMoId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + "\"," + "\"FMoEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntrySeq"]) + "\"," + "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," + //\"FStockScrapQty\":\"0\", //\"FSecScrapQty\":\"0\", //\"FBaseScrapQty\":\"0\", "\"FPPBomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomBillNo"]) + "\"," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"FStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," + "\"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + "\"FEntryWorkShopId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryWorkShopId"]) + "\"}," + "\"FBaseActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseActualQty"]) + "\"," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + sJson_FExpiryDate + "\"FEntrySrcInterId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcInterId"]) + "\"," + "\"FEntrySrcBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcBillType"]) + "\"," + "\"FEntrySrcEnteryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEnteryId"]) + "\"," + "\"FEntrySrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcBillNo"]) + "\"," + //\"FPrice\":\"0\", //\"FAmount\":\"0\", "\"FParentOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerTypeId"]) + "\"," + "\"FParentOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\"}," + "\"FEntrySrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEntrySeq"]) + "\"," + //\"FSrcBizBillNo\":\"\", //\"FSrcBizBillType\":{\"FNAME\":\"\"}, //\"FSrcBizEntryId\":\"0\", //\"FSrcBizInterId\":\"0\", //\"FSrcBizEntrySeq\":\"0\", // "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + "\"FReqSrc\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqSrc"]) + "\"," + "\"FReqBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqBillNo"]) + "\"," + "\"FReqBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqBillId"]) + "\"," + "\"FReqEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqEntrySeq"]) + "\"," + "\"FReqEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqEntryId"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{ //\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] "\"FEntity_Link\": [ { " + "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + "\"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + "\"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"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_FeedMtrl", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMateReplenishOutBill '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产补料单失败!" + HReturn; LogService.Write("生成生产补料单(源单:生产用料清单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产补料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产补料单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_MateReplenishOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_FeedMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_FeedMtrl", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产补料单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产补料单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成并审核生产补料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产补料单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产补料单(源单:生产用料清单)成功!" + sRemark); sErrMsg = "生成生产补料单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 生产补料 校验模式* //校验生产补料单 [WebMethod] public bool set_SaveMateReplenishOutBill_BillCheck(Model.ClsKf_MateReplenishOutBillMain oMain, ref string sErrMsg) { if (set_SaveMateReplenishOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } private bool set_SaveMateReplenishOutBill_CLD_BillCheck(Model.ClsKf_MateReplenishOutBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MateReplenishOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_MateReplenishOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MateReplenishOutBillCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } if (oSystemParameter.omodel.Kf_MateReplenishOutBillCheck_MustQtyCtl == "完全等于应收") { string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_FeedMtrl", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_FeedMtrl", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核生产补料单失败!" + HReturn; oCn.RollBack(); return false; } else { sErrMsg = "审核生产补料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } else { sErrMsg = "校验审核生产补料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } else { //根据TMP表 返回 修改信息 DataSet Ds2; Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetMateReplenishOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetMateReplenishOutBillCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) { sErrMsg = "获取修改信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FActualQty\"]," + "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"false\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + "\"FEntity\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{" + "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FActualQty"]) + "\"," + "}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //验证用户信息 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //修改单据 var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_FeedMtrl", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "修改生产补料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { HReturn = ""; //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_FeedMtrl", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_FeedMtrl", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "校验审核生产补料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { //重新同步销售出库单 oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_MateReplenishOut '" + oMain.HBillNo + "'"); sErrMsg = "修改并审核生产补料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } } else { sErrMsg = "校验审核生产补料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } } catch (Exception e) { sErrMsg = "校验审核生产补料单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 委外补料 校验模式* //校验委外补料单 [WebMethod] public bool set_SaveEntrustReplenishOutBill_BillCheck(Model.ClsKf_EntrustReplenishOutBillMain oMain, ref string sErrMsg) { if (set_SaveEntrustReplenishOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } private bool set_SaveEntrustReplenishOutBill_CLD_BillCheck(Model.ClsKf_EntrustReplenishOutBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustReplenishOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustReplenishOutBillCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); if (oSystemParameter.omodel.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收") { //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_FEEDMTRL", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_FEEDMTRL", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核委外补料单失败!" + HReturn; oCn.RollBack(); return false; } else { sErrMsg = "审核委外补料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } else { //根据TMP表 返回 修改信息 DataSet Ds2; Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetEntrustReplenishOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustReplenishOutBillCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) { sErrMsg = "获取修改信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FActualQty\"]," + "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + "\"FEntity\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{" + "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + " \"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["HQty"]) + "\" " + "}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //修改单据 var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SUB_FEEDMTRL", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "修改委外补料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { HReturn = ""; //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_FEEDMTRL", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_FEEDMTRL", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "校验审核委外补料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { //重新同步委外补料单 oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_EntrustReplenishOut '" + oMain.HBillNo + "'"); sErrMsg = "修改并审核委外补料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } } } } catch (Exception e) { sErrMsg = "校验审核委外补料单失败!" + e.Message; oCn.RollBack(); return false; } } else { sErrMsg = "校验审核委外补料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } #endregion #region 委外退料CLOUD * //生成外购入库单 [WebMethod] public bool set_SaveEntrustInBackBill_CLD(Model.ClsKf_EntrustInBackBillMain_CLD oMain, string sHSourceType, ref string sErrMsg) { if (SaveEntrustInBackBill_CLD(oMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } //委外退料 private bool SaveEntrustInBackBill_CLD(Model.ClsKf_EntrustInBackBillMain_CLD oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetEntrustInBackBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustInBackBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; return false; } else { //string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"Model\": { \"FID\":\"0\", \"FBILLNO\":\"" + oMain.HBillNo + "\", \"FStockOrgId\":{\"FNumber\":\"201\"}, " + // "\"FPRDORGID\":{\"FNumber\":\"201\"}, \"FBillType\": {\"FNumber\":\"SCLLD01_SYS\" " + // " }, \"FEntity\": [ "; string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"Model\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FID"]) + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillNo"]) + "\"," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\", " + "\"FMRTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRTYPE"]) + "\", " + "\"FMRMODE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRMODE"]) + "\", " + "\"FMRDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRDeptId"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FRequireOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FDESCRIPTION\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDESCRIPTION"]) + "\"}," + "\"FACCEPTORID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTORID"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}, " + "\"FMRREASON\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRREASON"]) + "\"}, " + "\"FAcceptAddress\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FAcceptAddress"]) + "\"}, " + "\"FDemandOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FCorrespondOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FPurchaseDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseDeptId"]) + "\"}, " + "\"FPurchaserGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserGroupId"]) + "\"}," + "\"FPurchaserId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserId"]) + "\"}," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}, " + "\"FSupplyAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyAddress"]) + "\"," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChargeId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\", " + "\"FOwnerIdHead\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FScanPoint\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanPoint"]) + "\"}," + "\"FConfirmerId\":{\"FUserID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConfirmerId"]) + "\"}," + "\"FConfirmDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConfirmDate"]) + "\"," + "\"FScanBox\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + "\"FCDateOffsetUnit\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetUnit"]) + "\", " + "\"FCDateOffsetValue\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetValue"]) + "," + "\"FPURMRBFIN FSettleOrgId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURMRBFIN FSettleOrgId"]) + "," + "\"FAcceptorContactID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FAcceptorContactID"]) + "," + "\"FProviderContactID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FProviderContactID"]) + "\"}," + "\"FInStockFin\":{\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}, " + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + "\"FPriceListId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceListId"]) + "\"}," + "\"FDiscountListId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDiscountListId"]) + "\"}," + "\"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"]) + "" + " }, \"FPURMRBENTRY\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{\"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FWWInType\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWWInType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}, " + "\"FMaterialDesc\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialDesc"]) + "\"}, " + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + ", " + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + "\"FLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\"}," + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + "\"FDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDisPriceQty"]) + ", " + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FRECEIVESTOCKSTATUS\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRECEIVESTOCKSTATUS"]) + "\"}," + "\"fpoorderentryid\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["fpoorderentryid"]) + ", " + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FPOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERNO"]) + "\", " + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FMtoNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "," + "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "," + "\"FNote\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + "\"FProduceDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + ", " + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + "\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + "\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + "\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + ", " + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + "\"FInvoicedJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInvoicedJoinQty"]) + "," + "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSetPriceUnitID"]) + "," + "\"FSetPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSetPriceUnitID"]) + "\"}," + "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}, " + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + "\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + "\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + "\"FBASEUNITQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTYOLD"]) + "," + "\"FREMAININSTOCKBASEQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREMAININSTOCKBASEQTYOLD"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + ", " + "\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + "\"FCostPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPrice"]) + "," + "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSupplierLot\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "," + "\"FExpiryDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "," + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + "\"FBASEREPLAYQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEREPLAYQTY"]) + "," + "\"FREPLENISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPLENISHQTY"]) + "," + "\"FKEAPAMTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEAPAMTQTY"]) + "," + "\"FSTOCKID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "," + "\"FStockStatusId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "," + "\"FREQTRACENO\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQTRACENO"]) + "," + "\"FChargeProjectID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FChargeProjectID"]) + "," + "\"FCarryUnitId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryUnitId"]) + "," + "\"FCarryQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryQty"]) + "," + "\"FCarryBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryBaseQty"]) + "," + "\"FPriceListEntry\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "," + "\"FRMMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMMUSTQTY"]) + "," + "\"FRMREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMREALQTY"]) + "," + "\"FIsStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsStock"]) + "," + "\"FBeforeDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBeforeDisPriceQty"]) + ", " + "\"FInStockEntry_Link\": [ { " + "\"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FRuleId"]) + "\" , " + "\"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FRuleId"]) + "\" , " + "\"FInStockEntry_Link_FSBillId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSBillId"]) + " , " + "\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 入库单 1个物料1单 ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SUB_RETURNMTRL", sJson }); string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_RETURNMTRL", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_RETURNMTRL", sJson3 }); string HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成采购退料单失败!" + HReturn; return false; } else { return true; } } else { sErrMsg = "生成采购入退料失败!登录失败!"; return false; } } } catch (Exception e) { sErrMsg = "生成采购入退料失败!" + e.Message; return false; } } #endregion #region 委外退料 委外出库(红字) *旧 //生成委外退料单 [WebMethod] public bool set_SaveEntrustOutBackBill(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_EntrustOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_EntrustOutBackBill dal = new DAL.ClsKf_EntrustOutBackBill(); 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; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_EntrustOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { } sErrMsg = "保存委外退料单失败!" + sErrMsg; return false; } #endregion #region 委外退料 委外出库(红字) * //生成委外退料单 [WebMethod] public bool set_SaveEntrustOutBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustOutBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_EntrustOutBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustOutBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_EntrustOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveEntrustOutBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_EntrustOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveEntrustOutBackBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存委外退料单失败!" + sErrMsg; return false; } #endregion #region 委外退料K3 委外出库(红字) * /// /// 生成委外退料单K3 /// /// /// /// public bool SaveEntrustOutBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_EntrustOutBackBill dal = new DAL.ClsKf_EntrustOutBackBill(); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_EntrustOutBackBillSub_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('1238','1238'," + 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_EntrustOutBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "3720") //委外订单-退料 { oCn.RunProc("exec h_p_WW_UpDateRelation_WWPPBomToEntrustOutBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBackBill_UpdateBillRelateData_EntrustOrder " + oMain.HInterID.ToString()); } else if (sHSourceType == "1211") //委外出库单-蓝字 { oCn.RunProc("exec h_p_Kf_UpDateRelation_EntrustOutToEntrustOutBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBackBill_UpdateBillRelateData_Blue " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBackBill_UpdateBillRelateData " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_EntrustOutBackBill_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_EntrustOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_EntrustOutBackBill_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_EntrustOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成委外退料单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 委外退料CLOUD 委外出库(红字) *New //生成委外退料单 [WebMethod] public bool set_SaveEntrustOutBackBill_CLD_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1604") //委外用料清单 { if (SaveEntrustOutBackBill_WWPPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } //else if (sHSourceType == "1211") //委外出库单 //{ // if (SaveEntrustOutBackBill_EntrustOut_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) // { // //"保存成功!"; // sErrMsg = "保存成功!" + oMain.HBillNo; // return true; // } // else // { // //"保存失败!"; // sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; // return false; // } //} else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 委外退料单 (源单:委外用料清单) /// /// /// /// public bool SaveEntrustOutBackBill_WWPPBom_CLD(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_EntrustOutBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1238','1238'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_WW_UpDateRelation_WWPPBomToEntrustOutBack_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 子表信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetEntrustOutBackBill_WWPPBom_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustOutBackBill_WWPPBom_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetEntrustOutBackBill_WWPPBom_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustOutBackBill_WWPPBom_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FSubOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSubOrgId"]) + "\"}," + "\"FSubSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSubSupplierId"]) + "\"}," + "\"FOwnerTypeId0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," + "\"FReturnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FReturnerId"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FOwnerId0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerId0"]) + "\"}," + //\"FCurrId\":{\"FNumber\":\"\"}, "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," + "\"FVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," + //\"FScanBox\":\"\", //\"FSourceType\":\"\", sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FEntryID\":\"0\", "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FAPPQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPPQty"]) + "\"," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + "\"FReturnType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReturnType"]) + "\"," + //\"FReturnReason\":{\"FNumber\":\"\"}, //\"FSRCBIZENTRYSEQ\":\"0\", "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FSRCBIZBILLTYPE\":{\"FID\":\"\"}, sJson_StockPlace + //\"FSRCBIZBILLNO\":\"\", sJson_BatchNo + "\"FSUBReqBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUBReqBillNo"]) + "\"," + "\"FSrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcEntrySeq"]) + "\"," + "\"FParentMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\"}," + "\"FSUBReqId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUBReqId"]) + "\"," + "\"FSUBReqEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUBReqEntrySeq"]) + "\"," + "\"FPPBOMEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBOMEntryId"]) + "\"," + "\"FSubReqEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSubReqEntryId"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + "\"FSrcBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillType"]) + "\"," + //\"FSRCBIZINTERID\":\"0\", "\"FSrcBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillId"]) + "\"," + //\"FConsome\":\"\", "\"FSrcEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcEntryId"]) + "\"," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSettleOrgId"]) + "\"}," + //\"FSRCBIZENTRYID\":\"0\", //\"FBaseSelRePickedQty\":\"0\", "\"FBaseStockQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseStockQty"]) + "\"," + "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," + "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + //\"FPrice\":\"0\", //\"FAmount\":\"0\", "\"FStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," + "\"FStockAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAppQty"]) + "\"," + "\"FStockQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockQty"]) + "\"," + "\"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecStockQty\":\"0\", "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + "\"FProcessId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\"}," + "\"FOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperId"]) + "\"," + //\"FMemo\":\"\", "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," + "\"FPOOrderBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderBillNo"]) + "\"," + "\"FPOOrderSeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderSeq"]) + "\"," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierId"]) + "\"}," + "\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + //\"FSelRePickedQty\":\"0\", "\"FParentOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerTypeId"]) + "\"," + "\"FParentOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\"}," + "\"FPPBomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomBillNo"]) + "\"," + // " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FReqSrc\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqSrc"]) + "\"," + " \"FReqBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqBillNo"]) + "\"," + " \"FReqBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqBillId"]) + "\"," + " \"FReqEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqEntrySeq"]) + "\"," + " \"FReqEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqEntryId"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{ //\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] "\"FEntity_Link\": [ { " + "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + "\"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + "\"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_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SUB_RETURNMTRL", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildEntrustOutBack '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成委外退料单失败!" + HReturn; LogService.Write("生成委外退料单(源单:委外用料清单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成委外退料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成委外退料单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_EntrustOutBackBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_RETURNMTRL", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_RETURNMTRL", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成委外退料单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核委外退料单(源单:委外用料清单)成功!" + sRemark); sErrMsg = "生成并审核委外退料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核委外退料单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成委外退料单(源单:委外用料清单)成功!" + sRemark); sErrMsg = "生成委外退料单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 委外出库 *旧 //生成委外出库单 [WebMethod] public bool set_SaveEntrustOutBill(Model.ClsKf_EntrustOutBillMain oMain, 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_EntrustOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_EntrustOutBill dal = new DAL.ClsKf_EntrustOutBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HSupID == 0) { sErrMsg = "加工单位没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "领料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "发料没有选择!"; return false; } //同步生成K3单据 if (oMain.HRedBlueFlag) { //if (dal.AddBill_PDA_Red(ref sErrMsg)) //{ // //"保存成功!"; // return true; //} //else //{ // //"保存失败!"; return false; //} } else { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_EntrustOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveEntrustOutBill_CLD(oMain, "1111", oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存委外出库单失败!" + sErrMsg; return false; } //核对生单委外出库单K3 [WebMethod] public bool set_CheckAddEntrustOutBill(Model.ClsKf_EntrustOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_EntrustOutBill_K3 dal = new DAL.ClsKf_EntrustOutBill_K3(); dal.omodel = oMain; if (oMain.HRedBlueFlag) { if (dal.CheckAddBill_RedPDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (dal.CheckAddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } //核对委外出库单K3 [WebMethod] public bool set_CheckEntrustOutBill(Model.ClsKf_EntrustOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_EntrustOutBill_K3 dal = new DAL.ClsKf_EntrustOutBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //核对委外出库单K3(单行提交) [WebMethod] public bool set_CheckEntrustOutBill_Row(Int64 HSourceInterID, Int64 HSourceEntryID, ref string sErrMsg) { DAL.ClsKf_EntrustOutBill_K3 dal = new DAL.ClsKf_EntrustOutBill_K3(); if (dal.AddBill_WMS_PDA(HSourceInterID, HSourceEntryID, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核委外出库单K3 [WebMethod] public bool set_AuditEntrustOutBill(Model.ClsKf_EntrustOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_EntrustOutBill_K3 dal = new DAL.ClsKf_EntrustOutBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //根据供应商、物料、指令单号、销售订单号返回源单信息 /// /// 根据供应商、物料、指令单号、销售订单号返回源单信息 /// /// 过滤条件 /// [WebMethod] public DataSet GetKf_EntrustOutBill_K3_Source(long HSupID, long HMaterID, long HInstructID, long HSeOrderBillID, string sWhere) { DAL.ClsKf_EntrustOutBill_K3 dal = new DAL.ClsKf_EntrustOutBill_K3(); return dal.GetInfoBySource(HSupID, HMaterID, HInstructID, HSeOrderBillID, sWhere); } #endregion #region 委外出库 * //生成委外出库单 [WebMethod] public bool set_SaveEntrustOutBill_New(Model.ClsKf_EntrustOutBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustOutBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_EntrustOutBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustOutBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_EntrustOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveEntrustOutBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_EntrustOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveEntrustOutBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存委外出库单失败!" + sErrMsg; return false; } #endregion #region 委外出库K3 * /// /// 生成委外出库单K3 /// /// /// /// public bool SaveEntrustOutBill_K3(Model.ClsKf_EntrustOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_EntrustOutBill dal = new DAL.ClsKf_EntrustOutBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HSupID == 0) { sErrMsg = "加工单位没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "领料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "发料没有选择!"; return false; } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断金蝶K3负库存 DataSet Ds = oCn.RunProcReturn("EXEC h_p_IFK3_ICInventory_Load " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "'", "h_p_IFK3_ICInventory_Load"); if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 2) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0][1]); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_EntrustOutBillSub_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('1211','1211'," + 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.HMangerID.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_EntrustOutBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "3720") //委外订单-投料 { oCn.RunProc("exec h_p_WW_UpDateRelation_WWPPBomToEntrustOut_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBill_UpdateBillRelateData_WWPPBom_New " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_EntrustOutBill_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_EntrustOutBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_EntrustOutBill_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_EntrustOutBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_EntrustOutBill_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]); // if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 // { // } // else // { // oCn.RollBack(); // } // return false; // } //} sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成委外出库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 委外出库CLOUD *New [WebMethod] public bool set_SaveEntrustOutBill_CLD_New(Model.ClsKf_EntrustOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1604") //委外用料清单 { if (SaveEntrustOutBill_WWPPBom_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 委外出库单 源单:委外用料清单 /// /// /// /// private bool SaveEntrustOutBill_WWPPBom_CLD(Model.ClsKf_EntrustOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_EntrustOutBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1211','1211'," + 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.HMangerID.ToString() + "," + oMain.HSecManagerID.ToString() + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_WW_UpDateRelation_WWPPBomToEntrustOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetEntrustOutBill_WWPPBom_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustOutBill_WWPPBom_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetEntrustOutBill_WWPPBom_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustOutBill_WWPPBom_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + "\"FSUBORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUBORGID"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FPICKERID\":{}, //\"FSTOCKERID\":{\"FNAME\":\"\"}, //\"FDescription\":\"\", "\"FISCROSSTRADE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISCROSSTRADE"]) + "\"," + "\"FVMIBUSINESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVMIBUSINESS"]) + "\"," + //\"FScanBox\":\"\", //\"FSourceType\":\"\", "\"FStockId0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockId0"]) + "\"}," + sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + " {" + //\"FENTRYID\":\"0\", " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FAPPQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPPQTY"]) + "," + " \"FACTUALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FACTUALQTY"]) + "," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + sJson_BatchNo + //\"FSRCBIZENTRYSEQ\":\"0\", //\"FSRCBIZBILLTYPE\":{\"FID\":\"\"}, //\"FSRCBIZBILLNO\":\"\", " \"FPICKINGSTATUS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPICKINGSTATUS"]) + "\"," + " \"FPARENTMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTMATERIALID"]) + "\"}," + " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + //\"FSRCBIZINTERID\":\"0\", //\"FConsome\":\"\", " \"FSUBREQID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUBREQID"]) + "," + " \"FRESERVETYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRESERVETYPE"]) + "\"," + " \"FSETTLEORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSETTLEORGID"]) + "\"}," + " \"FBASESTOCKACTUALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASESTOCKACTUALQTY"]) + "," + //\"FSRCBIZENTRYID\":\"0\", " \"FPPBOMBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBOMBILLNO"]) + "\"," + " \"FSUBREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUBREQENTRYID"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FBASEAPPQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEAPPQTY"]) + "," + " \"FBASEACTUALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEACTUALQTY"]) + "," + //\"FBaseAllowOverQty\":\"0\", //\"FBaseSelPrcdReturnQty\":\"0\", //\"FPrice\":\"0\", //\"FAmount\":\"0\", " \"FSTOCKUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKUNITID"]) + "\"}," + " \"FSTOCKAPPQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKAPPQTY"]) + "," + //\"FStockAllowOverQty\":\"0\", //\"FStockSelPrcdReturnQty\":\"0\", //\"FSecAllowOverQty\":\"0\", //\"FSecSelPrcdReturnQty\":\"0\", " \"FENTRYVMIBUSINESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FENTRYVMIBUSINESS"]) + "\"," + //\"FPMBillNo\":\"\", " \"FGROUPROW\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGROUPROW"]) + "\"," + " \"FPOORDERBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERBILLNO"]) + "\"," + " \"FPOORDERSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERSEQ"]) + "," + " \"FSupplierId0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierId0"]) + "\"}," + " \"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + " \"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + " \"FSTOCKSTATUSID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKSTATUSID"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + //\"FAllowOverQty\":\"0\", " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FPARENTOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTOWNERTYPEID"]) + "\"," + " \"FPARENTOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTOWNERID"]) + "\"}," + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + " \"FMTONO\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FPROJECTNO\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FOPERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOPERID"]) + "," + " \"FPROCESSID\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROCESSID"]) + "\" } , " + " \"FMEMO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMEMO"]) + "\"," + " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FSUBREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUBREQBILLNO"]) + "\"," + " \"FSUBREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUBREQENTRYSEQ"]) + "," + " \"FPPBOMENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBOMENTRYID"]) + "," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSECUNITID"]) + "\"}," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\" , " + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\" , " + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + " \"FSTOCKACTUALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKACTUALQTY"]) + "," + " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}]}]}} " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFLOWID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFLOWID"]) + "\"," + " \"FEntity_Link_FFLOWLINEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFLOWLINEID"]) + "\"," + " \"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"]) + "\"," + " \"FEntity_Link_FBASEACTUALQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEACTUALQTYOLD"]) + "," + " \"FEntity_Link_FBASEACTUALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEACTUALQTY"]) + "" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SUB_PickMtrl", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildEntrustOut '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成委外出库单失败!" + HReturn; LogService.Write("生成委外出库单(源单:委外用料清单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成委外出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成委外出库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_EntrustOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_PickMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_PickMtrl", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成委外出库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核委外出库单(源单:委外用料清单)成功!" + sRemark); sErrMsg = "生成并审核委外出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核委外出库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成委外出库单(源单:委外用料清单)成功!" + sRemark); sErrMsg = "生成委外出库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 委外出库CLOUD //委外出库(领料 [WebMethod] public bool set_SaveEntrustOutBill_CLD(Model.ClsKf_EntrustOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (SaveEntrustOutBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } /// /// 委外出库单 /// /// /// /// private bool SaveEntrustOutBill_CLD(Model.ClsKf_EntrustOutBillMain 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_EntrustOutBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1211','1211'," + 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.HMangerID.ToString() + "," + oMain.HSecManagerID.ToString() + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDatePPBomRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_EntrustOutBill_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_GetEntrustOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " + //\"FID\":" + oMain.HInterID.ToString() + "," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillType\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\" }," + // "\"FDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FSubOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + //"\"FPICKERID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPICKERID"]) + "\"," + "\"FSTOCKERID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\" }," + "\"FDescription\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDescription"]) + "\"," + "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," + //"\"FVmiBusiness \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," + "\"FScanBox \":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + "\"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_FAUXPROPID = ""; if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HISBATCHMANAGE"]) == "1") //是否启用批次管理 { sJson_BatchNo = " \"FLOT\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["FLOT"]) + "\"}, \"FLOT_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[i]["FLOT"]) + "\" , "; } else { sJson_BatchNo = ""; } 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"]) + "\"}},"; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } sJson_Entry = sJson_Entry + " { \"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAppQty"]) + "\"," + "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActualQty"]) + "\"," + "\"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"]) + "\"}}," + // "\"FLOT\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\" }," + sJson_BatchNo + "\"FSRCBIZENTRYSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZENTRYSEQ"]) + "\"," + "\"FSRCBIZBILLTYPE\":{ \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZBILLTYPE"]) + "\" }," + "\"FSRCBIZBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZBILLNO"]) + "\"," + "\"FPickingStatus\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPickingStatus"]) + "\"," + "\"FParentMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\" }," + "\"FSrcInterId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcInterId"]) + "\"," + "\"FSrcEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcEntryId"]) + "\"," + "\"FSRCBIZINTERID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZINTERID"]) + "\"," + "\"FConsome\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FConsome"]) + "\"," + "\"FSubReqId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSubReqId"]) + "\"," + "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSettleOrgId"]) + "\"}," + "\"FBaseStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseStockActualQty"]) + "\"," + "\"FSRCBIZENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZENTRYID"]) + "\"," + "\"FPPbomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPbomBillNo"]) + "\"," + "\"FSubReqEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSubReqEntryId"]) + "\"," + "\"FSubReqEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSubReqEntrySeq"]) + "\"," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," + "\"FBaseActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseActualQty"]) + "\"," + "\"FBaseAllowOverQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAllowOverQty"]) + "\"," + "\"FBaseSelPrcdReturnQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseSelPrcdReturnQty"]) + "\"," + "\"FPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "\"," + "\"FAmount\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAmount"]) + "\"," + "\"FStockUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\" }," + "\"FStockAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAppQty"]) + "\"," + "\"FStockAllowOverQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAllowOverQty"]) + "\"," + "\"FStockSelPrcdReturnQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockSelPrcdReturnQty"]) + "\"," + "\"FSecAllowOverQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecAllowOverQty"]) + "\"," + "\"FSecSelPrcdReturnQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecSelPrcdReturnQty"]) + "\"," + "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," + "\"FPMBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPMBillNo"]) + "\"," + "\"FGroupRow\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGroupRow"]) + "\"," + "\"FPOOrderBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderBillNo"]) + "\"," + "\"FPOOrderSeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderSeq"]) + "\"," + "\"FSupplierId0\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierId0"]) + "\" }," + //"\"FKeeperTypeId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\" }," + //"\"FKeeperId\":{ \"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\" }," + "\"FStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\" }," + "\"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\"," + "\"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\"," + "\"FAllowOverQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAllowOverQty"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + sJson_FAUXPROPID + //"\"FParentOwnerTypeId\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"," + //"\"FParentOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\" }," + //"\"FSerialSubEntity\":{ \"FDetailID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSerialSubEntity"]) + "\" }," + //"\"FSerialNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSerialNo"]) + "\"," + //"\"FSerialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSerialId"]) + "\" }," + //"\"FSerialNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSerialNote"]) + "\"," + "\"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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 委外领料 1个物料1单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SUB_PickMtrl", sJson }); if (oSystemParameterMain.Kf_EntrustOutBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_PickMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_PickMtrl", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生成委外领料单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成委外领料单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 委外领料 校验模式* //校验委外领料单 [WebMethod] public bool set_SaveEntrustOutBill_BillCheck(Model.ClsKf_EntrustOutBillMain oMain, ref string sErrMsg) { if (set_SaveEntrustOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } private bool set_SaveEntrustOutBill_CLD_BillCheck(Model.ClsKf_EntrustOutBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_EntrustOutBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustOutBillCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); if (oSystemParameter.omodel.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收") { //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_PickMtrl", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_PickMtrl", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核委外领料单失败!" + HReturn; oCn.RollBack(); return false; } else { sErrMsg = "审核委外领料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } else { //根据TMP表 返回 修改信息 DataSet Ds2; Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetEntrustOutBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustOutBillCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) { sErrMsg = "获取修改信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FACTUALQTY\"]," + "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + "\"FEntity\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{" + "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + " \"FACTUALQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["HQty"]) + "\" " + "}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //修改单据 var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SUB_PickMtrl", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "修改委外领料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { HReturn = ""; //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SUB_PickMtrl", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SUB_PickMtrl", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "校验审核委外领料单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { //重新同步委外领料单 oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_EntrustOut '" + oMain.HBillNo + "'"); sErrMsg = "修改并审核委外领料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } } } } catch (Exception e) { sErrMsg = "校验审核委外领料单失败!" + e.Message; oCn.RollBack(); return false; } } else { sErrMsg = "校验审核委外领料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } #endregion #region 其他出库(红字) *旧 //生成其他出库单(红字) [WebMethod] public bool set_SaveOtherOutBackBill(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_OtherOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_OtherOutBackBill dal = new DAL.ClsKf_OtherOutBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "收料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_OtherOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { } sErrMsg = "保存其他出库单(红字)失败!" + sErrMsg; return false; } #endregion #region 其他出库(红字) * //生成其他出库单(红字) [WebMethod] public bool set_SaveOtherOutBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_OtherOutBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_OtherOutBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_OtherOutBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_OtherOutBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveOtherOutBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_OtherOutBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { sErrMsg = "暂无此功能!"; return false; } sErrMsg = "保存其他出库单(红字)失败!" + sErrMsg; return false; } #endregion #region 其他出库(红字)K3 * /// /// 生成其他出库单(红字)K3 /// /// /// /// public bool SaveOtherOutBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_OtherOutBackBill dal = new DAL.ClsKf_OtherOutBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherOutBackBillSub_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('1249','1249'," + 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_OtherOutBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBackBill_UpdateBillRelateData " + oMain.HInterID.ToString()); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_OtherOutBackBill_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_OtherOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_OtherOutBackBill_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_OtherOutBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成其他出库单(红字)失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 其他出库 *旧 //生成其他出库单 [WebMethod] public bool set_SaveOtherOutBill(Model.ClsKf_OtherOutBillMain 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_OtherOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_OtherOutBill dal = new DAL.ClsKf_OtherOutBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "领料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (oMain.HRedBlueFlag) { //if (dal.AddBill_PDA_Red(ref sErrMsg)) //{ // //"保存成功!"; // return true; //} //else //{ //"保存失败!"; return false; //} } else { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_OtherOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } //同步生成CLOUD单据 if (set_SaveOtherOutBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存其他出库单失败!" + sErrMsg; return false; } //核对生单其他出库单K3 [WebMethod] public bool set_CheckAddOtherOutBill(Model.ClsKf_OtherOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_OtherOutBill_K3 dal = new DAL.ClsKf_OtherOutBill_K3(); dal.omodel = oMain; if (oMain.HRedBlueFlag) { if (dal.CheckAddBill_RedPDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (dal.CheckAddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } //核对其他出库单K3 [WebMethod] public bool set_CheckOtherOutBill(Model.ClsKf_OtherOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_OtherOutBill_K3 dal = new DAL.ClsKf_OtherOutBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //核对其他出库单K3 (单行) [WebMethod] public bool set_CheckOtherOutBill_Row(Int64 HSourceInterID, Int64 HSourceEntryID, ref string sErrMsg) { DAL.ClsKf_OtherOutBill_K3 dal = new DAL.ClsKf_OtherOutBill_K3(); if (dal.AddBill_WMS_PDA(HSourceInterID, HSourceEntryID, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核其他出库单K3 [WebMethod] public bool set_AuditOtherOutBill(Model.ClsKf_OtherOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_OtherOutBill_K3 dal = new DAL.ClsKf_OtherOutBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //得到其他出库类型 [WebMethod] public DataSet get_StockOutStyle() { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("select HName from Gy_StockOutStyle where HStopflag=0", "Gy_StockOutStyle"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } #endregion #region 其他出库 * //生成其他出库单 [WebMethod] public bool set_SaveOtherOutBill_New(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_OtherOutBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_OtherOutBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_OtherOutBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_OtherOutBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveOtherOutBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_OtherOutBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { //同步生成CLOUD单据 if (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "韩电" || oSystemParameter.omodel.WMS_CampanyName == "四维尔" || oSystemParameter.omodel.WMS_CampanyName == "雅琪诺" || oSystemParameter.omodel.WMS_CampanyName == "圣龙") //系统参数 客户定制化名称 空白为通用 { if (set_SaveOtherOutBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SaveOtherOutBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_OtherOutBill_ERPMode.ToUpper() == "MES") //只生成WMS单据 { if (set_SaveOtherOutBill_MES(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存其他出库单失败!" + sErrMsg; return false; } #endregion #region 其他出库K3 * /// /// 生成其他出库单K3 /// /// /// /// public bool SaveOtherOutBill_K3(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_OtherOutBill dal = new DAL.ClsKf_OtherOutBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "领料没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //K3负库存判断 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") //系统参数 提交后ERP负库存控制 { //判断金蝶K3负库存 DataSet Ds = oCn.RunProcReturn("EXEC h_p_IFK3_ICInventory_Load " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "'", "h_p_IFK3_ICInventory_Load"); if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 2) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0][1]); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherOutBillSub_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('1206','1206'," + 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_OtherOutBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_OtherOutBill_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_OtherOutBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_OtherOutBill_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_OtherOutBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherOutBill_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]); // if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 // { // } // else // { // oCn.RollBack(); // } // return false; // } //} sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成其他出库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 其他出库CLOUD *New //其他出库 [WebMethod] public bool set_SaveOtherOutBill_CLD_New(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "-1") //无源单 { if (SaveOtherOutBill_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1242") //出库申请单 { if (SaveOtherOutBill_StockOutRequest_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 其他出库单 源单:出库申请单 /// /// /// /// public bool SaveOtherOutBill_StockOutRequest_CLD(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherOutBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1206','1206'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_StockOutRequestToOtherOut_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 子表信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherOutBill_StockOutRequest_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherOutBill_StockOutRequest_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherOutBill_StockOutRequest_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherOutBill_StockOutRequest_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPickOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickOrgId"]) + "\"}," + "\"FStockDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDirect"]) + "\"," + sJson_Date + "\"FCustId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCustId"]) + "\"}," + "\"FDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptId"]) + "\"}," + "\"FPickerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," + "\"FStockerId\":{\"FName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + //\"FStockerGroupId\":{\"FNumber\":\"\"}, "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + //\"FScanBox\":\"\", sJson_MainCustom + "\"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_FAUXPROPID = ""; //辅助属性 string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (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_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } sJson_Entry = sJson_Entry + "{" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + sJson_BatchNo + //\"FPRODUCTGROUPID\":{\"FNUMBER\":\"\"}, " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FEntryNote\":\"\", " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + //\"FProjectNo\":\"\", sJson_FProduceDate + sJson_FExpiryDate + //\"FServiceContext\":\"\", " \"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + //\"FCostItem\":{\"FNUMBER\":\"\"}, " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + " \"FDistribution\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDistribution"]) + "\"," + " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + //" \"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + //" \"FSecQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecQty"]) + "\"," + //" \"FIsConsumeSum\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsConsumeSum"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{ //\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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_FBaseQtyOld\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBaseQtyOld"]) + "\"," + " \"FEntity_Link_FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBaseQty"]) + "\"," + " \"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; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MisDelivery", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成其他出库单失败!" + HReturn; LogService.Write("生成其他出库单(源单:出库申请单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成其他出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成其他出库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MisDelivery", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MisDelivery", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成其他出库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核其他出库单(源单:出库申请单)成功!" + sRemark); sErrMsg = "生成并审核其他出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核其他出库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成其他出库单(源单:出库申请单)成功!" + sRemark); sErrMsg = "生成其他出库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 其他出库单 (源单:无源单) /// /// /// /// public bool SaveOtherOutBill_CLD(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherOutBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1206','1206'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 子表信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherOutBill_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherOutBill_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherOutBill_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; string sJson_MainCustom = ""; //主表自定义字段 string sJson_BillTypeID = ""; //单据类型 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oMain.HBillSubType == "" || oMain.HBillSubType == null) { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" },"; } else { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + oMain.HBillSubType + "\" },"; } if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_CHLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CHLX"]) + "\","; //出库类型 } else if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_ABCD_COMBO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_COMBO"]) + "\","; //其他出库业务类型 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"Model\":{ \"FBillNo\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FID"]) + "\"," + sJson_BillTypeID + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPickOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickOrgId"]) + "\"}," + "\"FStockDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDirect"]) + "\"," + sJson_Date + //"\"FCustId\":{\"FNumber\":\"" + oMain.HSupplyID.ToString() + "\"}," + "\"FDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptId"]) + "\"}," + "\"FPickerId\":{\"FSTAFFNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," + "\"FStockerId\":{\"FName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNote"]) + "\"," + "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FScanBox\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + sJson_StockStyle + sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //仓位 if (oSystemParameterMain.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { sJson_StockPlace = "\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}},"; } 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"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else if (oSystemParameterMain.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } sJson_Entry = sJson_Entry + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + sJson_FAUXPROPID + //"\"FAuxPropId\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}," + //"\"FAUXPROPID__FF100030\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100030"]) + "\"}," + //"\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100002"]) + "\"}}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"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"]) + "\"}}," + sJson_BatchNo + "\"FPRODUCTGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTGROUPID"]) + "\"}," + "\"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //"\"FEntryNote\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryNote"]) + "," + //"\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + //"\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + sJson_FProduceDate + sJson_FExpiryDate + //"\"FServiceContext\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FServiceContext"]) + "," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //"\"FMtoNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "," + "\"FCostItem\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostItem"]) + "\"}," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //"\"FDistribution\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDistribution"]) + "," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + sJson_SubCustom + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "} "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSId"]) + string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MisDelivery", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成其他出库单失败!" + HReturn; LogService.Write("生成其他出库单(源单:无源单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成其他出库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成其他出库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MisDelivery", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MisDelivery", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成其他出库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核其他出库单(源单:无源单)成功!" + sRemark); sErrMsg = "生成并审核其他出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核其他出库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成其他出库单(源单:无源单)成功!" + sRemark); sErrMsg = "生成其他出库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 其他出库 只生成WMS单据 //其他出库 [WebMethod] public bool set_SaveOtherOutBill_MES(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + s; return false; } oMain.HYear = sYear; oMain.HPeriod = sPeriod; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherOutBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1206','1206'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 if (sHSourceType == "-1") //无源单 { } else if (sHSourceType == "1242") //出库申请单 { oCn.RunProc("exec h_p_Kf_UpDateRelation_StockOutRequestToOtherOut_Add " + oMain.HInterID.ToString()); } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); } sErrMsg = "生成其他出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } catch (Exception e) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";生成其他出库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 其他出库CLOUD * //其他出库 [WebMethod] public bool set_SaveOtherOutBill_CLD(Model.ClsKf_OtherOutBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1242") //出库申请单 { if (SaveOtherOutBill_StockOutRequest_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "-1") { if (SaveOtherOutBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 其他出库单 /// /// /// /// public bool SaveOtherOutBill_CLD(Model.ClsKf_OtherOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; oCn.BeginTran(); //写入WMS其他出库单 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherOutBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1206','1206'," + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherOutBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherOutBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_CHLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_CHLX"]) + "\","; //出库类型 } else if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_ABCD_COMBO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_COMBO"]) + "\","; //其他出库业务类型 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"Model\":{ \"FBillNo\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FID"]) + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPickOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickOrgId"]) + "\"}," + "\"FStockDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDirect"]) + "\"," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + //"\"FCustId\":{\"FNumber\":\"" + oMain.HSupplyID.ToString() + "\"}," + "\"FDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptId"]) + "\"}," + "\"FPickerId\":{\"FSTAFFNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," + "\"FStockerId\":{\"FName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNote"]) + "\"," + "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FScanBox\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + sJson_StockStyle + "\"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_FAUXPROPID = ""; 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 (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"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //自定义字段处理 sJson_Entry = sJson_Entry + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + sJson_FAUXPROPID + //"\"FAuxPropId\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}," + //"\"FAUXPROPID__FF100030\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100030"]) + "\"}," + //"\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100002"]) + "\"}}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"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"]) + "\"}}," + sJson_BatchNo + "\"FPRODUCTGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTGROUPID"]) + "\"}," + "\"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //"\"FEntryNote\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryNote"]) + "," + //"\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + //"\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + //"\"FProduceDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "," + //"\"FServiceContext\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FServiceContext"]) + "," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //"\"FMtoNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "," + "\"FCostItem\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostItem"]) + "\"}," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //"\"FDistribution\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDistribution"]) + "," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "} "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSId"]) + string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MisDelivery", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成其他出库单失败!" + HReturn; LogService.Write("生成其他出库单(源单:无源单)失败-旧方法!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { LogService.Write("生成其他出库单(源单:无源单)成功-旧方法!" + sJson); oCn.Commit(); } } else { sErrMsg = "生成其他出库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成其他出库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherOutBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MisDelivery", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MisDelivery", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成其他出库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { sErrMsg = "生成并审核其他出库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { sErrMsg = "审核其他出库单失败!" + e.Message; oCn.RollBack(); return false; } } else { sErrMsg = "生成其他出库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 其他出库 校验模式* //校验其他出库单 [WebMethod] public bool set_SaveOtherOutBill_BillCheck(Model.ClsKf_OtherOutBillMain oMain, ref string sErrMsg) { if (set_SaveOtherOutBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } public bool set_SaveOtherOutBill_CLD_BillCheck(Model.ClsKf_OtherOutBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_PreUploadJudgmentBillCheck_OtherOut " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'", "h_p_WMS_PreUploadJudgmentBillCheck_OtherOut"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 其他出库单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MisDelivery", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MisDelivery", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核其他出库单失败!" + HReturn; oCn.RollBack(); return false; } else { oCn.Commit(); return true; } } else { sErrMsg = "审核其他出库单失败!登录失败!"; oCn.RollBack(); return false; } } catch (Exception e) { sErrMsg = "审核其他出库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 外购退料 外购入库(红字) *旧 //生成外购退料单 [WebMethod] public bool set_SavePOStockInBackBill(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_POStockInBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_POStockInBackBill dal = new DAL.ClsKf_POStockInBackBill(); 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; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_POStockInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { } sErrMsg = "保存外购退料单失败!" + sErrMsg; return false; } #endregion #region 外购退料 外购入库(红字) * //生成外购退料单 [WebMethod] public bool set_SavePOStockInBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_POStockInBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_POStockInBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_POStockInBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_POStockInBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SavePOStockInBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_POStockInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (oSystemParameter.omodel.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { if (set_SavePOStockInBackBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SavePOStockInBackBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } sErrMsg = "保存外购退料单失败!" + sErrMsg; return false; } #endregion #region 外购退料K3 外购入库(红字) * /// /// 生成外购退料单K3 /// /// /// /// public bool SavePOStockInBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_POStockInBackBill dal = new DAL.ClsKf_POStockInBackBill(); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBackBillSub_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('1239','1239'," + 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_POStockInBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "1105") //退料通知单 { oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockBackToPOStockInBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateBillRelateData_POInStockBack " + oMain.HInterID.ToString()); } else if (sHSourceType == "1201") //外购入库单-蓝字 { oCn.RunProc("exec h_p_Kf_UpDateRelation_POStockInToPOStockInBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateBillRelateData_Blue " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateBillRelateData " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_POStockInBackBill_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_POStockInBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_POStockInBackBill_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_POStockInBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBackBill_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]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成外购退料单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 外购退料CLOUD 外购入库(红字) *New //生成外购退料单 [WebMethod] public bool set_SavePOStockInBackBill_CLD_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1102") //采购订单 { if (SavePOStockInBackBill_POOrder_CLD_New(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1105") //退料通知单 { if (SavePOStockInBackBill_POInStockBack_CLD_New(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 外购退料单 (源单:采购订单) /// /// /// /// public bool SavePOStockInBackBill_POOrder_CLD_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1239','1239'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPOStockInBack_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBackBill_POOrder_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBackBill_POOrder_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBackBill_POOrder_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBackBill_POOrder_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FREPLENISHMODE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FREPLENISHMODE"]) + "\"," + "\"FBusinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBusinessType"]) + "\"," + "\"FACCEPTORID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTORID"]) + "\"}," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + "\"FCHARGEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCHARGEID"]) + "\"}," + "\"FMRTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRTYPE"]) + "\"," + "\"FMRMODE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRMODE"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FMRDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRDeptId"]) + "\"}," + //\"FSTOCKERGROUPID\":{\"FNumber\":\"\"}, "\"FCorrespondOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCorrespondOrgId"]) + "\"}," + //\"FSTOCKERID\":{\"FNumber\":\"\"}, //"\"FMRREASON\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRREASON"]) + "\"}," + "\"FRequireOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRequireOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseOrgId"]) + "\"}," + "\"FPURCHASEDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASEDEPTID"]) + "\"}," + "\"FPURCHASERGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASERGROUPID"]) + "\"}," + "\"FPURCHASERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASERID"]) + "\"}," + "\"FSupplierID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierID"]) + "\"}," + //\"FDESCRIPTION\":\"\", //"\"FACCEPTORID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTORID"]) + "\"}," + //放上面 "\"FAcceptAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FAcceptAddress"]) + "\"," + //"\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + //放上面 //"\"FCHARGEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCHARGEID"]) + "\"}," + //放上面 "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FScanPoint\":{\"FNUMBER\":\"\"}, //\"FConfirmerId\":{\"FUserID\":\"\"}, //\"FConfirmDate\":\"1900-01-01\", //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FAcceptorContactID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FAcceptorContactID"]) + "\"}," + sJson_MainCustom + "\"FPURMRBFIN\":{" + //\"FEntryId\":\"0\", "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSETTLETYPEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLETYPEID"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FPAYCONDITIONID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYCONDITIONID"]) + "\"}," + "\"FIsIncludedTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "\"," + //"\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + //\"FPRICELISTID\":{\"FNumber\":\"\"}, //\"FDISCOUNTLISTID\":{\"FNumber\":\"\"}, "\"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"]) + "\"," + "\"FPAYORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYORGID"]) + "\"}," + "\"FIsPriceExcludeTax\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "\"}," + "\"FPURMRBENTRY\": [ "; 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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FEntryID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + "\"FMaterialDesc\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialDesc"]) + "\"," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + //\"FProjectNo\":\"\", "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FRMREALQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMREALQTY"]) + "\"," + "\"FREPLENISHQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPLENISHQTY"]) + "\"," + "\"FKEAPAMTQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEAPAMTQTY"]) + "\"," + "\"FPRICEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEUNITID"]) + "\"}," + "\"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNOTE"]) + "\"," + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + "\"FPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "\"," + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", "\"FREQTRACENO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQTRACENO"]) + "\"," + "\"FIsReceiveUpdateStock\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "\"," + //\"FInvoicedJoinQty\":\"0\", "\"FGiveAway\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "\"," + "\"FPriceBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "\"," + //\"FSetPriceUnitID\":{\"FNumber\":\"\"}, "\"FCarryUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryUnitId"]) + "\"}," + "\"FCarryQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryQty"]) + "\"," + "\"FCarryBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryBaseQty"]) + "\"," + "\"FPOORDERENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERENTRYID"]) + "\"," + "\"FBILLINGCLOSE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "\"," + "\"FPriceListEntry\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + //\"FRMMUSTQTY\":\"0\", "\"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + "\"FSupplierLot\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "\"," + sJson_BatchNo + sJson_FProduceDate + sJson_FExpiryDate + //\"FAUXUNITQTY\":\"0\", "\"FENTRYTAXRATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FENTRYTAXRATE"]) + "\"," + "\"FDISCOUNTRATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDISCOUNTRATE"]) + "\"," + "\"FTAXPRICE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXPRICE"]) + "\"," + "\"FIsStock\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsStock"]) + "\"," + //\"FChargeProjectID\":{\"FNumber\":\"\"}, "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + // "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FPRICECOEFFICIENT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICECOEFFICIENT"]) + "\"," + "\"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + "\"FAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXUNITID"]) + "\"}," + "\"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + "\"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + "\"FSRCBIZUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FPURBASENUM\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "\"," + "\"FSTOCKBASEDEN\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "\"," + "\"FCostPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPrice"]) + "\"," + "\"FPoRequireOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPoRequireOrgId"]) + "\"}," + "\"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + sJson_SubCustom + //\"FEntryPruCost\":[{\"FDetailID\":\"0\"}], "\"FTaxDetailSubEntity\":[{" + //\"FDetailID\":\"0\", "\"FTaxRateId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRateId"]) + "\"}," + "\"FTaxRate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "\"," + "\"FTaxAmount\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxAmount"]) + "\"," + "\"FCostPercent\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPercent"]) + "\"," + "\"FTaxCostAmount\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCostAmount"]) + "\"," + "\"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + "\"FSellerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSellerWithholding"]) + "\"," + "\"FBuyerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBuyerWithholding"]) + "\"," + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] "\"FPURMRBENTRY_Link\": [ { " + "\"FPURMRBENTRY_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FFlowId"]) + "\"," + "\"FPURMRBENTRY_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FFlowLineId"]) + "\"," + "\"FPURMRBENTRY_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FRuleId"]) + "\"," + "\"FPURMRBENTRY_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSTableName"]) + "\"," + "\"FPURMRBENTRY_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSBillId"]) + "\"," + //"\"FPURMRBENTRY_Link_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FBASEUNITQTYOLD"]) + "\"," + //"\"FPURMRBENTRY_Link_FCARRYBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FCARRYBASEQTYOLD"]) + "\"," + "\"FPURMRBENTRY_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PUR_MRB", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildPOStockInBack '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成外购退料单失败!" + HReturn; LogService.Write("生成外购退料单(源单:采购订单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成外购退料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成外购退料单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PUR_MRB", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PUR_MRB", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成外购退料单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核外购退料单(源单:采购订单)成功!" + sRemark); sErrMsg = "生成并审核外购退料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核外购退料单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成外购退料单(源单:采购订单)成功!" + sRemark); sErrMsg = "生成外购退料单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 外购退料单 (源单:退料通知单) /// /// /// /// public bool SavePOStockInBackBill_POInStockBack_CLD_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1239','1239'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockBackToPOStockInBack_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBackBill_POInStockBack_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBackBill_POInStockBack_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBackBill_POInStockBack_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBackBill_POInStockBack_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FMRTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRTYPE"]) + "\"," + "\"FMRMODE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRMODE"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FMRDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRDeptId"]) + "\"}," + //\"FSTOCKERGROUPID\":{\"FNumber\":\"\"}, "\"FCorrespondOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCorrespondOrgId"]) + "\"}," + //\"FSTOCKERID\":{\"FNumber\":\"\"}, "\"FMRREASON\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRREASON"]) + "\"}," + "\"FRequireOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FRequireOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseOrgId"]) + "\"}," + //\"FPURCHASEDEPTID\":{\"FNumber\":\"\"}, //\"FPURCHASERGROUPID\":{\"FNumber\":\"\"}, //\"FPURCHASERID\":{\"FNumber\":\"\"}, "\"FSupplierID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierID"]) + "\"}," + //\"FDESCRIPTION\":\"\", //\"FACCEPTORID\":{\"FNumber\":\"\"}, //\"FAcceptAddress\":\"\", //\"FSettleId\":{\"FNumber\":\"\"}, //\"FCHARGEID\":{\"FNumber\":\"\"}, "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FScanPoint\":{\"FNUMBER\":\"\"}, //\"FConfirmerId\":{\"FUserID\":\"\"}, //\"FConfirmDate\":\"1900-01-01\", //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", //\"FAcceptorContactID\":{\"FCONTACTNUMBER\":\"\"}, // "\"FREPLENISHMODE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FREPLENISHMODE"]) + "\"," + "\"FBusinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBusinessType"]) + "\"," + sJson_MainCustom + "\"FPURMRBFIN\":{" + //\"FEntryId\":\"0\", "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + //\"FSETTLETYPEID\":{\"FNumber\":\"\"}, "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FPAYCONDITIONID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYCONDITIONID"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + //\"FPRICELISTID\":{\"FNumber\":\"\"}, //\"FDISCOUNTLISTID\":{\"FNumber\":\"\"}, "\"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"]) + "}," + "\"FPURMRBENTRY\": [ "; 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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //\"FEntryID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + "\"FMaterialDesc\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialDesc"]) + "\"," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + //\"FProjectNo\":\"\", "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FRMREALQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMREALQTY"]) + "\"," + "\"FREPLENISHQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPLENISHQTY"]) + "\"," + "\"FKEAPAMTQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEAPAMTQTY"]) + "\"," + "\"FPRICEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEUNITID"]) + "\"}," + "\"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNOTE"]) + "\"," + //\"FTaxCombination\":{\"FNumber\":\"\"}, "\"FPrice\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "\"," + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", "\"FREQTRACENO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQTRACENO"]) + "\"," + "\"FIsReceiveUpdateStock\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "\"," + //\"FInvoicedJoinQty\":\"0\", "\"FGiveAway\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "\"," + "\"FPriceBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "\"," + //\"FSetPriceUnitID\":{\"FNumber\":\"\"}, "\"FCarryUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryUnitId"]) + "\"}," + "\"FCarryQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryQty"]) + "\"," + "\"FCarryBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryBaseQty"]) + "\"," + "\"FPOORDERENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERENTRYID"]) + "\"," + "\"FBILLINGCLOSE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "\"," + //\"FPriceListEntry\":{\"FNUMBER\":\"\"}, //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + //\"FRMMUSTQTY\":\"0\", "\"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + //\"FSupplierLot\":\"\", sJson_BatchNo + sJson_FProduceDate + sJson_FExpiryDate + //\"FAUXUNITQTY\":\"0\", //\"FENTRYTAXRATE\":\"0\", //\"FDISCOUNTRATE\":\"0\", "\"FTAXPRICE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXPRICE"]) + "\"," + "\"FIsStock\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsStock"]) + "\"," + //\"FChargeProjectID\":{\"FNumber\":\"\"}, "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + // "\"FCONTRACTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCONTRACTNO"]) + "\"," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FPRICECOEFFICIENT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICECOEFFICIENT"]) + "\"," + "\"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + "\"FAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXUNITID"]) + "\"}," + "\"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + "\"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + "\"FSRCBIZUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + "\"FSTOCKBASEDEN\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "," + sJson_SubCustom + //\"FEntryPruCost\":[{\"FDetailID\":\"0\"}], "\"FTaxDetailSubEntity\":[{" + //\"FDetailID\":\"0\", "\"FTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "," + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] "\"FPURMRBENTRY_Link\": [ { " + "\"FPURMRBENTRY_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FFlowId"]) + "\"," + "\"FPURMRBENTRY_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FFlowLineId"]) + "\"," + "\"FPURMRBENTRY_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FRuleId"]) + "\"," + "\"FPURMRBENTRY_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSTableName"]) + "\"," + "\"FPURMRBENTRY_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSBillId"]) + "\"," + "\"FPURMRBENTRY_Link_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FBASEUNITQTYOLD"]) + "\"," + "\"FPURMRBENTRY_Link_FCARRYBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FCARRYBASEQTYOLD"]) + "\"," + "\"FPURMRBENTRY_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PUR_MRB", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildPOStockInBack '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成外购退料单失败!" + HReturn; LogService.Write("生成外购退料单(源单:退料通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成外购退料单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成外购退料单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PUR_MRB", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PUR_MRB", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成外购退料单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核外购退料单(源单:退料通知单)成功!" + sRemark); sErrMsg = "生成并审核外购退料单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核外购退料单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成外购退料单(源单:退料通知单)成功!" + sRemark); sErrMsg = "生成外购退料单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 外购退料CLOUD 外购入库(红字) * //生成外购退料单 [WebMethod] public bool set_SavePOStockInBackBill_CLD(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1102") //采购订单 { if (SavePOStockInBackBill_POOrder_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 外购退料单 (源单:采购订单) /// /// /// /// public bool SavePOStockInBackBill_POOrder_CLD(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, 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_POStockInBackBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1239','1239'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPOStockInBack_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); } //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBackPOOrderBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBackPOOrderBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{" + //"\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FMRTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRTYPE"]) + "\", " + "\"FMRMODE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRMODE"]) + "\", " + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + "\"FMRDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRDEPTID"]) + "\"}," + //"\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FCORRESPONDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCORRESPONDORGID"]) + "\"}," + //"\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}, " + //"\"FMRREASON\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRREASON"]) + "\"}, " + "\"FREQUIREORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FREQUIREORGID"]) + "\"}," + "\"FPURCHASEORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASEORGID"]) + "\"}," + "\"FPURCHASEDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASEDEPTID"]) + "\"}, " + "\"FPURCHASERGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASERGROUPID"]) + "\"}," + "\"FPURCHASERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASERID"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //"\"FDESCRIPTION\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDESCRIPTION"]) + "\", " + "\"FACCEPTORID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTORID"]) + "\"}," + //"\"FAcceptAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FAcceptAddress"]) + "\", " + "\"FSETTLEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLEID"]) + "\"}," + "\"FCHARGEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCHARGEID"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\", " + "\"FOWNERIDHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERIDHead"]) + "\"}," + //"\"FScanPoint\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanPoint"]) + "\"}," + //"\"FConfirmerId\":{\"FUserID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConfirmerId"]) + "\"}," + //"\"FConfirmDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConfirmDate"]) + "\"," + //"\"FScanBox\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + //"\"FCDateOffsetUnit\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetUnit"]) + "\", " + "\"FCDateOffsetValue\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetValue"]) + "," + "\"FACCEPTORCONTACTID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTORCONTACTID"]) + "\"}," + //"F_QIMB_PrintTimes": 0, //"F_QIMB_PrintDateTime": "1900-01-01", "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FACCEPTORADDRESS\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTORADDRESS"]) + "\", " + //"\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDemandOrgId"]) + "\"}, " + "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}, " + //"\"FSupplyAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyAddress"]) + "\"," + "\"FPURMRBFIN\":{\"FSETTLEORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLEORGID"]) + "\"}," + "\"FPAYORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYORGID"]) + "\"}," + "\"FSETTLETYPEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLETYPEID"]) + "\"}, " + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FPAYCONDITIONID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPAYCONDITIONID"]) + "\"}," + "\"FISINCLUDEDTAX\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISINCLUDEDTAX"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + //"\"FPriceListId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceListId"]) + "\"}," + //"\"FDiscountListId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDiscountListId"]) + "\"}," + "\"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"]) + "" + " }, \"FPURMRBENTRY\": [ "; 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_FVAT = ""; string sJson_FSELLERWITHHOLDING = ""; string sJson_FBUYERWITHHOLDING = ""; 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 (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"]) + "\"}},"; } } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) == "")//增值税 { sJson_FVAT = ""; } else { sJson_FVAT = ",\"FVAT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + ""; } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSELLERWITHHOLDING"]) == "")//卖方代扣代缴 { sJson_FSELLERWITHHOLDING = ""; } else { sJson_FSELLERWITHHOLDING = ",\"FSELLERWITHHOLDING\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSELLERWITHHOLDING"]) + ""; } if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBUYERWITHHOLDING"]) == "")//买方代扣代缴 { sJson_FBUYERWITHHOLDING = ""; } else { sJson_FBUYERWITHHOLDING = ",\"FBUYERWITHHOLDING\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBUYERWITHHOLDING"]) + ""; } sJson_Entry = sJson_Entry + "{\"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "," + "\"FROWTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FROWTYPE"]) + "\"," + "\"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}, " + "\"FMATERIALDESC\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALDESC"]) + "\"," + "\"FPARENTMATID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPARENTMATID"]) + "\"}," + //"\"FProjectNo\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + "\"FRMREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMREALQTY"]) + "," + "\"FREPLENISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPLENISHQTY"]) + "," + "\"FKEAPAMTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEAPAMTQTY"]) + "," + "\"FPRICEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEUNITID"]) + "\"}," + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FNote\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNote"]) + "\"," + "\"FTAXCOMBINATION\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXCOMBINATION"]) + "\"}," + "\"FPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICE"]) + ", " + "\"FEXTAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEXTAUXUNITID"]) + "\"}," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FREQTRACENO\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQTRACENO"]) + "\"," + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + "\"FInvoicedJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInvoicedJoinQty"]) + "," + "\"FGIVEAWAY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGIVEAWAY"]) + "," + "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + //"\"FSetPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSetPriceUnitID"]) + "\"}," + "\"FCARRYUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCARRYUNITID"]) + "\"}," + "\"FCarryQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryQty"]) + "," + "\"FCarryBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryBaseQty"]) + "," + "\"FPOORDERENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERENTRYID"]) + ", " + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FPRICELISTENTRY\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICELISTENTRY"]) + "\"}," + //"FAuxPropID": {}, "\"FRMMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMMUSTQTY"]) + "," + "\"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + "\"FSUPPLIERLOT\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSUPPLIERLOT"]) + "\"," + sJson_BatchNo + //"\"FProduceDate\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\"," + //"\"FExpiryDate\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\"," + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + //"FOWNERTYPEID": "", //"FOWNERID": {"FNumber": ""}, "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + ", " + "\"FDISCOUNTRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDISCOUNTRATE"]) + "," + "\"FTAXPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXPRICE"]) + "," + "\"FPRICEDISCOUNT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICEDISCOUNT"]) + "," + "\"FIsStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsStock"]) + "," + //"\"FChargeProjectID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FChargeProjectID"]) + "\"}," + "\"FMTONO\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + "\"FPRILSTENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRILSTENTRYID"]) + "," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FCOSTPRICE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTPRICE"]) + "," + "\"FPRICECOEFFICIENT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICECOEFFICIENT"]) + "," + "\"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + "\"FAUXUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXUNITID"]) + "\"}," + "\"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + "\"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"} , " + "\"FPOREQUIREORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOREQUIREORGID"]) + "\"}," + "\"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + "\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + "\"FSTOCKBASEDEN\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "," + "\"FSRCBIZUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + "\"FBASEUNITQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTY"]) + "," + //"\"FEntryPruCost\": [ { " + // //"FDetailID": 0 //" } ]," + "\"FTaxDetailSubEntity\": [ { " + //"FDetailID": 0, "\"FTAXRATEID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATEID"]) + "\"}," + "\"FTAXRATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXRATE"]) + "," + "\"FTAXAMOUNT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTAXAMOUNT"]) + "," + "\"FCOSTPERCENT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTPERCENT"]) + "," + "\"FCOSTAMOUNT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTAMOUNT"]) + "" + sJson_FVAT + sJson_FSELLERWITHHOLDING + sJson_FBUYERWITHHOLDING + " } ]," + //"\"FSerialSubEntity\": [ { " + // //"FDetailID": 0, // //"FSerialNo": "", // //"FSerialNote": "" //" } ]," + "\"FPURMRBENTRY_Link\": [ { " + "\"FPURMRBENTRY_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FRuleId"]) + "\"," + "\"FPURMRBENTRY_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSTableName"]) + "\"," + "\"FPURMRBENTRY_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_Link_FSBillId"]) + "\"," + "\"FPURMRBENTRY_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURMRBENTRY_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成外购退料单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PUR_MRB", sJson }); if (oSystemParameterMain.Kf_POStockInBackBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PUR_MRB", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PUR_MRB", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生成外购退料单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成外购退料单失败!" + e.Message; oCn.RollBack(); return false; } } //采购退料 private bool SavePOStockInBackBill_CLD(Model.ClsKf_POStockInBackBillMain_CLD oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBackBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBackBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; return false; } else { //string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"Model\": { \"FID\":\"0\", \"FBILLNO\":\"" + oMain.HBillNo + "\", \"FStockOrgId\":{\"FNumber\":\"201\"}, " + // "\"FPRDORGID\":{\"FNumber\":\"201\"}, \"FBillType\": {\"FNumber\":\"SCLLD01_SYS\" " + // " }, \"FEntity\": [ "; string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"Model\":{\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillTypeID"]) + "\"}," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FMRTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRTYPE"]) + "\", " + "\"FMRMODE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRMODE"]) + "\", " + "\"FMRDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRDeptId"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FRequireOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FDESCRIPTION\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDESCRIPTION"]) + "\"}," + "\"FACCEPTORID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTORID"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}, " + "\"FMRREASON\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FMRREASON"]) + "\"}, " + "\"FAcceptAddress\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FAcceptAddress"]) + "\"}, " + "\"FDemandOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FCorrespondOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FPurchaseDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseDeptId"]) + "\"}, " + "\"FPurchaserGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserGroupId"]) + "\"}," + "\"FPurchaserId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserId"]) + "\"}," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}, " + "\"FSupplyAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyAddress"]) + "\"," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChargeId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\", " + "\"FOwnerIdHead\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FScanPoint\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanPoint"]) + "\"}," + "\"FConfirmerId\":{\"FUserID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConfirmerId"]) + "\"}," + "\"FConfirmDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FConfirmDate"]) + "\"," + "\"FScanBox\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + "\"FCDateOffsetUnit\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetUnit"]) + "\", " + "\"FCDateOffsetValue\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetValue"]) + "," + "\"FPURMRBFIN\":{\"FSettleOrgId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0][" FPURMRBFIN"]) + "," + "\"FAcceptorContactID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FAcceptorContactID"]) + "," + "\"FProviderContactID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FProviderContactID"]) + "\"}," + "\"FInStockFin\":{\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}, " + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + "\"FPriceListId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceListId"]) + "\"}," + "\"FDiscountListId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDiscountListId"]) + "\"}," + "\"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"]) + "" + " }, \"FPURMRBENTRY\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{\"FEntryID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FWWInType\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWWInType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}, " + "\"FMaterialDesc\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialDesc"]) + "\"}, " + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + ", " + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + "\"FLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\"}," + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + "\"FDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDisPriceQty"]) + ", " + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FRECEIVESTOCKSTATUS\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRECEIVESTOCKSTATUS"]) + "\"}," + "\"fpoorderentryid\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["fpoorderentryid"]) + ", " + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERNO"]) + "\"," + "\"FPOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERNO"]) + "\", " + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FMtoNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "," + "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + "\"FNote\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNote"]) + "," + "\"FProduceDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + ", " + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + "\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + "\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + "\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + ", " + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + "\"FInvoicedJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInvoicedJoinQty"]) + "," + "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + "\"FSetPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSetPriceUnitID"]) + "\"}," + "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}, " + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + "\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + "\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + "\"FBASEUNITQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTYOLD"]) + "," + "\"FREMAININSTOCKBASEQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREMAININSTOCKBASEQTYOLD"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + ", " + "\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + "\"FCostPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPrice"]) + "," + "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSupplierLot\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "," + "\"FExpiryDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "," + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + "\"FBASEREPLAYQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEREPLAYQTY"]) + "," + "\"FREPLENISHQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREPLENISHQTY"]) + "," + "\"FKEAPAMTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEAPAMTQTY"]) + "," + "\"FSTOCKID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "," + "\"FStockStatusId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "," + "\"FREQTRACENO\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQTRACENO"]) + "," + "\"FChargeProjectID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FChargeProjectID"]) + "," + "\"FCarryUnitId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryUnitId"]) + "," + "\"FCarryQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryQty"]) + "," + "\"FCarryBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCarryBaseQty"]) + "," + "\"FPriceListEntry\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "," + "\"FRMMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMMUSTQTY"]) + "," + "\"FRMREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRMREALQTY"]) + "," + "\"FIsStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsStock"]) + "," + "\"FBeforeDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBeforeDisPriceQty"]) + ", " + "\"FInStockEntry_Link\": [ { " + "\"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FRuleId"]) + "\" , " + "\"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FRuleId"]) + "\" , " + "\"FInStockEntry_Link_FSBillId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSBillId"]) + " , " + "\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //生成 入库单 1个物料1单 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[] { "PUR_MRB", sJson }); string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PUR_MRB", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PUR_MRB", sJson3 }); string HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成采购退料单失败!" + HReturn; return false; } else { return true; } } else { sErrMsg = "生成采购退料失败!登录失败!"; return false; } } } catch (Exception e) { sErrMsg = "生成采购退料失败!" + e.Message; return false; } } #endregion #region 外购入库 *旧 //生成外购入库单 [WebMethod] public bool set_SavePOStockInBill(Model.ClsKf_POStockInBillMain 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_POStockInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_POStockInBill dal = new DAL.ClsKf_POStockInBill(); 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; } //同步生成K3单据 if (sHSourceType == "1103") //收料通知单 { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else if (sHSourceType == "1102") //采购订单 { if (dal.AddBill_PDA_POOrder(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_POStockInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SavePOStockInBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存外购入库单失败!" + sErrMsg; return false; } //核对生单外购入库单K3 [WebMethod] public bool set_CheckAddPOStockInBill(Model.ClsKf_POStockInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_POStockInBill_K3 dal = new DAL.ClsKf_POStockInBill_K3(); dal.omodel = oMain; if (oMain.HRedBlueFlag) { if (dal.CheckAddBill_RedPDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { //if (dal.CheckAddBill_PDA(ref sErrMsg)) //{ // //"保存成功!"; // return true; //} //else //{ // //"保存失败!"; // return false; //} return false; } } //核对外购入库单K3 [WebMethod] public bool set_CheckPOStockInBill(Model.ClsKf_POStockInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_POStockInBill_K3 dal = new DAL.ClsKf_POStockInBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核外购入库单K3 [WebMethod] public bool set_AuditPOStockInBill(Model.ClsKf_POStockInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_POStockInBill_K3 dal = new DAL.ClsKf_POStockInBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } #endregion #region 外购入库 * //生成外购入库单 [WebMethod] public bool set_SavePOStockInBill_New(Model.ClsKf_POStockInBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //启用免扫码模式 if (oSystemParameter.omodel.Kf_POStockInBill_AutoBarCode.ToUpper() == "Y") { DataSet DsBar = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_AutoBarCode " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "'," + oMain.HWHID.ToString() + "," + oMain.HSPID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'" + oMain.HMaker + "'", "h_p_KF_PonderationBillMain_Temp_AutoBarCode"); if (DsBar == null || DsBar.Tables[0].Rows.Count == 0) { sErrMsg = "免扫码模式,自动获取条码数据失败!"; return false; } else { if (DBUtility.ClsPub.isLong(DsBar.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(DsBar.Tables[0].Rows[0]["HRemark"]); return false; } } } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_POStockInBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_POStockInBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_POStockInBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_POStockInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SavePOStockInBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_POStockInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "韩电" || oSystemParameter.omodel.WMS_CampanyName == "雅琪诺") //系统参数 客户定制化名称 空白为通用 { if (set_SavePOStockInBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SavePOStockInBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } sErrMsg = "保存外购入库单失败!" + sErrMsg; return false; } #endregion #region 外购入库K3 * /// /// 生成外购入库单K3 /// /// /// /// public bool SavePOStockInBill_K3(Model.ClsKf_POStockInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_POStockInBill dal = new DAL.ClsKf_POStockInBill(); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBillSub_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" + ",HArrivalDate" + ") " + " values('1201','1201'," + 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) + ",'" + oMain.HArrivalDate.ToShortDateString() + "'" + ") "); //新增K3子表、主表 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "1102") //采购订单 { oCn.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPOStockIn_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateBillRelateData_POOrder_New " + oMain.HInterID.ToString()); } else if (sHSourceType == "1103") //收料通知单 { oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockToPOStockIn_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateBillRelateData_POInStock_New " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_POStockInBill_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_POStockInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_POStockInBill_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_POStockInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_POStockInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成外购入库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 外购入库CLOUD *New //生成外购入库单 [WebMethod] public bool set_SavePOStockInBill_CLD_New(Model.ClsKf_POStockInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1103") //收料通知单 { if (SavePOStockInBill_POInStock_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1102") //采购订单 { if (SavePOStockInBill_POOrder_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 外购入库单 (源单:收料通知单) /// /// /// /// public bool SavePOStockInBill_POInStock_CLD(Model.ClsKf_POStockInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1201','1201'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockToPOStockIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3803"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",1"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POInStock_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POInStock_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POInStock_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POInStock_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Custom = ""; //自定义字段 string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } if (oSystemParameterMain.WMS_CampanyName == "圣龙") //系统参数 客户定制化名称 { sJson_Custom = "\"F_PAEZ_Combo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_PAEZ_Combo"]) + "\", "; //送货单号 } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", //"\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + sJson_Date + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDemandOrgId"]) + "\"}," + "\"FCorrespondOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCorrespondOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseOrgId"]) + "\"}," + "\"FPurchaseDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseDeptId"]) + "\"}," + "\"FPurchaserGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserGroupId"]) + "\"}," + "\"FPurchaserId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserId"]) + "\"}," + //"\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + //移最下方 "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSupplyAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyAddress"]) + "\"," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChargeId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FConfirmerId\":{\"FUserID\":\"\"}, //\"FConfirmDate\":\"1900-01-01\", //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FProviderContactID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FProviderContactID"]) + "\"}," + // "\"FDeliveryBill\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeliveryBill"]) + "\"," + "\"FTakeDeliveryBill\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTakeDeliveryBill"]) + "\"," + "\"FBusinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBusinessType"]) + "\"," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + sJson_MainCustom + "\"FInStockFin\":{" + //\"FEntryId\":\"0\", "\"FPayOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayOrgId"]) + "\"}," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}," + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + //\"FPriceListId\":{\"FNumber\":\"\"}, //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"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"]) + "}," + "\"FInStockEntry\": [ "; 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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , " + //批号 " \"FReceiveLot\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveLot"]) + "\"}, \"FReceiveLot_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveLot"]) + "\" , "; //收货批号 } else { sJson_BatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //{\"FEntryID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + //\"FWWInType\":\"\", "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "," + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + sJson_BatchNo + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FDisPriceQty\":\"0\", sJson_StockPlace + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //\"FMtoNo\":\"\", "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + //\"FNote\":\"\", sJson_FProduceDate + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + "\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + "\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + "," + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + //\"FInvoicedJoinQty\":\"0\", "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + //\"FSetPriceUnitID\":{\"FNumber\":\"\"}, "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}," + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + "\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + "\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "," + "\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + //\"FCostPrice\":\"0\", "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSupplierLot\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "\"," + sJson_FExpiryDate + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + //\"FBeforeDisPriceQty\":\"0\", // "\"FReqTraceNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqTraceNo"]) + "\"," + "\"FPriceCoefficient\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceCoefficient"]) + "," + "\"FPriceUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitQty"]) + "," + "\"FBaseUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitID"]) + "\"}," + "\"FAuxUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitID"]) + "\" }," + "\"FPOOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderNo"]) + "\"," + "\"FReceiveStockStatus\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveStockStatus"]) + "\"}," + "\"FSRCBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBillNo"]) + "\"," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperID"]) + "\"}," + "\"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + "\"FReceiveOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveOwnerTypeId"]) + "\"," + "\"FReceiveOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveOwnerId"]) + "\"}," + //"\"FReceiveStockID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveStockID"]) + "\"}," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + "\"FReceiveMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveMtoNo"]) + "\"," + "\"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + "\"FPOORDERENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERENTRYID"]) + "," + "\"FPriceListEntry\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "\"}," + "\"FBaseUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitQty"]) + "," + "\"FMustQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "," + "\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + "\"FStockBaseDen\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockBaseDen"]) + "," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + sJson_SubCustom + //\"FEntryPruCost\":[{\"FDetailID\":\"0\"}], "\"FTaxDetailSubEntity\":[{" + //\"FDetailID\":\"0\", "\"FTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "," + "\"FTaxAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxAmount"]) + "," + "\"FTaxRateId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRateId"]) + "\" }," + "\"FCostPercent\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPercent"]) + "," + "\"FTaxCostAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCostAmount"]) + "," + "\"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + "\"FSellerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSellerWithholding"]) + "\"," + "\"FBuyerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBuyerWithholding"]) + "\"" + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FInStockEntry_Link\": [ { " + " \"FInStockEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FInStockEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FInStockEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FInStockEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FInStockEntry_Link_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEUNITQTYOLD"]) + "\"," + " \"FInStockEntry_Link_FREMAININSTOCKBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FREMAININSTOCKBASEQTYOLD"]) + "\"," + " \"FInStockEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_InStock", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildPOStockIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成采购入库单失败!" + HReturn; LogService.Write("生成采购入库单(源单:收料通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成采购入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成采购入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_InStock", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_InStock", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成采购入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核采购入库单(源单:收料通知单)成功!" + sRemark); sErrMsg = "生成并审核采购入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核采购入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成采购入库单(源单:收料通知单)成功!" + sRemark); sErrMsg = "生成采购入库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 外购入库单 (源单:采购订单) /// /// /// /// public bool SavePOStockInBill_POOrder_CLD(Model.ClsKf_POStockInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1201','1201'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDateRelation_POOrderToPOStockIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POOrder_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POOrder_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POOrder_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POOrder_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", //"\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + sJson_Date + "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + //"\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + //"\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDemandOrgId"]) + "\"}," + "\"FCorrespondOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCorrespondOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseOrgId"]) + "\"}," + "\"FPurchaseDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseDeptId"]) + "\"}," + "\"FPurchaserGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserGroupId"]) + "\"}," + "\"FPurchaserId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserId"]) + "\"}," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + //"\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + //放上面 "\"FSupplyAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyAddress"]) + "\"," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChargeId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FConfirmerId\":{\"FUserID\":\"\"}, //\"FConfirmDate\":\"1900-01-01\", //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FProviderContactID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FProviderContactID"]) + "\"}," + // "\"FBusinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBusinessType"]) + "\"," + sJson_MainCustom + "\"FInStockFin\":{" + //\"FEntryId\":\"0\", "\"FPayOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayOrgId"]) + "\"}," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}," + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + //\"FPriceListId\":{\"FNumber\":\"\"}, //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"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"]) + "}," + "\"FInStockEntry\": [ "; 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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //{\"FEntryID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FWWInType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWWInType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "," + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + sJson_BatchNo + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FDisPriceQty\":\"0\", sJson_StockPlace + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + //\"FNote\":\"\", sJson_FProduceDate + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + //"\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //"\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + //"\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + "," + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + //\"FInvoicedJoinQty\":\"0\", "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + //\"FSetPriceUnitID\":{\"FNumber\":\"\"}, "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}," + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + "\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + "\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "," + "\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + //\"FCostPrice\":\"0\", "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSupplierLot\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "\"," + sJson_FExpiryDate + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + //\"FBeforeDisPriceQty\":\"0\", // "\"FReqTraceNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqTraceNo"]) + "\"," + "\"FPriceCoefficient\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceCoefficient"]) + "," + "\"FPriceUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitQty"]) + "," + "\"FBaseUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitID"]) + "\"}," + "\"FAuxUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitID"]) + "\" }," + "\"FPOOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderNo"]) + "\"," + "\"FReceiveStockStatus\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveStockStatus"]) + "\"}," + "\"FSRCBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBillNo"]) + "\"," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + "\"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + "\"FPOORDERENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERENTRYID"]) + "," + "\"FPriceListEntry\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "\"}," + "\"FBaseUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitQty"]) + "," + "\"FMustQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "," + "\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + "\"FStockBaseDen\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockBaseDen"]) + "," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + sJson_SubCustom + //\"FEntryPruCost\":[{\"FDetailID\":\"0\"}], "\"FTaxDetailSubEntity\":[{" + //\"FDetailID\":\"0\", "\"FTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "," + "\"FTaxAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxAmount"]) + "," + "\"FTaxRateId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRateId"]) + "\" }," + "\"FCostPercent\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPercent"]) + "," + "\"FTaxCostAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCostAmount"]) + "," + "\"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + "\"FSellerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSellerWithholding"]) + "\"," + "\"FBuyerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBuyerWithholding"]) + "\"" + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FInStockEntry_Link\": [ { " + " \"FInStockEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FInStockEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FInStockEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FInStockEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FInStockEntry_Link_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEUNITQTYOLD"]) + "\"," + " \"FInStockEntry_Link_FREMAININSTOCKBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FREMAININSTOCKBASEQTYOLD"]) + "\"," + " \"FInStockEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_InStock", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildPOStockIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成采购入库单失败!" + HReturn; LogService.Write("生成采购入库单(源单:采购订单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成采购入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成采购入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_InStock", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_InStock", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成采购入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核采购入库单(源单:采购订单)成功!" + sRemark); sErrMsg = "生成并审核采购入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核采购入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成采购入库单(源单:采购订单)成功!" + sRemark); sErrMsg = "生成采购入库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 外购入库单 (源单:收料通知单) 多行数据合并下推生单 /// /// /// /// public bool SavePOStockInBill_POInStock_CLD_Merge(Model.ClsKf_POStockInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_POStockInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1201','1201'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockToPOStockIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //判断是否启用器具管理,系统参数 启用器具管理 if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") { string HMouldBillType = "3803"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",1"); } sRemark = sRemark + " ;判断是否启用器具管理" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POInStock_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POInStock_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POInStock_CLD_Merge " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POInStock_CLD_Merge"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDemandOrgId"]) + "\"}," + "\"FCorrespondOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCorrespondOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseOrgId"]) + "\"}," + "\"FPurchaseDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseDeptId"]) + "\"}," + "\"FPurchaserGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserGroupId"]) + "\"}," + "\"FPurchaserId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserId"]) + "\"}," + //"\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + //移最下方 "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSupplyAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyAddress"]) + "\"," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChargeId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FConfirmerId\":{\"FUserID\":\"\"}, //\"FConfirmDate\":\"1900-01-01\", //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FProviderContactID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FProviderContactID"]) + "\"}," + // "\"FDeliveryBill\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeliveryBill"]) + "\"," + "\"FTakeDeliveryBill\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTakeDeliveryBill"]) + "\"," + "\"FBusinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBusinessType"]) + "\"," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + sJson_MainCustom + "\"FInStockFin\":{" + //\"FEntryId\":\"0\", "\"FPayOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayOrgId"]) + "\"}," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}," + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + //\"FPriceListId\":{\"FNumber\":\"\"}, //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"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"]) + "}," + "\"FInStockEntry\": [ "; 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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; //辅助属性 string sJson_SubCustom = ""; //子表自定义字段 string sJson_Entry_Link = ""; //Link表递入数据 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , " + //批号 " \"FReceiveLot\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveLot"]) + "\"}, \"FReceiveLot_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveLot"]) + "\" , "; //收货批号 } else { sJson_BatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //仓位 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"]) + "\"}},"; } //Link表递入数据 for (int j = 0; j < Ds.Tables[2].Rows.Count; j++) { if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) == Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["HEntryID"])) { if (sJson_Entry_Link != "") { sJson_Entry_Link = sJson_Entry_Link + " , "; } sJson_Entry_Link = sJson_Entry_Link + "{" + " \"FInStockEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FFlowId"]) + "\"," + " \"FInStockEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FRuleId"]) + "\"," + " \"FInStockEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FSTableName"]) + "\"," + " \"FInStockEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FSBillId"]) + "\"," + " \"FInStockEntry_Link_FBASEUNITQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FBASEUNITQTYOLD"]) + "\"," + " \"FInStockEntry_Link_FREMAININSTOCKBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FREMAININSTOCKBASEQTYOLD"]) + "\"," + " \"FInStockEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FSId"]) + "\"" + " } "; } } sJson_Entry = sJson_Entry + "{" + //{\"FEntryID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + //\"FWWInType\":\"\", "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "," + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + sJson_BatchNo + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FDisPriceQty\":\"0\", sJson_StockPlace + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //\"FMtoNo\":\"\", "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + //\"FNote\":\"\", sJson_FProduceDate + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + "\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + "\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + "," + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + //\"FInvoicedJoinQty\":\"0\", "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + //\"FSetPriceUnitID\":{\"FNumber\":\"\"}, "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}," + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + "\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + "\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "," + "\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + //\"FCostPrice\":\"0\", "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSupplierLot\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "\"," + sJson_FExpiryDate + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + //\"FBeforeDisPriceQty\":\"0\", // "\"FReqTraceNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqTraceNo"]) + "\"," + "\"FPriceCoefficient\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceCoefficient"]) + "," + "\"FPriceUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitQty"]) + "," + "\"FBaseUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitID"]) + "\"}," + "\"FAuxUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitID"]) + "\" }," + "\"FPOOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderNo"]) + "\"," + "\"FReceiveStockStatus\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveStockStatus"]) + "\"}," + "\"FSRCBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBillNo"]) + "\"," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperID"]) + "\"}," + "\"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + "\"FReceiveOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveOwnerTypeId"]) + "\"," + "\"FReceiveOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveOwnerId"]) + "\"}," + //"\"FReceiveStockID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveStockID"]) + "\"}," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + "\"FReceiveMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveMtoNo"]) + "\"," + "\"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + "\"FPOORDERENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERENTRYID"]) + "," + "\"FPriceListEntry\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "\"}," + "\"FBaseUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitQty"]) + "," + "\"FMustQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "," + "\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + "\"FStockBaseDen\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockBaseDen"]) + "," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + sJson_SubCustom + //\"FEntryPruCost\":[{\"FDetailID\":\"0\"}], "\"FTaxDetailSubEntity\":[{" + //\"FDetailID\":\"0\", "\"FTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "," + "\"FTaxAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxAmount"]) + "," + "\"FTaxRateId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRateId"]) + "\" }," + "\"FCostPercent\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPercent"]) + "," + "\"FTaxCostAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCostAmount"]) + "," + "\"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + "\"FSellerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSellerWithholding"]) + "\"," + "\"FBuyerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBuyerWithholding"]) + "\"" + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FInStockEntry_Link\": [ " + sJson_Entry_Link + "]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_InStock", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildPOStockIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成采购入库单失败!" + HReturn; LogService.Write("生成采购入库单(源单:收料通知单),多行数据合并下推生单失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成采购入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成采购入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_InStock", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_InStock", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成采购入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核采购入库单(源单:收料通知单),多行数据合并下推生单成功!" + sRemark); sErrMsg = "生成并审核采购入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核采购入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成采购入库单(源单:收料通知单),多行数据合并下推生单成功!" + sRemark); sErrMsg = "生成采购入库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 外购入库CLOUD * //生成外购入库单 [WebMethod] public bool set_SavePOStockInBill_CLD(Model.ClsKf_POStockInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1103") //收料通知单 { if (SavePOStockInBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "1102") //采购订单 { if (SavePOStockInBill_POOrder_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 外购入库单 (源单:收料通知单) /// /// /// /// public bool SavePOStockInBill_CLD(Model.ClsKf_POStockInBillMain 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_POStockInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1201','1201'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDatePOInStockRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); } if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") //系统参数 启用器具管理 { string HMouldBillType = "3803"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",1"); } //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_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_PAEZ_Combo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_PAEZ_Combo"]) + "\", "; //送货单号 } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"Model\":{" + //\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //"\"FBUSINESSTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBUSINESSTYPE"]) + "\"," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPURCHASEDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASEDEPTID"]) + "\"}," + "\"FPURCHASERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASERID"]) + "\"}," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\", " + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FCDateOffsetValue\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetValue"]) + "," + sJson_Custom + "\"FInStockFin\":{\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "," + "\"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"]) + " " + " }, \"FInStockEntry\": [ "; 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_FAUXPROPID = ""; 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 (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"]) + "\"}},"; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } sJson_Entry = sJson_Entry + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FWWInType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWWInType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + sJson_FAUXPROPID + "\"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FMUSTQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQty"]) + "\", " + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + ", " + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + //"\"FLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\"}," + sJson_BatchNo + "\"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"]) + "\"}}," + //"\"FDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDisPriceQty"]) + ", " + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FRECEIVESTOCKSTATUS\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRECEIVESTOCKSTATUS"]) + "\"}," + "\"fpoorderentryid\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["fpoorderentryid"]) + ", " + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FPOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERNO"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //"\"FMtoNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "," + "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + "\"FNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNote"]) + "\"," + //"\"FProduceDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + ", " + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //"\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + //"\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + //"\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + //"\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + ", " + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + //"\"FInvoicedJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInvoicedJoinQty"]) + "," + //"\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + "\"FSetPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSetPriceUnitID"]) + "\"}," + "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}, " + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + //"\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + //"\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + //"\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + //"\"FBASEUNITQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTYOLD"]) + "," + //"\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + //"\"FSTOCKBASEDEN\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "," + //"\"FREMAININSTOCKBASEQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREMAININSTOCKBASEQTYOLD"]) + "," + "\"FBASEUNITQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTY"]) + "," + "\"FREMAININSTOCKBASEQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREMAININSTOCKBASEQTY"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + //"\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + ", " + //"\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + //"\"FCostPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPrice"]) + "," + //"\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + //"\"FSupplierLot\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "," + //"\"FExpiryDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "," + //"\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + // "\"FBeforeDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBeforeDisPriceQty"]) + ", " + "\"FPRICELISTENTRY\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRICELISTENTRY"]) + "\"}," + "\"FInStockEntry_Link\": [ { " + "\"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FRuleId"]) + "\" , " + "\"FInStockEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSTableName"]) + "\" , " + "\"FInStockEntry_Link_FSBillId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSBillId"]) + " , " + "\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成采购入库单 1个物料1单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_InStock", sJson }); if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_InStock", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_InStock", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生成采购入库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成采购入库单失败!" + e.Message; oCn.RollBack(); return false; } } /// /// 外购入库单 (源单:采购订单) /// /// /// /// public bool SavePOStockInBill_POOrder_CLD(Model.ClsKf_POStockInBillMain 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_POStockInBillSub_Insert_POOrder " + 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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1201','1201'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDatePOOrderRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); } if (oSystemParameterMain.WMS_MouldManagerCtl == "Y") //系统参数 启用器具管理 { string HMouldBillType = "3803"; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + ",1"); } //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInPOOrderBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInPOOrderBill_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 = "\"FDELIVERYBILL\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDELIVERYBILL"]) + "\", "; //送货单号 } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{" + //"\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDEMANDORGID"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASEORGID"]) + "\"}," + "\"FPurchaseDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASEDEPTID"]) + "\"}," + "\"FPURCHASERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPURCHASERID"]) + "\"}," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + sJson_Custom + "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\", " + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERIDHead"]) + "\"}," + "\"FCDateOffsetValue\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetValue"]) + "," + "\"FInStockFin\":{\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "," + "\"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"]) + "" + " }, \"FInStockEntry\": [ "; 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 = ""; 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 (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 + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FWWInType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWWInType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FMUSTQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "\", " + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + ", " + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + //"\"FLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\"}," + sJson_BatchNo + "\"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"]) + "\"}}," + "\"FDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDisPriceQty"]) + ", " + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FRECEIVESTOCKSTATUS\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRECEIVESTOCKSTATUS"]) + "\"}," + "\"fpoorderentryid\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["fpoorderentryid"]) + ", " + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FPOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERNO"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + "\"FNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNote"]) + "\"," + "\"FProduceDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + ", " + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + "\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + "\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + ", " + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + "\"FInvoicedJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInvoicedJoinQty"]) + "," + "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + "\"FSetPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSetPriceUnitID"]) + "\"}," + "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}, " + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + "\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + "\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + //"\"FBASEUNITQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTYOLD"]) + "," + //"\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + //"\"FSTOCKBASEDEN\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKBASEDEN"]) + "," + //"\"FREMAININSTOCKBASEQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREMAININSTOCKBASEQTYOLD"]) + "," + "\"FBASEUNITQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTY"]) + "," + "\"FREMAININSTOCKBASEQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREMAININSTOCKBASEQTY"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + ", " + "\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + "\"FCostPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPrice"]) + "," + "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSupplierLot\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "," + "\"FExpiryDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "," + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + "\"FBeforeDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBeforeDisPriceQty"]) + ", " + "\"FInStockEntry_Link\": [ { " + "\"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FRuleId"]) + "\" , " + "\"FInStockEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSTableName"]) + "\" , " + "\"FInStockEntry_Link_FSBillId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSBillId"]) + " , " + "\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成采购入库单 1个物料1单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_InStock", sJson }); if (oSystemParameterMain.Kf_POStockInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_InStock", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_InStock", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生成采购入库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成采购入库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 产品入库CLOUD 多源单 //生成产品入库单 多源单 [WebMethod] public bool set_SaveProductInBill_MulSource_CLD(Model.ClsKf_ProductInBillMain oMain, ref string sHBillNo, ref string sErrMsg) { sHBillNo = oMain.HBillNo; //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } // if (oSystemParameter.omodel.Kf_ProductInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (SaveProductInBill_MulSource_CLD(oMain, oSystemParameter.omodel, ref sHBillNo, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + sHBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } sErrMsg = "同步模式设置错误,保存产品入库单失败!" + sErrMsg; return false; } /// /// 产品入库单 多源单 /// /// /// /// public bool SaveProductInBill_MulSource_CLD(Model.ClsKf_ProductInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sHBillNo, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { string sJson_Main_PL = ""; string sJson_Model_PL = ""; string sJson_Entry_PL = ""; string sJson_End_PL = ""; string HBillNo_PL = ""; string HBillNo = ""; long HOrgID = 0; DataSet Ds; DataSet Ds1; //写入WMS产品入库单 oCn.BeginTran(); //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1202','1202'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateICMORelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + oMain.HInterID.ToString()); } //根据单据ID获取扫描的组织有哪几个 string tt = ""; Ds1 = oCn.RunProcReturn("exec h_p_Kf_GetOrgIDByTemp_CLD " + oMain.HInterID.ToString(), "h_p_Kf_GetOrgIDByTemp_CLD"); if (Ds1 == null || Ds1.Tables[0].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { sJson_Main_PL = "{\"NumberSearch\":\"true\",\"ValidateFlag\":\"true\",\"IsDeleteEntry\":\"true\"," + "\"IsEntryBatchFill\":\"false\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[], \"SubSystemId\": \"\"," + "\"InterationFlags\": \"\",\"IsAutoSubmitAndAudit\":\"false\", \"Model\":["; for (int y = 0; y < Ds1.Tables[0].Rows.Count; y++) { HOrgID = Pub_Class.ClsPub.isLong(Ds1.Tables[0].Rows[y][0]); //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBillByOrgID_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + HOrgID.ToString(), "h_p_Kf_GetProductInBillByOrgID_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; continue; //return false; } else { if (sJson_Model_PL != "") { sJson_Model_PL = sJson_Model_PL + ","; } int s = y + 1; HBillNo = oMain.HBillNo + "-" + s; sJson_Model_PL = sJson_Model_PL + "{ \"FBILLNO\":\"" + HBillNo + "\"," + /*\"FID\":\"" + oMain.HInterID.ToString() + "\"," +*/ "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HStockORGID"]) + "\"}, " + "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HPRDORGID"]) + "\"}, " + "\"FOwnerId0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HOWNERID"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISENTRUST"]) + "," + "\"FEntity\": [ "; sJson_Entry_PL = ""; for (int i = 0; i < Ds.Tables[1].Rows.Count; i++) { if (sJson_Entry_PL != "") { sJson_Entry_PL = sJson_Entry_PL + " , "; } string sJson_BatchNo = ""; string sJson_StockPlace = ""; string sJson_Custom = ""; //韩电 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 == "韩电") //系统参数 客户定制化名称 空白为通用 仓位 { 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_Custom = " \"F_QOUL_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_QOUL_TEXT"]) + "\", "; //销售订单号 } 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_PL = sJson_Entry_PL + " { \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HOWNERID"]) + "\"}," + // "\"FSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSEQ"]) + "\", " + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"} , " + " \"FMOBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\" , " + " \"FMOID\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "\" , " + " \"FMOENTRYID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + " , " + " \"FMOENTRYSEQ\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "\" , " + // " \"F_PAEZ_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PAEZ_TEXT"]) + "\", " + " \"FSRCBILLTYPE\" : \"PRD_MO\" , \"FSRCBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\" , " + " \"FSRCINTERID\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "\" , " + " \"FSRCENTRYID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + " , " + " \"FSRCENTRYSEQ\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "\" , " + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"} , " + " \"FInStockType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockType"]) + "\"," + " \"FWORKSHOPID1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}," + " \"FUNITID\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FBASEUNITID\" : {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"} , " + " \"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"]) + "\"}}," + " \"FPRODUCTTYPE\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\" , " + " \"FMUSTQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQty"]) + "\", " + " \"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "\", " + " \"FCOSTRATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTRATE"]) + "\", " + sJson_BatchNo + //"\"FLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\"}," + " \"FMOMAINENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "\" , " + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\" , " + " \"FREQBILLID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "\" , " + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\" , " + " \"FREQENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "\" , " + " \"FREQENTRYSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "\" , " + sJson_Custom + " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\" , " + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\" , " + " \"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]["HICMOEntryID"]) + "\" " + " } ]} "; } sJson_Entry_PL = sJson_Entry_PL + "]}"; sJson_Model_PL = sJson_Model_PL + sJson_Entry_PL; //单据号 if (HBillNo_PL != "") { HBillNo_PL = HBillNo_PL + " , "; } HBillNo_PL = HBillNo_PL + "'" + HBillNo + "'"; } sHBillNo = HBillNo_PL; /////////////////// } sJson_End_PL = " ], \"BatchCount\":\"0\"}"; string sJson = sJson_Main_PL + sJson_Model_PL + sJson_End_PL; tt = tt + HBillNo_PL + "----"; // //生成 入库单 //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 入库单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.BatchSave", new object[] { "PRD_INSTOCK", sJson }); //调用保存方式 if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[" + HBillNo_PL + "]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[" + HBillNo_PL + "]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", sJson3 }); //审核单据 HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); } else { HReturn = result.ToString(); } if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = sErrMsg + "产品入库单失败!" + HReturn + "999" + tt + "888" + sJson; oCn.RollBack(); return false; } else { sErrMsg = sErrMsg + "999" + tt + "888" + HReturn; oCn.Commit(); return true; } } else { sErrMsg = sErrMsg + "产品入库单失败!登录失败!"; oCn.RollBack(); return false; } sErrMsg = sErrMsg + "999" + tt + "888" + HReturn; return true; } } catch (Exception e) { sErrMsg = sErrMsg + "产品入库单失败!" + e.Message; return false; } } #endregion #region 产品入库核对CLOUD //生成产品入库单 [WebMethod] public bool set_CheckProductInBill_CLD(Model.ClsKf_ProductInBillMain_CLD oMain, string sHSourceType, ref string sErrMsg) { if (CheckProductInBill_CLD(oMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } /// /// 产品入库单 /// /// /// /// public bool CheckProductInBill_CLD(Model.ClsKf_ProductInBillMain_CLD oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; //根据TMP表 返回 子表信息 Ds = oCn.RunProcReturn("exec h_p_Kf_CheckProductInBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[], \"IsEntryBatchFill\": \"false\", \"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + /*\"FID\":\"" + oMain.HInterID.ToString() + "\"," +*/ "\"FStockOrgId\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}, " + "\"FPRDORGID\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}, " + "\"FOwnerId0\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + "\"FBillType\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\" " + " }, \"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 = ""; 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 = ""; } sJson_Entry = sJson_Entry + " { \"FOWNERID\":{\"FNumber\":\"" + oMain.HORGANIZATIONSNO.ToString() + "\"}," + // "\"FSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSEQ"]) + "\", " + " \"FMOBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\" , " + " \"FMOID\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "\" , " + " \"FMOENTRYID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + " , " + " \"FMOENTRYSEQ\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "\" , " + // " \"F_PAEZ_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PAEZ_TEXT"]) + "\", " + " \"FSRCBILLTYPE\" : \"PRD_MO\" , \"FSRCBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\" , " + " \"FSRCINTERID\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "\" , " + " \"FSRCENTRYID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + " , " + " \"FSRCENTRYSEQ\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "\" , " + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"} , " + " \"FWORKSHOPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}," + " \"FUNITID\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FBASEUNITID\" : {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"} , " + " \"FSTOCKID\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}, " + "\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}}," + " \"FPRODUCTTYPE\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\" , " + " \"FMUSTQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQty"]) + "\", " + " \"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "\", " + sJson_BatchNo + //"\"FLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\"}," + " \"FMOMAINENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "\" , " + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\" , " + " \"FREQBILLID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "\" , " + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\" , " + " \"FREQENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "\" , " + " \"FREQENTRYSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "\" , " + " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\" , " + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\" , " + " \"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]["HICMOEntryID"]) + "\" " + " } ] } "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 入库单 ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_INSTOCK", sJson }); string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", sJson3 }); string HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "产品入库单失败!" + HReturn + sJson; return false; } else { return true; } } else { sErrMsg = "产品入库单失败!登录失败!"; return false; } } } catch (Exception e) { sErrMsg = "产品入库单失败!" + e.Message; return false; } } #endregion [WebMethod] //根据物料条码 返回物料信息 规格型号 数量 public bool GetInfoByBarCode(string sBarCode, ref string sMaterName, ref string sMaterNumber, ref long sMaterID, ref string sMaterModel, ref long sUnitID, ref string sUnitName, ref double sQty) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_GetInfoByBarCode_AGV '" + sBarCode + "'", "h_p_GetInfoByBarCode_AGV"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return false; } else { sMaterName = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMaterName"]); sMaterNumber = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMaterNumber"]); sMaterID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HMaterID"]); sMaterModel = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HMaterModel"]); sUnitID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HUnitID"]); sUnitName = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HUnitName"]); sQty = DBUtility.ClsPub.isDoule(Ds.Tables[0].Rows[0]["HQty"]); } return true; } [WebMethod] public bool set_SaveKf_AGVRequestBill(Model.ClsKf_AGVRequestBillMain oMain, ref string sErrMsg) { if (SaveKf_AGVRequestBill(oMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } /// /// AGV配送单 /// /// /// /// public bool SaveKf_AGVRequestBill(Model.ClsKf_AGVRequestBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { //插入子表 oCn.RunProc("Insert Into Kf_AGVRequestBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + ",HSPID,HWHID,HSCWHID,HSCSPID,HOWNERID" + ") " + " values('1299','1299'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),''" + ",2012,1,'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HSPID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HSCSPID.ToString() + "," + oMain.HOrgID.ToString() + ") "); //插入主表 oCn.RunProc("Insert Into Kf_AGVRequestBillSub " + "(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMainSourceBillType" + ",HYear,HPeriod,HRemark,HMaker,HMakeDate" + ",HSPID,HWHID,HSCWHID,HSCSPID,HQty,HMaterID,HOWNERID" + ") " + " values('1299','1299'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "',convert(varchar(10),getdate(),120),''" + ",2012,1,'" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)" + ", " + oMain.HSPID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HSCSPID.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HMaterID.ToString() + "," + oMain.HOrgID.ToString() + ") "); return true; } catch (Exception e) { sErrMsg = "AGV配送单失败!" + e.Message; return false; } } #region 产品退库 产品入库(红字) *旧 //生成产品退库单 [WebMethod] public bool set_SaveProductInBackBill(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_ProductInBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_ProductInBackBill dal = new DAL.ClsKf_ProductInBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "验收没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_ProductInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { } sErrMsg = "保存产品退库单失败!" + sErrMsg; return false; } #endregion #region 产品退库 产品入库(红字) * //生成产品退库单 [WebMethod] public bool set_SaveProductInBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_ProductInBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_ProductInBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_ProductInBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_ProductInBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveProductInBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_ProductInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { sErrMsg = "暂无此功能!"; return false; } sErrMsg = "保存产品退库单失败!" + sErrMsg; return false; } #endregion #region 产品退库K3 产品入库(红字) * /// /// 生成产品退库单K3 /// /// /// /// public bool SaveProductInBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_ProductInBackBill dal = new DAL.ClsKf_ProductInBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBackBillSub_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('1245','1245'," + 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_ProductInBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "3710") //生产任务单-退库 { oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToProductInBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBackBill_UpdateBillRelateData_ICMO " + oMain.HInterID.ToString()); } else if (sHSourceType == "1202") //产品入库单-蓝字 { oCn.RunProc("exec h_p_Kf_UpDateRelation_ProductInToProductInBack_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBackBill_UpdateBillRelateData_Blue " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBackBill_UpdateBillRelateData " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_ProductInBackBill_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_ProductInBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_ProductInBackBill_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_ProductInBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBackBill_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]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成产品退库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 产品入库 *旧 //生成产品入库单 [WebMethod] public bool set_SaveProductInBill(Model.ClsKf_ProductInBillMain oMain, 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_ProductInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { // DAL.ClsKf_ProductInBill dal = new DAL.ClsKf_ProductInBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "验收没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (oMain.HRedBlueFlag) { if (dal.AddBill_PDA_Red(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_ProductInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveProductInBill_CLD(oMain, "1111", oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存产品入库单失败!" + sErrMsg; return false; } //核对生单产品入库单K3 [WebMethod] public bool set_CheckAddProductInBill(Model.ClsKf_ProductInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_ProductInBill_K3 dal = new DAL.ClsKf_ProductInBill_K3(); dal.omodel = oMain; if (oMain.HRedBlueFlag) { //if (dal.CheckAddBill_RedPDA(ref sErrMsg)) //{ // //"保存成功!"; // return true; //} //else //{ // //"保存失败!"; // return false; //} return false; } else { if (dal.CheckAddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } //核对产品入库单K3 [WebMethod] public bool set_CheckProductInBill(Model.ClsKf_ProductInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_ProductInBill_K3 dal = new DAL.ClsKf_ProductInBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核产品入库单K3 [WebMethod] public bool set_AuditProductInBill(Model.ClsKf_ProductInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_ProductInBill_K3 dal = new DAL.ClsKf_ProductInBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //每个条码只能进行一次产品入库,如果入库单删除,则可以进行再次入库 /// /// 每个条码只能进行一次产品入库,如果入库单删除,则可以进行再次入库 /// /// 过滤条件 /// [WebMethod] public DataSet GetProductInBill(string HBarCode, string sWhere) { DAL.ClsKf_ProductInBill_K3 dal = new DAL.ClsKf_ProductInBill_K3(); return dal.GetInfoByHBarCode(HBarCode, sWhere); } #endregion #region 产品入库 * //生成产品入库单 [WebMethod] public bool set_SaveProductInBill_New(Model.ClsKf_ProductInBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID,ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_ProductInBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_ProductInBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_ProductInBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_ProductInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveProductInBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_ProductInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { if (set_SaveProductInBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SaveProductInBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } sErrMsg = "保存产品入库单失败!" + sErrMsg; return false; } #endregion #region 产品入库K3 * /// /// 生成产品入库单K3 /// /// /// /// public bool SaveProductInBill_K3(Model.ClsKf_ProductInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_ProductInBill dal = new DAL.ClsKf_ProductInBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "验收没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //生成产品入库单前判断 DataSet DsCheck; DsCheck = oCn.RunProcReturn("exec h_p_K3_LoadProductInCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + sHSourceType + "'", "h_p_K3_LoadProductInCheck"); if (DsCheck == null || DsCheck.Tables[0].Rows.Count == 0) { sErrMsg = "生成单据前判断失败!"; return false; } else { if (DBUtility.ClsPub.isLong(DsCheck.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(DsCheck.Tables[0].Rows[0]["HRemark"]); 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_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('1202','1202'," + 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_ProductInBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "3710") //生产任务单 { oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToProductIn_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBill_UpdateBillRelateData_ICMO_New " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_ProductInBill_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_ProductInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_ProductInBill_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_ProductInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_ProductInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成产品入库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 产品入库CLOUD *New //生成生产入库单 [WebMethod] public bool set_SaveProductInBill_CLD_New(Model.ClsKf_ProductInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "3710") //生产订单 { if (SaveProductInBill_ICMO_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "3711") //生产汇报单 { if (SaveProductInBill_ICMOReport_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "3714") //工序汇报单 { if (SaveProductInBill_ProcessReport_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 生产入库单 源单:生产订单 /// /// /// /// public bool SaveProductInBill_ICMO_CLD(Model.ClsKf_ProductInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1202','1202'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToProductIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ICMO_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ICMO_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ICMO_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ICMO_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + sJson_Date + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOWNERTYPEID0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEID0"]) + "\"," + "\"FOWNERID0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERID0"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISENTRUST"]) + "," + //\"FCurrId\":{\"FNumber\":\"\"}, //\"FEntrustInStockId\":\"0\", //\"FScanBox\":\"\", sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //仓位 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 + " {" + //\"FEntryID\":\"0\", " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FINSTOCKTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FINSTOCKTYPE"]) + "\"," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQTY"]) + "," + " \"FREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREALQTY"]) + "," + " \"FCostRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTWEIGHT"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FBASEMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEMUSTQTY"]) + "," + " \"FBASEREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEREALQTY"]) + "," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + sJson_BatchNo + " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FWORKSHOPID1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID1"]) + "\"}," + //\"FShiftGroupId\":{\"FNumber\":\"\"}, " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + //\"FMemo\":\"\", " \"FSTOCKUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKUNITID"]) + "\"}," + " \"FSTOCKREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKREALQTY"]) + "," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSECUNITID"]) + "\"}," + //\"FSecRealQty\":\"0\", " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FBASEPRDREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEPRDREALQTY"]) + "," + //\"FIsFinished\":\"false\", //\"FStockStatusId\":{\"FNumber\":\"\"}, " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + " \"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + sJson_FProduceDate + //\"FSelReStkQty\":\"0\", sJson_FExpiryDate + //\"FBaseSelReStkQty\":\"0\", " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"," + " \"FEntity_Link_FBasePrdRealQtyOld\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQtyOld"]) + "," + " \"FEntity_Link_FBasePrdRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQty"]) + "" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_INSTOCK", sJson }); //调用保存方式 sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildProductIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产入库单失败!" + HReturn; LogService.Write("生成生产入库单(源单:生产任务单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", sJson3 }); //审核单据 HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产入库单(源单:生产任务单)成功!" + sRemark); sErrMsg = "生成并审核生产入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产入库单(源单:生产任务单)成功!" + sRemark); sErrMsg = "生成生产入库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 生产入库单 源单:生产汇报单 /// /// /// /// public bool SaveProductInBill_ICMOReport_CLD(Model.ClsKf_ProductInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1202','1202'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOReportToProductIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ICMOReport_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ICMOReport_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ICMOReport_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ICMOReport_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + sJson_Date + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOWNERTYPEID0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEID0"]) + "\"," + "\"FOWNERID0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERID0"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISENTRUST"]) + "," + //\"FCurrId\":{\"FNumber\":\"\"}, //\"FEntrustInStockId\":\"0\", //\"FScanBox\":\"\", sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_EntryCustom = ""; string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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"]) + "\"}},"; } if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_EntryCustom = "\"F_QOUL_TEXT1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_QOUL_TEXT1"]) + "\","; //销售订单号 } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FINSTOCKTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FINSTOCKTYPE"]) + "\"," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQTY"]) + "," + " \"FREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREALQTY"]) + "," + " \"FCostRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTWEIGHT"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FBASEMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEMUSTQTY"]) + "," + " \"FBASEREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEREALQTY"]) + "," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + sJson_BatchNo + " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + //" \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + sJson_FAUXPROPID + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FWORKSHOPID1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID1"]) + "\"}," + " \"FSHIFTGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSHIFTGROUPID"]) + "\"}," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + " \"FMemo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMemo"]) + "\"," + " \"FSTOCKUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKUNITID"]) + "\"}," + " \"FSTOCKREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKREALQTY"]) + "," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSECUNITID"]) + "\"}," + //\"FSecRealQty\":\"0\", " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FBASEPRDREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEPRDREALQTY"]) + "," + //\"FIsFinished\":\"false\", //\"FStockStatusId\":{\"FNumber\":\"\"}, " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + " \"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + sJson_FProduceDate + //\"FSelReStkQty\":\"0\", sJson_FExpiryDate + //\"FBaseSelReStkQty\":\"0\", " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + sJson_EntryCustom + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"," + " \"FEntity_Link_FBasePrdRealQtyOld\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQtyOld"]) + "," + " \"FEntity_Link_FBasePrdRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQty"]) + "" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_INSTOCK", sJson }); //调用保存方式 sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildProductIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产入库单失败!" + HReturn; LogService.Write("生成生产入库单(源单:生产汇报单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", sJson3 }); //审核单据 HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产入库单(源单:生产汇报单)成功!" + sRemark); sErrMsg = "生成并审核生产入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产入库单(源单:生产汇报单)成功!" + sRemark); sErrMsg = "生成生产入库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 生产入库单 源单:工序汇报单 /// /// /// /// public bool SaveProductInBill_ProcessReport_CLD(Model.ClsKf_ProductInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1202','1202'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ProcessReportToProductIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ProcessReport_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ProcessReport_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ProcessReport_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ProcessReport_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + sJson_Date + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPrdOrgId"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOWNERTYPEID0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," + "\"FOWNERID0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerId0"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsEntrust"]) + "," + "\"FCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCurrId"]) + "\"}," + //\"FEntrustInStockId\":\"0\", //\"FScanBox\":\"\", sJson_MainCustom + "\"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_FAuxpropId = ""; string sJson_StockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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_FAuxpropId = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAuxpropId = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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"]) + "\"}},"; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcEntryId"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckProduct"]) + "," + " \"FINSTOCKTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockType"]) + "\"," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProductType"]) + "\"," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "," + " \"FREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + " \"FCostRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostRate"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FBASEMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseMustQty"]) + "," + " \"FBASEREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseRealQty"]) + "," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + sJson_BatchNo + " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + sJson_FAuxpropId + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + " \"FWORKSHOPID1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWorkShopId1"]) + "\"}," + " \"FSHIFTGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FShiftGroupId"]) + "\"}," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoBillNo"]) + "\"," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + "," + " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntrySeq"]) + "," + //" \"FMemo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMemo"]) + "\"," + " \"FSTOCKUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," + " \"FSTOCKREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockRealQty"]) + "," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecRealQty\":\"0\", " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillType"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcInterId"]) + "," + " \"FBASEPRDREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBasePrdRealQty"]) + "," + " \"FIsFinished\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsFinished"]) + "\"," + " \"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcEntrySeq"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + " \"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + sJson_FProduceDate + //\"FSelReStkQty\":\"0\", sJson_FExpiryDate + //\"FBaseSelReStkQty\":\"0\", " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FIsOverLegalOrg\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsOverLegalOrg"]) + "\"," + sJson_SubCustom + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"," + " \"FEntity_Link_FBasePrdRealQtyOld\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQtyOld"]) + "," + " \"FEntity_Link_FBasePrdRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQty"]) + "" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_INSTOCK", sJson }); //调用保存方式 sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildProductIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成生产入库单失败!" + HReturn; LogService.Write("生成生产入库单(源单:工序汇报单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成生产入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成生产入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", sJson3 }); //审核单据 HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成生产入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核生产入库单(源单:工序汇报单)成功!" + sRemark); sErrMsg = "生成并审核生产入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核生产入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成生产入库单(源单:工序汇报单)成功!" + sRemark); sErrMsg = "生成生产入库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 产品入库CLOUD //生成产品入库单 [WebMethod] public bool set_SaveProductInBill_CLD(Model.ClsKf_ProductInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "3710") //生产订单 { if (SaveProductInBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (sHSourceType == "3711") //生产汇报单 { if (SaveProductInBill_ICMOReport_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 产品入库单 源单:生产订单 /// /// /// /// public bool SaveProductInBill_CLD(Model.ClsKf_ProductInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //建立一个 事务; try { DataSet Ds; //写入WMS产品入库单 oCn.BeginTran(); //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1202','1202'," + 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) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateICMORelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_ProductInBill_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_GetProductInBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[], \"IsEntryBatchFill\": \"false\", \"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + /*\"FID\":\"" + oMain.HInterID.ToString() + "\"," +*/ "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HStockORGID"]) + "\"}, " + "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HPRDORGID"]) + "\"}, " + "\"FOwnerId0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HOWNERID"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBillType\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\" " + " }, \"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_Custom = ""; //卓力 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"]) + "\"}},"; sJson_Custom = " \"F_ZBH\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_ZBH"]) + "\" , " + //栈板数 " \"F_QIMB_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_QIMB_TEXT"]) + "\" , " + //需求单号 " \"F_DDQTY\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_DDQTY"]) + "\", "; //订单数量 } 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_Custom = "\"F_QOUL_TEXT1\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_QOUL_TEXT1"]) + "\","; //销售订单号 } 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 + " { \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HOWNERID"]) + "\"}," + // "\"FSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSEQ"]) + "\", " + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"} , " + " \"FMOBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\" , " + " \"FMOID\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "\" , " + " \"FMOENTRYID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + " , " + " \"FMOENTRYSEQ\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "\" , " + // " \"F_PAEZ_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["F_PAEZ_TEXT"]) + "\", " + " \"FSRCBILLTYPE\" : \"PRD_MO\" , \"FSRCBILLNO\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\" , " + " \"FSRCINTERID\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "\" , " + " \"FSRCENTRYID\" : " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + " , " + " \"FSRCENTRYSEQ\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "\" , " + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"} , " + " \"FWORKSHOPID1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID"]) + "\"}," + " \"FUNITID\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FBASEUNITID\" : {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"} , " + " \"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"]) + "\"}}," + " \"FPRODUCTTYPE\" : \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\" , " + " \"FMUSTQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQty"]) + "\", " + " \"FRealQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "\", " + " \"FCOSTRATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTRATE"]) + "\", " + sJson_BatchNo + //"\"FLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLot"]) + "\"}," + " \"FMOMAINENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "\" , " + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\" , " + " \"FREQBILLID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "\" , " + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\" , " + " \"FREQENTRYID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "\" , " + " \"FREQENTRYSEQ\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "\" , " + sJson_Custom + " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\" , " + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\" , " + " \"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]["HICMOEntryID"]) + "\" " + " } ] } "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 入库单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_INSTOCK", sJson }); //调用保存方式 if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", 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 { oCn.Commit(); return true; } } else { sErrMsg = "产品入库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "产品入库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 委外退库 委外入库(红字) *旧 //生成委外退库单 [WebMethod] public bool set_SaveEntrustInBackBill(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 { 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; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_EntrustInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { } sErrMsg = "保存委外退库单失败!" + sErrMsg; return false; } #endregion #region 委外退库 委外入库(红字) * //生成委外退库单 [WebMethod] 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.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustInBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_EntrustInBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustInBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); 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 = "暂无此功能!"; return false; } sErrMsg = "保存委外退库单失败!" + sErrMsg; return false; } #endregion #region 委外退库K3 委外入库(红字) * /// /// 生成委外退库单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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { 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()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新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()); //审核单据 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()); } } else { //审核单据 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]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成委外退库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 委外入库 *旧 //生成委外入库单 [WebMethod] public bool set_SaveEntrustInBill(Model.ClsKf_EntrustInBillMain 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_EntrustInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_EntrustInBill dal = new DAL.ClsKf_EntrustInBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HSupID == 0) { sErrMsg = "供应商没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "验收没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (oMain.HRedBlueFlag) { //if (dal.AddBill_PDA_Red_ByWWOrder(ref sErrMsg)) //{ // //"保存成功!"; // return true; //} //else //{ // //"保存失败!"; // return false; //} return false; } else { if (sHSourceType == "1103") //收料通知单 { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else if (sHSourceType == "1601") //委外订单 { if (dal.AddBill_PDA_ByWWOrder(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { return false; } } } if (oSystemParameter.omodel.Kf_EntrustInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveEntrustInBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存委外入库单失败!" + sErrMsg; return false; } //核对生单委外入库单K3 [WebMethod] public bool set_CheckAddEntrustInBill(Model.ClsKf_EntrustInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_EntrustInBill_K3 dal = new DAL.ClsKf_EntrustInBill_K3(); dal.omodel = oMain; if (oMain.HRedBlueFlag) { if (dal.CheckAddBill_RedPDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { //if (dal.CheckAddBill_PDA(ref sErrMsg)) //{ // //"保存成功!"; // return true; //} //else //{ // //"保存失败!"; // return false; //} return false; } } //核对委外入库单K3 [WebMethod] public bool set_CheckEntrustInBill(Model.ClsKf_EntrustInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_EntrustInBill_K3 dal = new DAL.ClsKf_EntrustInBill_K3(); dal.omodel = oMain; if (dal.CheckBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核委外入库单K3 [WebMethod] public bool set_AuditEntrustInBill(Model.ClsKf_EntrustInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_EntrustInBill_K3 dal = new DAL.ClsKf_EntrustInBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } ////生成委外入库单K3 //[WebMethod] //public bool set_SaveEntrustInBill(Model.ClsKf_EntrustInBillMain_K3 oMain, string sHSourceType, ref string sErrMsg) //{ // DAL.ClsKf_EntrustInBill_K3 dal = new DAL.ClsKf_EntrustInBill_K3(); // dal.omodel = oMain; // if (sHSourceType == "72") //判断源单类型 // { // if (dal.AddBill_PDA(ref sErrMsg)) // { // //"保存成功!"; // return true; // } // else // { // //"保存失败!"; // return false; // } // } // else if (sHSourceType == "1007105") // { // if (oMain.HRedBlueFlag) // { // if (dal.AddBill_PDA_Red_ByWWOrder(ref sErrMsg)) // { // //"保存成功!"; // return true; // } // else // { // //"保存失败!"; // return false; // } // } // else // { // if (dal.AddBill_PDA_ByWWOrder(ref sErrMsg)) // { // //"保存成功!"; // return true; // } // else // { // //"保存失败!"; // return false; // } // } // } // else // { // return false; // } //} #endregion #region 委外入库 * //生成委外入库单 [WebMethod] public bool set_SaveEntrustInBill_New(Model.ClsKf_EntrustInBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_EntrustInBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_EntrustInBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_EntrustInBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_EntrustInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveEntrustInBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_EntrustInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { if (set_SaveEntrustInBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存委外入库单失败!" + sErrMsg; return false; } #endregion #region 委外入库K3 * /// /// 生成委外入库单K3 /// /// /// /// public bool SaveEntrustInBill_K3(Model.ClsKf_EntrustInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_EntrustInBill dal = new DAL.ClsKf_EntrustInBill(); dal.omodel = oMain; //上传前必填项判断 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_EntrustInBillSub_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('1210','1210'," + 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.HMangerID.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_EntrustInBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 if (sHSourceType == "1601") //委外订单 { oCn.RunProc("exec h_p_WW_UpDateRelation_EntrustOrderToEntrustIn_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBill_UpdateBillRelateData_EntrustOrder_New " + oMain.HInterID.ToString()); } else if (sHSourceType == "1103") //收料通知单 { oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockToEntrustIn_Add " + oMain.HInterID.ToString()); //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBill_UpdateBillRelateData_POInStock_New " + oMain.HInterID.ToString()); } else //无源单 { //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); } //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_EntrustInBill_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_EntrustInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_EntrustInBill_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_EntrustInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_EntrustInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成委外入库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 委外入库CLOUD *New //生成委外入库单 [WebMethod] public bool set_SaveEntrustInBill_CLD_New(Model.ClsKf_EntrustInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1103") //收料通知单 { if (SaveEntrustInBill_POInStock_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 委外入库单 (源单:收料通知单) /// /// /// /// public bool SaveEntrustInBill_POInStock_CLD(Model.ClsKf_EntrustInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_EntrustInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1210','1210'," + 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.HMangerID.ToString() + "," + oMain.HSecManagerID.ToString() + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDateRelation_POInStockToEntrustIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POInStock_PUBCLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POInStock_PUBCLD_New"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetPOStockInBill_POInStock_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetPOStockInBill_POInStock_CLD_New"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + //\"FBillNo\":\"\", "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FStockerGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerGroupId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDemandOrgId"]) + "\"}," + "\"FCorrespondOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCorrespondOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseOrgId"]) + "\"}," + "\"FPurchaseDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaseDeptId"]) + "\"}," + "\"FPurchaserGroupId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserGroupId"]) + "\"}," + "\"FPurchaserId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPurchaserId"]) + "\"}," + //"\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + //移最下方 "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSupplyAddress\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyAddress"]) + "\"," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FChargeId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FConfirmerId\":{\"FUserID\":\"\"}, //\"FConfirmDate\":\"1900-01-01\", //\"FScanBox\":\"\", //\"FCDateOffsetUnit\":\"\", //\"FCDateOffsetValue\":\"0\", "\"FProviderContactID\":{\"FCONTACTNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FProviderContactID"]) + "\"}," + "\"FDeliveryBill\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeliveryBill"]) + "\"," + "\"FTakeDeliveryBill\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTakeDeliveryBill"]) + "\"," + "\"FBusinessType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBusinessType"]) + "\"," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplierId"]) + "\"}," + sJson_MainCustom + "\"FInStockFin\":{" + //\"FEntryId\":\"0\", "\"FPayOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayOrgId"]) + "\"}," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSettleTypeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleTypeId"]) + "\"}," + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "\"," + //\"FPriceListId\":{\"FNumber\":\"\"}, //\"FDiscountListId\":{\"FNumber\":\"\"}, "\"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"]) + "}," + "\"FInStockEntry\": [ "; 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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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"]) + "\" , " + //批号 " \"FReceiveLot\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveLot"]) + "\"}, \"FReceiveLot_TEXT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveLot"]) + "\" , "; //收货批号 } else { sJson_BatchNo = ""; } //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //仓位 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 + "{" + //{\"FEntryID\":\"0\", "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FWWInType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWWInType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + //"\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + "," + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + sJson_BatchNo + "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FDisPriceQty\":\"0\", sJson_StockPlace + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //\"FMtoNo\":\"\", "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + //\"FNote\":\"\", sJson_FProduceDate + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + "\"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + "\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + "\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + "," + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + //\"FInvoicedJoinQty\":\"0\", "\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + //\"FSetPriceUnitID\":{\"FNumber\":\"\"}, "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}," + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + "\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + "\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + "\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + "\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + "\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + "," + "\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + //\"FCostPrice\":\"0\", "\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + "\"FSupplierLot\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "\"," + sJson_FExpiryDate + "\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + //\"FBeforeDisPriceQty\":\"0\", "\"FReqTraceNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReqTraceNo"]) + "\"," + "\"FPriceCoefficient\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceCoefficient"]) + "," + "\"FPriceUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitQty"]) + "," + "\"FBaseUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitID"]) + "\"}," + "\"FAuxUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitID"]) + "\" }," + "\"FPOOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOOrderNo"]) + "\"," + "\"FReceiveStockStatus\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveStockStatus"]) + "\"}," + "\"FSRCBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBillNo"]) + "\"," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperID"]) + "\"}," + "\"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + "\"FReceiveOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveOwnerTypeId"]) + "\"," + "\"FReceiveOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveOwnerId"]) + "\"}," + "\"FReceiveStockID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveStockID"]) + "\"}," + "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + "\"FReceiveMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReceiveMtoNo"]) + "\"," + "\"FSRCBIZUNITID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBIZUNITID"]) + "\"}," + "\"FPOORDERENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERENTRYID"]) + "," + "\"FPriceListEntry\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceListEntry"]) + "\"}," + "\"FBaseUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitQty"]) + "," + "\"FMustQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMustQty"]) + "," + "\"FPURBASENUM\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPURBASENUM"]) + "," + "\"FStockBaseDen\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockBaseDen"]) + "," + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + sJson_SubCustom + //\"FEntryPruCost\":[{\"FDetailID\":\"0\"}], "\"FTaxDetailSubEntity\":[{" + //\"FDetailID\":\"0\", "\"FTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRate"]) + "," + "\"FTaxAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxAmount"]) + "," + "\"FTaxRateId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxRateId"]) + "\" }," + "\"FCostPercent\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPercent"]) + "," + "\"FTaxCostAmount\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCostAmount"]) + "," + "\"FVAT\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FVAT"]) + "\"," + "\"FSellerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSellerWithholding"]) + "\"," + "\"FBuyerWithholding\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBuyerWithholding"]) + "\"" + " } ]," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FInStockEntry_Link\": [ { " + " \"FInStockEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FInStockEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FInStockEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FInStockEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FInStockEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_InStock", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildPOStockIn '" + oMain.HBillNo + "','" + sHSourceType + "'"); sRemark = sRemark + " ;生成单据后回填字段信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成委外入库单失败!" + HReturn; LogService.Write("生成委外入库单(源单:收料通知单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成委外入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成委外入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_EntrustInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_InStock", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_InStock", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成委外入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核委外入库单(源单:收料通知单)成功!" + sRemark); sErrMsg = "生成并审核委外入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核委外入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成委外入库单(源单:收料通知单)成功!" + sRemark); sErrMsg = "生成委外入库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 委外入库CLOUD //生成外购入库单 [WebMethod] public bool set_SaveEntrustInBill_CLD(Model.ClsKf_EntrustInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "1103") //收料通知单 { if (SaveEntrustInBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 委外入库 /// /// /// /// public bool SaveEntrustInBill_CLD(Model.ClsKf_EntrustInBillMain 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_EntrustInBillSub_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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1210','1210'," + 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.HMangerID.ToString() + "," + oMain.HSecManagerID.ToString() + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Cg_UpDatePOInStockRelation_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_EntrustInBill_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_GetEntrustInBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetEntrustInBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\", " + "\"IsEntryBatchFill\":\"True\",\"Model\":{" + //\"FID\":\"" + oMain.HInterID.ToString() + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBUSINESSTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBUSINESSTYPE"]) + "\"," + "\"FBillNo\":\"" + oMain.HBillNo + "\"," + // "\"FDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDeptId"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FDemandOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPurchaseOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FSupplierId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSupplyId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FSettleId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FChargeId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSupplyId"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\", " + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FCDateOffsetValue\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCDateOffsetValue"]) + "," + "\"FInStockFin\":{\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FPayConditionId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPayConditionId"]) + "\"}," + "\"FSettleCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleCurrId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FPriceTimePoint\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPriceTimePoint"]) + "," + "\"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"]) + " " + " }, \"FInStockEntry\": [ "; 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 = ""; 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 (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 + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FRowType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRowType"]) + "\"," + "\"FWWInType\":\" " + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWWInType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FParentMatId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMatId"]) + "\"}," + "\"FRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRealQty"]) + "," + "\"FPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitID"]) + "\"}," + "\"FPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrice"]) + ", " + "\"FTaxCombination\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxCombination"]) + "\"}," + sJson_BatchNo + "\"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"]) + "\"}}," + //"\"FDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDisPriceQty"]) + ", " + "\"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + "\"FRECEIVESTOCKSTATUS\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRECEIVESTOCKSTATUS"]) + "\"}," + "\"fpoorderentryid\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["fpoorderentryid"]) + ", " + "\"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + "\"FPOORDERNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPOORDERNO"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //"\"FMtoNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "," + "\"FGiveAway\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGiveAway"]) + "," + "\"FNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FNote"]) + "\"," + //"\"FProduceDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + ", " + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //"\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FCheckInComing\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckInComing"]) + "," + //"\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + //"\"FSampleDamageQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageQty"]) + "," + //"\"FSampleDamageBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSampleDamageBaseQty"]) + ", " + "\"FIsReceiveUpdateStock\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReceiveUpdateStock"]) + "," + //"\"FInvoicedJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInvoicedJoinQty"]) + "," + //"\"FPriceBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceBaseQty"]) + "," + "\"FSetPriceUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSetPriceUnitID"]) + "\"}," + "\"FRemainInStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockUnitId"]) + "\"}, " + "\"FBILLINGCLOSE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBILLINGCLOSE"]) + "," + //"\"FRemainInStockQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockQty"]) + "," + //"\"FAPNotJoinQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAPNotJoinQty"]) + "," + //"\"FRemainInStockBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRemainInStockBaseQty"]) + "," + //"\"FBASEUNITQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITQTYOLD"]) + "," + //"\"FREMAININSTOCKBASEQTYOLD\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREMAININSTOCKBASEQTYOLD"]) + "," + //"\"FTaxPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTaxPrice"]) + "," + //"\"FEntryTaxRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryTaxRate"]) + ", " + //"\"FDiscountRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDiscountRate"]) + "," + //"\"FCostPrice\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCostPrice"]) + "," + //"\"FBOMId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMId"]) + "\"}," + //"\"FSupplierLot\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSupplierLot"]) + "," + //"\"FExpiryDate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "," + //"\"FAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxUnitQty"]) + "," + // "\"FBeforeDisPriceQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBeforeDisPriceQty"]) + ", " + "\"FInStockEntry_Link\": [ { " + "\"FInStockEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FRuleId"]) + "\" , " + "\"FInStockEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSTableName"]) + "\" , " + "\"FInStockEntry_Link_FSBillId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSBillId"]) + " , " + "\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成委外入库单 1个物料1单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_InStock", sJson }); if (oSystemParameterMain.Kf_EntrustInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_InStock", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_InStock", 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 { oCn.Commit(); return true; } } else { sErrMsg = "生成委外入库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成委外入库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 其他入库(红字) *旧 //生成其他入库单(红字) [WebMethod] public bool set_SaveOtherInBackBill(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_OtherInBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_OtherInBackBill dal = new DAL.ClsKf_OtherInBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "验收没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (sHSourceType == "-1") //无源单 { if (dal.AddBill_PDA_NoSource(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { sErrMsg = "没有找到对应的源单方法!"; return false; } } if (oSystemParameter.omodel.Kf_OtherInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { } sErrMsg = "保存其他入库单(红字)失败!" + sErrMsg; return false; } #endregion #region 其他入库(红字) * //生成其他入库单(红字) [WebMethod] public bool set_SaveOtherInBackBill_New(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_OtherInBackBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_OtherInBackBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_OtherInBackBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_OtherInBackBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveOtherInBackBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_OtherInBackBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { sErrMsg = "暂无此功能!"; return false; } sErrMsg = "保存其他入库单(红字)失败!" + sErrMsg; return false; } #endregion #region 其他入库(红字)K3 * /// /// 生成其他入库单(红字)K3 /// /// /// /// public bool SaveOtherInBackBill_K3(Model.ClsKf_ICStockBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_OtherInBackBill dal = new DAL.ClsKf_OtherInBackBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherInBackBillSub_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('1248','1248'," + 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_OtherInBackBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBackBill_UpdateBillRelateData " + oMain.HInterID.ToString()); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBackBill_UpdateOrderStock " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_OtherInBackBill_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_OtherInBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else { //审核单据 if (oSystemParameterMain.Kf_OtherInBackBill_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_OtherInBackBill_Check " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBackBill_UpdateStock " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBackBill_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]); if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成其他入库单(红字)失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 其它入库 *旧 //[WebMethod] ////根据条码得到相应信息(其它入库单) //public WMSWebs.Model.ClsKf_ICStockBillEntry get_OtherInInfoByBarCode(string sBarCode, ref string sErrMsg) //{ // WMSWebs.BLL.ClsKf_OtherInBill bll = new WMSWebs.BLL.ClsKf_OtherInBill(); // WMSWebs.Model.ClsKf_ICStockBillEntry model; // model = bll.get_OtherInInfoByrBarCode(sBarCode); // if (model == null) // { // sErrMsg = WMSWebs.DBUtility.ClsPub.ErrStr; // return null; // } // else // { // sErrMsg = ""; // return model; // } //} //生成其它入库单 [WebMethod] public bool set_SaveOtherInBill(Model.ClsKf_OtherInBillMain oMain, 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_OtherInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { DAL.ClsKf_OtherInBill dal = new DAL.ClsKf_OtherInBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } if (oMain.HSecManagerID == 0) { sErrMsg = "验收没有选择!"; return false; } if (oMain.HKeeperID == 0) { sErrMsg = "保管没有选择!"; return false; } //同步生成K3单据 if (oMain.HRedBlueFlag) { //if (dal.AddBill_PDA_Red(ref sErrMsg)) //{ // //"保存成功!"; // return true; //} //else //{ //"保存失败!"; return false; //} } else { if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_OtherInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } //同步生成CLOUD单据 if (set_SaveOtherInBill_CLD(oMain, "1111", oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存其他入库单失败!" + sErrMsg; return false; } //核对生单其他入库单K3 [WebMethod] public bool set_CheckAddOtherInBill(Model.ClsKf_OtherInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_OtherInBill_K3 dal = new DAL.ClsKf_OtherInBill_K3(); dal.omodel = oMain; if (oMain.HRedBlueFlag) { if (dal.CheckAddBill_RedPDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (dal.CheckAddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } //核对其它入库单K3 [WebMethod] public bool set_CheckOtherInBill(Model.ClsKf_OtherInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_OtherInBill_K3 dal = new DAL.ClsKf_OtherInBill_K3(); dal.omodel = oMain; if (dal.AddBill_PDA_Check(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //稽核其他入库单K3 [WebMethod] public bool set_AuditOtherInBill(Model.ClsKf_OtherInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_OtherInBill_K3 dal = new DAL.ClsKf_OtherInBill_K3(); dal.omodel = oMain; if (dal.Audit_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //得到其他入库类型 [WebMethod] public DataSet get_StockInStyle() { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("select HName from Gy_StockInStyle where HStopflag=0", "Gy_StockInStyle"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } #endregion #region 其他入库 * //生成其他入库单 [WebMethod] public bool set_SaveOtherInBill_New(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_OtherInBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + sHSourceType + "'," + oMain.HDeptID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HKeeperID.ToString() + ",'" + oSystemParameter.omodel.Kf_OtherInBill_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_OtherInBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } // if (oSystemParameter.omodel.Kf_OtherInBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { if (SaveOtherInBill_K3(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } if (oSystemParameter.omodel.Kf_OtherInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { //上传前必填项判断 if (oMain.HDeptID == 0) { sErrMsg = "部门没有选择!"; return false; } //同步生成CLOUD单据 if (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "韩电" || oSystemParameter.omodel.WMS_CampanyName == "四维尔" || oSystemParameter.omodel.WMS_CampanyName == "雅琪诺" || oSystemParameter.omodel.WMS_CampanyName == "圣龙") //系统参数 客户定制化名称 空白为通用 { if (set_SaveOtherInBill_CLD(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } else { if (set_SaveOtherInBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } } if (oSystemParameter.omodel.Kf_OtherInBill_ERPMode.ToUpper() == "MES") //只生成WMS单据 { if (set_SaveOtherInBill_MES(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } sErrMsg = "保存其他入库单失败!" + sErrMsg; return false; } #endregion #region 其他入库K3 * /// /// 生成其他入库单K3 /// /// /// /// public bool SaveOtherInBill_K3(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKf_OtherInBill dal = new DAL.ClsKf_OtherInBill(); dal.omodel = oMain; //上传前必填项判断 if (oMain.HDeptID == 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; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.BeginTran(); } //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherInBillSub_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('1203','1203'," + 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_OtherInBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + oMain.HBillerID.ToString() + ",'" + sHSourceType + "'"); //更新关联数量 //回填K3关联数量 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateBillRelateData_New " + oMain.HInterID.ToString()); //判断库存更新控制状态(0为审核改变库存,1为保存改变库存) DataSet DS = oCn.RunProcReturn("exec h_p_IFK3_SaveUpdateStock ", "h_p_IFK3_SaveUpdateStock"); if (DS == null || DS.Tables[1].Rows.Count == 0) { sErrMsg = "判断库存更新控制状态,未知错误!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[1].Rows[0][0]) == 1) //1为保存改变库存 { //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); //审核单据 if (oSystemParameterMain.Kf_OtherInBill_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_OtherInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); } } else//0为审核改变库存 { //审核单据 if (oSystemParameterMain.Kf_OtherInBill_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_OtherInBill_Check_New " + oMain.HInterID.ToString() + "," + oMain.HBillerID.ToString()); //更新K3库存 oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateStock_New " + oMain.HInterID.ToString()); oCn.RunProc("exec h_p_IFK3_ToERP_OtherInBill_UpdateOrderStock_New " + oMain.HInterID.ToString()); } } } sErrMsg = "新增单据成功!"; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.Commit(); } return true; } catch (Exception e) { sErrMsg = "生成其他入库单失败!" + e.Message; if (oSystemParameterMain.WMS_CampanyName == "杭州智见" || oSystemParameterMain.WMS_CampanyName == "杭州斯莫尔") //系统参数 客户定制化名称 空白为通用 { } else { oCn.RollBack(); } return false; } } #endregion #region 其他入库CLOUD *New //生成入库单 [WebMethod] public bool set_SaveOtherInBill_CLD_New(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (sHSourceType == "-1") //无源单 { if (SaveOtherInBill_CLD(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else if (oSystemParameterMain.WMS_CampanyName == "森楷" || sHSourceType == "1241") //入库申请单 { if (SaveOtherInBill_StockInRequest_CLD_Merge_SenKai(oMain, sHSourceType, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; return false; } } /// /// 其他入库单 源单:无源单 /// /// /// /// public bool SaveOtherInBill_CLD(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherInBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1203','1203'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameterMain.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherInBill_PUBCLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherInBill_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherInBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherInBill_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; string sJson_MainCustom = ""; //主表自定义字段 string sJson_BillTypeID = ""; //单据类型 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oMain.HBillSubType == "" || oMain.HBillSubType == null) { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" },"; } else { sJson_BillTypeID = "\"FBillTypeID\":{ \"FNumber\":\"" + oMain.HBillSubType + "\" },"; } if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_RKLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_RKLX"]) + "\","; //入库类型 } else if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_ABCD_COMBO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_COMBO"]) + "\","; //其他入库业务类型 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"Model\":{\"FBillNo\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FID"]) + "\"," + sJson_BillTypeID + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDirect"]) + "\"," + sJson_Date + //"\"FSUPPLIERID\":{\"FNumber\":\"" + oMain.HSupplyID.ToString() + "\"}," + "\"FDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDEPTID"]) + "\"}," + //"\"FSTOCKERID\":{\"FName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //"\"FSTOCKERGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERGROUPID"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNOTE"]) + "\"," + "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FScanBox\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + sJson_StockStyle + sJson_MainCustom + "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //仓位 if (oSystemParameterMain.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { sJson_StockPlace = "\"FStockLocId\":{\"FSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockLocId"]) + "\"}},"; } 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"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else if (oSystemParameterMain.WMS_CampanyName == "凯贝奈特") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else if (oSystemParameterMain.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } sJson_Entry = sJson_Entry + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + sJson_FAUXPROPID + //"\"FAuxPropId\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}," + //"\"FAUXPROPID__FF100030\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100030"]) + "\"}," + //"\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100002"]) + "\"}}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FSTOCKSTATUSID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKSTATUSID"]) + "\"}," + "\"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"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"]) + "\"}}," + //"\"FLOT\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"}," + sJson_BatchNo + "\"FEntryNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryNote"]) + "\"," + //"\"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + //"\"FMTONO\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "," + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //"\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + "\"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + "\"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + sJson_SubCustom + "\"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}} "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_Link_FSId"]) + string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MISCELLANEOUS", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成其他入库单失败!" + HReturn; LogService.Write("生成其他入库单(源单:无源单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成其他入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成其他入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MISCELLANEOUS", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MISCELLANEOUS", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成其他入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核其他入库单(源单:无源单)成功!" + sRemark); sErrMsg = "生成并审核其他入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核其他入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成其他入库单(源单:无源单)成功!" + sRemark); sErrMsg = "生成其他入库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 其他入库单 源单:入库申请单 森楷专用 /// /// /// /// public bool SaveOtherInBill_StockInRequest_CLD_SenKai(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherInBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1203','1203'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_StockInRequestToOtherIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherInBill_StockInRequest_CLD_SenKai " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherInBill_StockInRequest_CLD_SenKai"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //"FID": 0, "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDirect"]) + "\"," + sJson_Date + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + "\"FDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptId"]) + "\"}," + "\"FACCEPTANCE\":{\"FStaffNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTANCE"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FSTOCKERGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERGROUPID"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNOTE"]) + "\"," + "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + //"FScanBox": "", //"F_paez_Text": "", sJson_MainCustom + "\"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_FAUXPROPID = ""; //辅助属性 string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (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_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } sJson_Entry = sJson_Entry + "{" + //"FEntryID": 0, " \"FInStockType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockType"]) + "\"," + " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + " \"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + sJson_BatchNo + sJson_FAUXPROPID + //"F_TFKO_Assistant2": { // "FNumber": "" //}, //"F_TFKO_Assistant": { // "FNumber": "" //}, //"F_TFKO_Assistant1": { // "FNumber": "" //}, //"F_TFKO_Assistant3": { // "FNumber": "" //}, //"F_TFKO_Text": "", //"F_TFKO_Text1": "", //"F_TFKO_Text2": "", //"F_TFKO_Text3": "", //"FExtAuxUnitQty": 0, " \"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + //"FEntryNote": "", " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSECUNITID"]) + "\"}," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + sJson_SubCustom + //"FSerialSubEntity": [ // { // "FDetailID": 0, // "FSerialNo": "", // "FSerialNote": "" // } //] " \"FEntity_Link\": [{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEQTYOLD"]) + "\"," + " \"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; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MISCELLANEOUS", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成其他入库单失败!" + HReturn; LogService.Write("生成其他入库单(源单:入库申请单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成其他入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成其他入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MISCELLANEOUS", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MISCELLANEOUS", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成其他入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核其他入库单(源单:入库申请单)成功!" + sRemark); sErrMsg = "生成并审核其他入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核其他入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成其他入库单(源单:入库申请单)成功!" + sRemark); sErrMsg = "生成其他入库单成功!单据号为:" + oMain.HBillNo; return true; } } /// /// 其他入库单 源单:入库申请单 多行数据合并下推生单 森楷专用 /// /// /// /// public bool SaveOtherInBill_StockInRequest_CLD_Merge_SenKai(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } 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.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherInBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1203','1203'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Kf_UpDateRelation_StockInRequestToOtherIn_Add " + oMain.HInterID.ToString()); sRemark = sRemark + " ;生成出入库单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; Ds = oCn.RunProcReturn("exec h_p_Kf_GetOtherInBill_StockInRequest_CLD_Merge_SenKai " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherInBill_StockInRequest_CLD_Merge_SenKai"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 string sJson_Date = ""; //单据日期 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); if (oSystemParameterMain.WMS_BillDateMode == "Y") //系统参数 单据日期是否取界面递入日期 { sJson_Date = "\"FDATE\":\"" + oMain.HDate.ToShortDateString() + "\","; } else { sJson_Date = "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\","; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //"FID": 0, "\"FBillNo\":\"" + oMain.HBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDirect"]) + "\"," + sJson_Date + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + "\"FDeptId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDeptId"]) + "\"}," + "\"FACCEPTANCE\":{\"FStaffNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FACCEPTANCE"]) + "\"}," + "\"FStockerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockerId"]) + "\"}," + "\"FSTOCKERGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERGROUPID"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNOTE"]) + "\"," + "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + //"FScanBox": "", //"F_paez_Text": "", sJson_MainCustom + "\"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_FAUXPROPID = ""; //辅助属性 string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_SubCustom = ""; //子表自定义字段 string sJson_Entry_Link = ""; //Link表递入数据 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (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_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100003\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //是否启用保质期控制 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //Link表递入数据 for (int j = 0; j < Ds.Tables[2].Rows.Count; j++) { if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["HEntryID"]) == Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["HEntryID"])) { if (sJson_Entry_Link != "") { sJson_Entry_Link = sJson_Entry_Link + " , "; } sJson_Entry_Link = sJson_Entry_Link + "{" + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FEntity_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FRuleId"]) + "\"," + " \"FEntity_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FSTableName"]) + "\"," + " \"FEntity_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FSBillId"]) + "\"," + " \"FEntity_Link_FBASEQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FBASEQTYOLD"]) + "\"," + " \"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[2].Rows[j]["FEntity_Link_FSId"]) + "\"" + " } "; } } sJson_Entry = sJson_Entry + "{" + //"FEntryID": 0, " \"FInStockType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockType"]) + "\"," + " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + sJson_StockPlace + " \"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + sJson_BatchNo + sJson_FAUXPROPID + //"F_TFKO_Assistant2": { // "FNumber": "" //}, //"F_TFKO_Assistant": { // "FNumber": "" //}, //"F_TFKO_Assistant1": { // "FNumber": "" //}, //"F_TFKO_Assistant3": { // "FNumber": "" //}, //"F_TFKO_Text": "", //"F_TFKO_Text1": "", //"F_TFKO_Text2": "", //"F_TFKO_Text3": "", //"FExtAuxUnitQty": 0, " \"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + //"FEntryNote": "", " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + sJson_FProduceDate + sJson_FExpiryDate + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FSRCBILLTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPEID"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSECUNITID"]) + "\"}," + " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + sJson_SubCustom + //"FSerialSubEntity": [ // { // "FDetailID": 0, // "FSerialNo": "", // "FSerialNote": "" // } //] " \"FEntity_Link\": [" + sJson_Entry_Link + "] } "; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MISCELLANEOUS", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成其他入库单失败!" + HReturn; LogService.Write("生成其他入库单(源单:入库申请单),多行数据合并下推生单失败失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成其他入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成其他入库单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MISCELLANEOUS", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MISCELLANEOUS", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成其他入库单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核其他入库单(源单:入库申请单),多行数据合并下推生单失败成功!" + sRemark); sErrMsg = "生成并审核其他入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核其他入库单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成其他入库单(源单:入库申请单),多行数据合并下推生单失败成功!" + sRemark); sErrMsg = "生成其他入库单成功!单据号为:" + oMain.HBillNo; return true; } } #endregion #region 其他入库CLOUD 只生成WMS单据 //生成入库单 [WebMethod] public bool set_SaveOtherInBill_MES(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (oSystemParameterMain.WMS_BillDateMode == "N") //系统参数 单据日期是否取界面递入日期 { oMain.HDate = DateTime.Today; } if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(oMain.HDate, ref sYear, ref sPeriod, ref s) == false) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + s; return false; } oMain.HYear = sYear; oMain.HPeriod = sPeriod; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_OtherInBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1203','1203'," + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HDate.ToShortDateString() + "','" + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 if (sHSourceType == "-1") //无源单 { } else if (sHSourceType == "1241") //入库申请单 { oCn.RunProc("exec h_p_Kf_UpDateRelation_StockInRequestToOtherIn_Add " + oMain.HInterID.ToString()); } else { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";错误的源单类型"; oCn.RollBack(); return false; } if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); } sErrMsg = "生成其他入库单成功!单据号为:" + oMain.HBillNo; oCn.Commit(); return true; } catch (Exception e) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";生成其他入库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 其他入库 校验模式* //校验其它入库 [WebMethod] public bool set_SaveOtherInBill_BillCheck(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg) { if (set_SaveOtherInBill_CLD_BillCheck(oMain, ref sErrMsg) == true) { //上传成功 return true; } else { //上传失败 sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; return false; } } public bool set_SaveOtherInBill_CLD_BillCheck(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_OtherInBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameter.omodel.Kf_OtherInBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_OtherInBillCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "校验上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); //写入条码出入库表 oCn.RunProc("EXEC h_p_Kf_ICStockBillSub_WMS_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + oMain.HBillNo + "'"); //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } if (oSystemParameter.omodel.Kf_OtherInBillCheck_MustQtyCtl == "完全等于应收") { string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MISCELLANEOUS", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MISCELLANEOUS", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核其他入库单失败!" + HReturn; oCn.RollBack(); return false; } else { oCn.Commit(); return true; } } else { sErrMsg = "校验审核其他入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } else { //根据TMP表 返回 修改信息 DataSet Ds2; Ds2 = oCn.RunProcReturn("exec h_p_Kf_GetOtherInBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherInBillCheck"); if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0 || Ds2.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[\"FEntity\",\"FQty\"]," + "\"NeedReturnFields\":[],\"IsDeleteEntry\":\"false\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ \"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[0].Rows[0]["FID"]) + "\"," + "\"FEntity\":["; string sJson_Entry = ""; for (int i = 0; i < Ds2.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{" + "\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds2.Tables[1].Rows[i]["FQty"]) + "\" " + "}"; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; //验证用户信息 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { //修改单据 var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MISCELLANEOUS", sJson }); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "修改其他入库单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { HReturn = ""; //提交单据 string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MISCELLANEOUS", sJson2 }); //审核单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MISCELLANEOUS", sJson3 }); HReturn = result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "校验审核其他入库单失败!" + HReturn + sJson; oCn.RollBack(); return false; } else { //重新同步其他入库单 oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_OtherIn '" + oMain.HBillNo + "'"); oCn.Commit(); return true; } } } else { sErrMsg = "校验审核其他入库单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } } catch (Exception e) { sErrMsg = "校验审核其他入库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion //生成器具采购入库单 [WebMethod] public bool set_SaveMouldProdInBill_New(Model.ClsSc_MouldProdInBillMain 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_OtherInBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD //{ //上传前必填项判断 //if (oMain.HDeptID == 0) //{ // sErrMsg = "部门没有选择!"; // return false; //} if (set_SaveMouldProdInBill_New(oMain, sHSourceType, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } //} sErrMsg = "保存器具采购入库单失败!" + sErrMsg; return false; } /// /// 器具采购入库单 /// /// /// /// public bool set_SaveMouldProdInBill_New(Model.ClsSc_MouldProdInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); 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; sErrMsg = DBUtility.ClsPub.isStrNull(oMain.HInterID) + DBUtility.ClsPub.isStrNull(oMain.HBillNo); oCn.BeginTran(); //生成出入库单据 //插入子表 //插入主表 oCn.RunProc("EXEC h_p_Kf_MouldProdInBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','"+oMain.HBillType+"'"); //插入主表 oCn.RunProc("Insert Into Sc_MouldStockBillMain " + "(HBillType,HBillSubType,HInterID,HDate,HBillNo" + ",HBillStatus,HRemark,HMaker,HMakeDate,HSCWHID" + ",HSupID,HEmpID,HManagerID,HWHID,HSecManagerID" + ",HKeeperID,HDeptID,HExplanation,HInnerBillNo,HRedBlueFlag" + ") " + " values('3801','3801'," + oMain.HInterID.ToString() + ",convert(varchar(10),getdate(),120),'" + oMain.HBillNo + "'" + ", '" + oMain.HBillStatus + "','" + oMain.HRemark + "','" + oMain.HMaker + "',convert(varchar(10),getdate(),120)," + oMain.HSCWHID.ToString() + ", " + oMain.HSupID.ToString() + "," + oMain.HEmpID.ToString() + "," + oMain.HManagerID.ToString() + "," + oMain.HWHID.ToString() + "," + oMain.HManagerID.ToString() + ", " + oMain.HKeeperID.ToString() + "," + oMain.HDeptID.ToString() + ",'" + oMain.HExplanation + "','" + oMain.HInnerBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ") "); oCn.Commit(); //更新关联数量 //if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 //{ // //审核单据 // //oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); //} return true; } catch (Exception e) { sErrMsg = "器具采购入库单失败!" + e.Message; oCn.RollBack(); return false; } } #region 其它入库CLOUD * //生成入库单 [WebMethod] public bool set_SaveOtherInBill_CLD(Model.ClsKf_OtherInBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (SaveOtherInBill_CLD(oMain, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!" + oMain.HBillNo; return true; } else { //"保存失败!"; sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + sErrMsg; return false; } } /// /// 其他入库单 /// /// /// /// public bool SaveOtherInBill_CLD(Model.ClsKf_OtherInBillMain 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_OtherInBillSub_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" + ",HStockStyle" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1203','1203'," + 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) + ",'" + oMain.HStockStyle + "'" + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 //审核单据 if (oSystemParameterMain.Kf_OtherInBill_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_GetOtherInBill_CLD " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetOtherInBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_StockStyle = ""; if (oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_RKLX\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_RKLX"]) + "\","; //入库类型 } else if (oSystemParameterMain.WMS_CampanyName == "四维尔") //系统参数 客户定制化名称 空白为通用 { sJson_StockStyle = "\"F_ABCD_COMBO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["F_ABCD_COMBO"]) + "\","; //其他入库业务类型 } else { sJson_StockStyle = ""; } string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"Model\":{\"FBillNo\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FID"]) + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FStockDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockDirect"]) + "\"," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + //"\"FSUPPLIERID\":{\"FNumber\":\"" + oMain.HSupplyID.ToString() + "\"}," + "\"FDEPTID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDEPTID"]) + "\"}," + //"\"FSTOCKERID\":{\"FName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //"\"FSTOCKERGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERGROUPID"]) + "\"}," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + "\"FNOTE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FNOTE"]) + "\"," + "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FScanBox\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FScanBox"]) + "\"," + sJson_StockStyle + "\"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_FAUXPROPID = ""; 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 (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"]) + "\"}},"; } } //辅助属性 if (oSystemParameterMain.WMS_CampanyName == "卓力" || oSystemParameterMain.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { sJson_FAUXPROPID = ""; } else { sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; } //自定义字段处理 sJson_Entry = sJson_Entry + "{\"FEntryID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryID"]) + "\"," + "\"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + sJson_FAUXPROPID + //"\"FAuxPropId\":{\"FAUXPROPID__FF100001\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}," + //"\"FAUXPROPID__FF100030\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100030"]) + "\"}," + //"\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID__FF100002"]) + "\"}}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FSTOCKSTATUSID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKSTATUSID"]) + "\"}," + "\"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"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"]) + "\"}}," + //"\"FLOT\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FLOT"]) + "\"}," + sJson_BatchNo + "\"FEntryNote\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryNote"]) + "\"," + //"\"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + //"\"FPRODUCEDATE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCEDATE"]) + "," + //"\"FMTONO\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "," + "\"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //"\"FProjectNo\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "," + "\"FExtAuxUnitQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitQty"]) + "," + "\"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + "\"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + "\"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + "\"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}} "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 其他入库单 1个物料1单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_MISCELLANEOUS", sJson }); if (oSystemParameterMain.Kf_OtherInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_MISCELLANEOUS", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_MISCELLANEOUS", 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 { oCn.Commit(); return true; } } else { sErrMsg = "其他入库单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "其他入库单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 工序汇报转移单 *生成生产入库单、领料出库单 //生成工序汇报转移单 [WebMethod] public bool set_SaveProcReportMoveBill_New(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, string HPPBomBillNo, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_PreUploadJudgment_ProcReportMove " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + HOutBillID.ToString() + ",'" + HOutBillNo + "','" + HPPBomBillNo + "'," + oMain.HOWNERID.ToString(), "h_p_WMS_PreUploadJudgment_ProcReportMove"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } if (set_SaveProcReportMoveBill_CLD_New(oMain, HOutBillID, HOutBillNo, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } sErrMsg = "保存工序汇报转移单失败!" + sErrMsg; return false; } #endregion #region 工序汇报转移单CLOUD *New //生成工序汇报转移单 [WebMethod] public bool set_SaveProcReportMoveBill_CLD_New(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (SaveProcReportMoveBill_CLD(oMain, HOutBillID, HOutBillNo, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!生产入库单号:" + oMain.HBillNo + ",生产领料单号:" + HOutBillNo; return true; } else { //"保存失败!"; sErrMsg = "生产入库单号:" + oMain.HBillNo + ",生产入库单ID:" + oMain.HInterID + ",生产领料单号:" + HOutBillNo + ",生产领料单ID:" + HOutBillID + ";" + sErrMsg; return false; } } /// /// 工序汇报转移单 生产入库单 源单:生产汇报单 生产领料单 源单:生产用料清单 /// /// /// /// public bool SaveProcReportMoveBill_CLD(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //建立一个 事务; 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','3711'"); //插入主表 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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1202','1202'," + 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.HBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOReportToProductIn_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); } oCn.Commit(); } catch (Exception e) { sErrMsg = "生成工序汇报转移中生产入库单失败ERP!" + e.Message; oCn.RollBack(); return false; } try { //根据TMP表 返回 子表信息 DataSet Ds; Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ICMOReport_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ICMOReport_CLD_New"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取工序汇报转移中生产入库单子表信息失败!"; return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOWNERTYPEID0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEID0"]) + "\"," + "\"FOWNERID0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERID0"]) + "\"}," + //\"FSTOCKERID\":{\"FNAME\":\"\"}, //\"FDescription\":\"\", "\"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISENTRUST"]) + "," + //\"FCurrId\":{\"FNumber\":\"\"}, //\"FEntrustInStockId\":\"0\", //\"FScanBox\":\"\", "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") //是否启用保质期控制 { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //仓位 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 + " {" + //\"FEntryID\":\"0\", " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FINSTOCKTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FINSTOCKTYPE"]) + "\"," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQTY"]) + "," + " \"FREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREALQTY"]) + "," + " \"FCostRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTWEIGHT"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FBASEMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEMUSTQTY"]) + "," + " \"FBASEREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEREALQTY"]) + "," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + sJson_BatchNo + " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FWORKSHOPID1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID1"]) + "\"}," + " \"FSHIFTGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSHIFTGROUPID"]) + "\"}," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + " \"FMemo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMemo"]) + "\"," + " \"FSTOCKUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKUNITID"]) + "\"}," + " \"FSTOCKREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKREALQTY"]) + "," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSECUNITID"]) + "\"}," + //\"FSecRealQty\":\"0\", " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FBASEPRDREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEPRDREALQTY"]) + "," + //\"FIsFinished\":\"false\", //\"FStockStatusId\":{\"FNumber\":\"\"}, " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + " \"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + sJson_FProduceDate + //\"FSelReStkQty\":\"0\", sJson_FExpiryDate + //\"FBaseSelReStkQty\":\"0\", " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"," + " \"FEntity_Link_FBasePrdRealQtyOld\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQtyOld"]) + "," + " \"FEntity_Link_FBasePrdRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQty"]) + "" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } 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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 入库单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_INSTOCK", sJson }); //调用保存方式 //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildProductIn '" + oMain.HBillNo + "','3711'"); if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", sJson3 }); //审核单据 HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); } else { HReturn = result.ToString(); } if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "工序汇报转移生成生产入库单失败!" + HReturn + sJson; return false; } else { if (SaveMateOutBill_ProcReportMove_CLD(oMain, HOutBillID, HOutBillNo, oSystemParameterMain, ref sErrMsg)) { return true; } else { return false; } } } else { sErrMsg = "工序汇报转移生成生产入库单失败!登录失败!"; return false; } } } catch (Exception e) { sErrMsg = "工序汇报转移生成生产入库单失败!" + e.Message; return false; } } /// /// 工序汇报转移单 生产领料单 (源单:生产用料清单) /// /// /// /// public bool SaveMateOutBill_ProcReportMove_CLD(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_MateOutBillSub_Insert_ProcReportMove " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + HOutBillID.ToString() + ",'" + HOutBillNo + "'"); //插入主表 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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1204','1204'," + HOutBillID.ToString() + ",'" + HOutBillNo + "',convert(varchar(10),getdate(),120),'生产任务单-投料'" + ", " + 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.HBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_PPBomToMateOut_Add " + HOutBillID.ToString()); if (oSystemParameterMain.Kf_MateOutBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HOutBillID.ToString()); } //根据TMP表 返回 信息 DataSet Ds; Ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutBill_ProcReportMove_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + HOutBillID.ToString() + ",'" + HOutBillNo + "'," + oMain.HOWNERID.ToString(), "h_p_Kf_GetMateOutBill_ProcReportMove_CLD_New"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取工序汇报转移中生产领料单子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + HOutBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPrdOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPrdOrgId"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOwnerTypeId0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeId0"]) + "\"," + //\"FOwnerId0\":{\"FNumber\":\"\"}, "\"FPickerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPickerId"]) + "\"}," + "\"FSTOCKERID\":{\"FNAME\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKERID"]) + "\"}," + //\"FDescription\":\"\", "\"FCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FCurrId"]) + "\"}," + "\"FIsCrossTrade\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsCrossTrade"]) + "\"," + "\"FVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FVmiBusiness"]) + "\"," + //\"FScanBox\":\"\", //\"FSourceType\":\"\", "\"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 = ""; 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 (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 + "{" + //\"FEntryID\":\"0\", "\"FParentMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentMaterialId"]) + "\"}," + "\"FBaseStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseStockActualQty"]) + "\"," + //\"FConsome\":\"\", //\"FFPMBillNo\":\"\", "\"FOptQueue\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptQueue"]) + "\"," + "\"FReserveType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReserveType"]) + "\"," + "\"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + "\"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + "\"FAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAppQty"]) + "\"," + "\"FActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActualQty"]) + "\"," + "\"FEntryVmiBusiness\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryVmiBusiness"]) + "\"," + //\"FOptPlanBillNo\":\"\", "\"FStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockId"]) + "\"}," + //\"FOptPlanBillId\":\"0\", sJson_StockPlace + //\"FWorkCenterId\":{\"FNUMBER\":\"\"}, //\"FOptDetailId\":\"0\", sJson_BatchNo + //\"FCobyBomEntryID\":\"0\", "\"FProcessId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\"}," + "\"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + "\"FGroupRow\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FGroupRow"]) + "\"," + "\"FStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockStatusId"]) + "\"}," + //\"FProduceDate\":\"1900-01-01\", //\"FEntrtyMemo\":\"\", "\"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + //\"FProjectNo\":\"\", "\"FMoBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoBillNo"]) + "\"," + "\"FMoEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + "\"," + "\"FPPBomEntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomEntryId"]) + "\"," + "\"FOperId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperId"]) + "\"," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FStockUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockUnitId"]) + "\"}," + "\"FStockAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockAppQty"]) + "\"," + "\"FStockActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FStockActualQty"]) + "\"," + //\"FStockAllowOverQty\":\"0\", "\"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecActualQty\":\"0\", //\"FSecAllowOverQty\":\"0\", "\"FMoId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + "\"," + "\"FMoEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntrySeq"]) + "\"," + //\"FAllowOverQty\":\"0\", "\"FPPBomBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPPBomBillNo"]) + "\"," + "\"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + "\"FBaseAppQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseAppQty"]) + "\"," + "\"FBaseActualQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseActualQty"]) + "\"," + //\"FBaseAllowOverQty\":\"0\", "\"FEntryWorkShopId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntryWorkShopId"]) + "\"}," + "\"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + "\"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FExpiryDate\":\"1900-01-01\", "\"FSrcBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillType"]) + "\"," + "\"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + //\"FPrice\":\"0\", "\"FEntrySrcInterId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcInterId"]) + "\"," + //\"FAmount\":\"0\", "\"FEntrySrcEnteryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEnteryId"]) + "\"," + "\"FEntrySrcEntrySeq\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntrySrcEntrySeq"]) + "\"," + "\"FParentOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerTypeId"]) + "\"," + "\"FParentOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FParentOwnerId"]) + "\"}," + //\"FSRCBIZBILLTYPE\":{\"FNAME\":\"\"}, //\"FSRCBIZBILLNO\":\"\", //\"FSRCBIZINTERID\":\"0\", //\"FSRCBIZENTRYID\":\"0\", //\"FSRCBIZENTRYSEQ\":\"0\", "\"FPickingStatus\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPickingStatus"]) + "\"," + // "\"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] "\"FEntity_Link\": [ { " + "\"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + "\"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + "\"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_FBASEACTUALQTYOLD\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBASEACTUALQTYOLD"]) + "\"," + "\"FEntity_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLowId\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\"}}"; } 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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成领料出库单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_PickMtrl", sJson }); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMateOut '" + HOutBillNo + "','3720'"); if (oSystemParameterMain.Kf_MateOutBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + HOutBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_PickMtrl", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + HOutBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_PickMtrl", 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 { oCn.Commit(); return true; } } else { sErrMsg = "工序汇报转移中生成生产领料单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "工序汇报转移中生成生产领料单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 工序汇报转移单 *生成生产入库单、直接调拨单 //生成工序汇报转移单 生产入库单、直接调拨单 [WebMethod] public bool set_SaveProcReportMoveBill_MoveStock(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, string HPPBomBillNo, Int64 HSCWHID, Int64 HSCSPID, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_PreUploadJudgment_ProcReportMoveStock " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + HOutBillID.ToString() + ",'" + HOutBillNo + "','" + HPPBomBillNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + oMain.HOWNERID.ToString(), "h_p_WMS_PreUploadJudgment_ProcReportMoveStock"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } if (set_SaveProcReportMoveBill_MoveStock_CLD_New(oMain, HOutBillID, HOutBillNo, oSystemParameter.omodel, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } sErrMsg = "保存工序汇报转移单失败!" + sErrMsg; return false; } //生成工序汇报转移单 [WebMethod] public bool set_SaveProcReportMoveBill_MoveStock_CLD_New(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { if (SaveProcReportMoveBill_MoveStock_CLD(oMain, HOutBillID, HOutBillNo, oSystemParameterMain, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!生产入库单号:" + oMain.HBillNo + ",直接调拨单号:" + HOutBillNo; return true; } else { //"保存失败!"; sErrMsg = "生产入库单号:" + oMain.HBillNo + ",生产入库单ID:" + oMain.HInterID + ",直接调拨单号:" + HOutBillNo + ",直接调拨单ID:" + HOutBillID + ";" + sErrMsg; return false; } } /// /// 工序汇报转移单 生产入库单 源单:生产汇报单 直接调拨单 源单:生产用料清单 /// /// /// /// public bool SaveProcReportMoveBill_MoveStock_CLD(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //建立一个 事务; 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; oCn.BeginTran(); //生成出入库单据 //插入子表 oCn.RunProc("EXEC h_p_Kf_ProductInBillSub_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','3711'"); //插入主表 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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1202','1202'," + 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.HBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOReportToProductIn_Add " + oMain.HInterID.ToString()); if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + oMain.HInterID.ToString()); } oCn.Commit(); } catch (Exception e) { sErrMsg = "生成工序汇报转移中生产入库单失败ERP!" + e.Message; oCn.RollBack(); return false; } try { //根据TMP表 返回 子表信息 DataSet Ds; Ds = oCn.RunProcReturn("exec h_p_Kf_GetProductInBill_ICMOReport_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'", "h_p_Kf_GetProductInBill_ICMOReport_CLD_New"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取工序汇报转移中生产入库单子表信息失败!"; return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"false\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\": { \"FBILLNO\":\"" + oMain.HBillNo + "\"," + //\"FID\":\"0\", "\"FBillType\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\"}," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FSTOCKORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSTOCKORGID"]) + "\"}," + //\"FStockId0\":{\"FNumber\":\"\"}, "\"FPRDORGID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FPRDORGID"]) + "\"}," + //\"FWorkShopId\":{\"FNumber\":\"\"}, "\"FOWNERTYPEID0\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERTYPEID0"]) + "\"," + "\"FOWNERID0\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOWNERID0"]) + "\"}," + //\"FSTOCKERID\":{\"FNAME\":\"\"}, //\"FDescription\":\"\", "\"FISENTRUST\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FISENTRUST"]) + "," + //\"FCurrId\":{\"FNumber\":\"\"}, //\"FEntrustInStockId\":\"0\", //\"FScanBox\":\"\", "\"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_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") //是否启用保质期控制 { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //仓位 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 + " {" + //\"FEntryID\":\"0\", " \"FSRCENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYID"]) + "," + " \"FIsNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsNew"]) + "," + " \"FMATERIALID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMATERIALID"]) + "\"}," + " \"FCHECKPRODUCT\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCHECKPRODUCT"]) + "," + " \"FINSTOCKTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FINSTOCKTYPE"]) + "\"," + " \"FPRODUCTTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPRODUCTTYPE"]) + "\"," + " \"FUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUNITID"]) + "\"}," + " \"FMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMUSTQTY"]) + "," + " \"FREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREALQTY"]) + "," + " \"FCostRate\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCOSTWEIGHT"]) + "," + " \"FBASEUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEUNITID"]) + "\"}," + " \"FBASEMUSTQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEMUSTQTY"]) + "," + " \"FBASEREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEREALQTY"]) + "," + " \"FOWNERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERTYPEID"]) + "\"," + " \"FOWNERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOWNERID"]) + "\"}," + " \"FSTOCKID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKID"]) + "\"}," + sJson_StockPlace + " \"FBOMID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBOMID"]) + "\"}," + sJson_BatchNo + " \"FISBACKFLUSH\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISBACKFLUSH"]) + "," + " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}}," + " \"FMTONO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMTONO"]) + "\"," + " \"FPROJECTNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPROJECTNO"]) + "\"," + " \"FWORKSHOPID1\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWORKSHOPID1"]) + "\"}," + " \"FSHIFTGROUPID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSHIFTGROUPID"]) + "\"}," + " \"FMOBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOBILLNO"]) + "\"," + " \"FMOID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOID"]) + "," + " \"FMOENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYID"]) + "," + " \"FMOENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOENTRYSEQ"]) + "," + " \"FMemo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMemo"]) + "\"," + " \"FSTOCKUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKUNITID"]) + "\"}," + " \"FSTOCKREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSTOCKREALQTY"]) + "," + " \"FSECUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSECUNITID"]) + "\"}," + //\"FSecRealQty\":\"0\", " \"FSRCBILLTYPE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLTYPE"]) + "\"," + " \"FSRCBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCBILLNO"]) + "\"," + " \"FSRCINTERID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCINTERID"]) + "," + " \"FBASEPRDREALQTY\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBASEPRDREALQTY"]) + "," + //\"FIsFinished\":\"false\", //\"FStockStatusId\":{\"FNumber\":\"\"}, " \"FSRCENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSRCENTRYSEQ"]) + "," + " \"FMOMAINENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMOMAINENTRYID"]) + "," + " \"FKEEPERTYPEID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERTYPEID"]) + "\"," + " \"FKEEPERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKEEPERID"]) + "\"}," + sJson_FProduceDate + //\"FSelReStkQty\":\"0\", sJson_FExpiryDate + //\"FBaseSelReStkQty\":\"0\", " \"FSNUNITID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUNITID"]) + "\"}," + " \"FQAIP\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQAIP"]) + "\"," + " \"FREQSRC\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQSRC"]) + "\"," + " \"FREQBILLNO\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLNO"]) + "\"," + " \"FREQBILLID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQBILLID"]) + "," + " \"FREQENTRYSEQ\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYSEQ"]) + "," + " \"FREQENTRYID\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FREQENTRYID"]) + "," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialId\":{\"FNumber\":\"\"}, //\"FSerialNote\":\"\"}] " \"FEntity_Link\": [ { " + " \"FEntity_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FEntity_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"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"]) + "\"," + " \"FEntity_Link_FBasePrdRealQtyOld\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQtyOld"]) + "," + " \"FEntity_Link_FBasePrdRealQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FBasePrdRealQty"]) + "" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } 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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 入库单 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "PRD_INSTOCK", sJson }); //调用保存方式 //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildProductIn '" + oMain.HBillNo + "','3711'"); if (oSystemParameterMain.Kf_ProductInBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PRD_INSTOCK", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PRD_INSTOCK", sJson3 }); //审核单据 HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); } else { HReturn = result.ToString(); } if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "工序汇报转移生成生产入库单失败!" + HReturn + sJson; return false; } else { if (SaveMoveStockBill_ProcReportMove_CLD(oMain, HOutBillID, HOutBillNo, oSystemParameterMain, ref sErrMsg)) { return true; } else { return false; } } } else { sErrMsg = "工序汇报转移生成生产入库单失败!登录失败!"; return false; } } } catch (Exception e) { sErrMsg = "工序汇报转移生成生产入库单失败!" + e.Message; return false; } } /// /// 工序汇报转移单 直接调拨单 (源单:生产用料清单) /// /// /// /// public bool SaveMoveStockBill_ProcReportMove_CLD(Model.ClsKf_ProductInBillMain oMain, Int64 HOutBillID, string HOutBillNo, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); 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; oCn.BeginTran(); //写入WMS调拨单 //插入子表 oCn.RunProc("EXEC h_p_Kf_MoveStockBillSub_Insert_ProcReportMove " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + HOutBillID.ToString() + ",'" + HOutBillNo + "'"); //插入主表 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" + ",HSTOCKORGID,HOWNERID" + ") " + " values('1207','1207'," + HOutBillID.ToString() + ",'" + HOutBillNo + "',convert(varchar(10),getdate(),120),'生产任务单-投料'" + ", " + 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.HBillNo + "'," + DBUtility.ClsPub.BoolToString(oMain.HRedBlueFlag) + ", " + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ") "); //更新关联数量 oCn.RunProc("exec h_p_Sc_UpDateMoveStockPPBomRelation_Add " + HOutBillID.ToString()); if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { //审核单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + oMain.HMaker + "',HCheckDate=convert(varchar(10),getdate(),120) where HInterID= " + HOutBillID.ToString()); } //根据TMP表 返回 信息 DataSet Ds; Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveStockBill_ProcReportMove_CLD_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "'," + HOutBillID.ToString() + ",'" + HOutBillNo + "'," + oMain.HOWNERID.ToString(), "h_p_Kf_GetMoveStockBill_ProcReportMove_CLD_New"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取工序汇报转移中直接调拨单子表信息失败!"; oCn.RollBack(); return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\"," + "\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\"," + "\"Model\":{ " + //\"FID\":\"0\", "\"FBillNo\":\"" + HOutBillNo + "\"," + "\"FBillTypeID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\"}," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\"}," + "\"FSaleOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\"}," + "\"FStockOutOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\"}," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\"}," + "\"FStockOrgId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\"}," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\"}," + "\"FOwnerIdHead\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\"}," + //\"FStockerId\":{\"FNumber\":\"\"}, //\"FStockerGroupId\":{\"FNumber\":\"\"}, "\"FDATE\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDATE"]) + "\"," + //\"FNote\":\"\", "\"FBaseCurrId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\"}," + "\"FSUPPLIERID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSUPPLIERID"]) + "\"}," + //\"FCustID\":{\"FNUMBER\":\"\"}, //\"FScanBox\":\"\", //\"FThirdSystem\":\"\", //\"FThirdSrcBillNo\":\"\", //\"FThirdSrcId\":\"\", "\"FBillEntry\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FAUXPROPID = ""; 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 = ""; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } // sJson_Entry = sJson_Entry + " {" + //\"FEntryID\":\"0\", " \"FMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\"}," + //" \"FAuxPropId\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAuxPropId"]) + "\"}}," + sJson_FAUXPROPID + " \"FUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\"}," + " \"FQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "," + sJson_BatchNo + " \"FSrcStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\"}," + sJson_SrcStockPlace + //\"FPrice\":\"0\", " \"FDestStockId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\"}," + sJson_DestStockPlace + " \"FBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\"}," + " \"FSrcStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\"}," + //\"FDeliChkQualifyType\":\"\", //\"FAmount\":\"0\", //\"FProduceDate\":\"1900-01-01\", " \"FDestStockStatusId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\"}," + " \"FMtoNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMtoNo"]) + "\"," + " \"FBusinessDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBusinessDate"]) + "\"," + //\"FExpiryDate\":\"1900-01-01\", " \"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + " \"FOwnerOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\"}," + " \"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + " \"FOwnerId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\"}," + //\"FNoteEntry\":\"\", " \"FProjectNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProjectNo"]) + "\"," + //\"FOutJoinQty\":\"0\", " \"FSecUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSecUnitId"]) + "\"}," + //\"FSecQty\":\"0\", //\"FBASEOUTJOINQTY\":\"0\", " \"FBaseUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\"}," + " \"FExtAuxUnitId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExtAuxUnitId"]) + "\"}," + //\"FExtAuxUnitQty\":\"0\", " \"FBaseQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "," + " \"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + " \"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + //\"FActQty\":\"0\", " \"FKeeperId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\"}," + " \"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + " \"FKeeperOutId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\"}," + //\"FDiscountRate\":\"0\", //\"FRepairQty\":\"0\", //\"FRETURNNOTE\":\"\", " \"FDestLot\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestLot"]) + "\"}," + " \"FDestMaterialId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\"}," + " \"FDestBomId\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestBomId"]) + "\"}," + //\"FServiceContext\":\"\", //\"FPriceUnitID\":{\"FNumber\":\"\"}, //\"FPriceQty\":\"0\", //\"FPriceBaseQty\":\"0\", //\"FSOEntryId\":\"0\", " \"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + //\"FQmEntryId\":\"0\", //\"FConvertEntryId\":\"0\", //\"FThirdSrcEntryId\":\"\", " \"FOrderNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOrderNo"]) + "\"," + " \"FSNUnitID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSNUnitID"]) + "\"}," + " \"FORDERTYPE\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FORDERTYPE"]) + "\"}," + " \"FSrcBillTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillTypeId"]) + "\"," + " \"FSrcBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcBillNo"]) + "\"," + //\"FSerialSubEntity\":[{\"FDetailID\":\"0\", //\"FSerialNo\":\"\", //\"FSerialNote\":\"\"}] " \"FBillEntry_Link\": [{" + " \"FBillEntry_Link_FFlowId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowId"]) + "\"," + " \"FBillEntry_Link_FFlowLineId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FFlowLineId"]) + "\"," + " \"FBillEntry_Link_FRuleId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FRuleId"]) + "\"," + " \"FBillEntry_Link_FSTableName\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSTableName"]) + "\"," + " \"FBillEntry_Link_FSBillId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSBillId"]) + "\"," + " \"FBillEntry_Link_FSId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FEntity_Link_FSId"]) + "\"" + " } ]," + " \"FBFLOWID\":{\"FID\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLOWID"]) + "\"}}"; } 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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } //生成 直接调拨 string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); //生成单据后更新自定义字段 oCn.RunProc("exec h_p_Sc_UpDateSelfFildMove '" + HOutBillNo + "','3720'"); if (oSystemParameterMain.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", 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 { oCn.Commit(); return true; } } else { sErrMsg = "工序汇报转移中生成直接调拨单失败!登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "工序汇报转移中生成直接调拨单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 收料通知单(审核) * //审核收料通知单 [WebMethod] public bool set_CheckPOInStockBill_New(Model.ClsCg_POInStockBillMain oMain, ref string sErrMsg) { if (set_CheckPOInStockBill_CLD(oMain, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } sErrMsg = "审核收料通知单失败!" + sErrMsg; return false; } #endregion #region 审核收料通知单CLOUD * //审核收料通知单CLOUD [WebMethod] public bool set_CheckPOInStockBill_CLD(Model.ClsCg_POInStockBillMain oMain, ref string sErrMsg) { //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "PUR_ReceiveBill", sJson2 }); //提交单据 string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + oMain.HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "PUR_ReceiveBill", sJson3 }); //审核单据 string HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "审核收料通知单失败!单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";" + HReturn; return false; } else { return true; } } else { sErrMsg = "审核收料通知单失败!登录失败!"; return false; } } #endregion #region 收料通知单 * //审核收料通知单K3 [WebMethod] public bool set_CheckPOInStockBill(Model.ClsCg_POInStockBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsCg_POInStockBill_K3 dal = new DAL.ClsCg_POInStockBill_K3(); if (dal.CheckBill(oMain.HInterID, oMain.HBillerID, ref sErrMsg)) { //sErrMsg = "审核成功!"; return true; } else { //sErrMsg = "审核失败!"; return false; } } #endregion #region 受托加工入库 * //生成受托加工入库K3 [WebMethod] public bool set_SaveSTJGInBill(Model.ClsKf_STJGInBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_STJGInBill_K3 dal = new DAL.ClsKf_STJGInBill_K3(); dal.omodel = oMain; if (dal.AddBill_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } #endregion #region 受托加工领料出库 * //核对受托加工领料出库K3 [WebMethod] public bool set_CheckSTJGOutBill(Model.ClsKf_STJGOutBillMain_K3 oMain, ref string sErrMsg) { DAL.ClsKf_STJGOutBill_K3 dal = new DAL.ClsKf_STJGOutBill_K3(); dal.omodel = oMain; if (dal.AddBill_WMS_PDA(ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } //核对受托加工领料出库K3 [WebMethod] public bool set_CheckSTJGOutBill_Row(Int64 HSourceInterID, Int64 HSourceEntryID, ref string sErrMsg) { DAL.ClsKf_STJGOutBill_K3 dal = new DAL.ClsKf_STJGOutBill_K3(); if (dal.AddBill_WMS_PDA(HSourceInterID, HSourceEntryID, ref sErrMsg)) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } } #endregion #region 工序汇报单CLOUD [WebMethod] public bool set_SaveProExchReport_CLD(double HQty, double HProcessFailQty, double HMaterialFailQty, double HFReworkQty, double HQuaQty, string HProcNo, string HProcExchBillNo, string HEmpID, string HTime, string HORGANIZATIONSNO, string HBillNo, ref string sErrMsg) { if (SaveProExchReport_CLD(HQty, HProcessFailQty, HMaterialFailQty, HFReworkQty, HQuaQty, HProcNo, HProcExchBillNo, HEmpID, HTime, HORGANIZATIONSNO, HBillNo, ref sErrMsg)) { //"保存成功!"; sErrMsg = "保存成功!"; return true; } else { //"保存失败!"; sErrMsg = sErrMsg; return false; } } /// /// 工序汇报单CLOUD /// /// /// /// public bool SaveProExchReport_CLD(double HQty, double HProcessFailQty, double HMaterialFailQty, double HFReworkQty, double HQuaQty, string HProcNo, string HProcExchBillNo, string HEmpID, string HTime, string HORGANIZATIONSNO, string HBillNo, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet Ds; //根据TMP表 返回 信息 Ds = oCn.RunProcReturn("exec h_p_Kf_GetProExchReportBill_CLD " + HQty.ToString() + "," + HProcessFailQty.ToString() + "," + HMaterialFailQty.ToString() + "," + HFReworkQty.ToString() + "," + HQuaQty.ToString() + ",'" + HProcNo + "','" + HProcExchBillNo + "','" + HEmpID + "','" + HTime + "','" + HORGANIZATIONSNO + "','" + HBillNo + "'", "h_p_Kf_GetProExchReportBill_CLD"); if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "获取子表信息失败!"; return false; } else { string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[],\"Model\": { \"FBILLNO\":\"" + HBillNo + "\", " + "\"FPRDORGID\":{\"FNumber\":\"" + HORGANIZATIONSNO.ToString() + "\"}," + "\"FWorkShopID\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FWorkShopID"]) + "\"}," + "\"FBillTypeID\": {\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillType"]) + "\" }," + "\"FIsEntrust\": " + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsEntrust"]) + " ," + "\"FBillGenType\": \"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillGenType"]) + "\" ," + " \"FEntity\": [ "; string sJson_Entry = ""; for (int i = 0; i < Ds.Tables[1].Rows.Count; i++) { if (sJson_Entry != "") { sJson_Entry = sJson_Entry + " , "; } sJson_Entry = sJson_Entry + "{ \"FSEQ\":\"" + Convert.ToString(i + 1) + "\", " + "\"FSourceBillType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSourceBillType"]) + "\" , " + "\"FSourceBillNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSourceBillNo"]) + "\" , " + "\"FSrcInterId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcInterId"]) + " , " + "\"FSrcEntrySeq\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcEntrySeq"]) + " , " + "\"FSrcEntryId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcEntryId"]) + " , " + "\"FMoId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoId"]) + " , " + "\"FMoEntryId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoEntryId"]) + " , " + "\"FOptPlanId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptPlanId"]) + " , " + "\"FOptPlanSeqId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptPlanSeqId"]) + " , " + "\"FSeqType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSeqType"]) + "\" , " + "\"FOptPlanOptId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptPlanOptId"]) + " , " + "\"FMoNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoNumber"]) + "\" , " + "\"FMoRowNumber\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoRowNumber"]) + " , " + "\"FSeqNumber\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSeqNumber"]) + " , " + "\"FOperNumber\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperNumber"]) + " , " + "\"FMaterialId\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" } , " + "\"FUnitID\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" } , " + "\"FProcessFailQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessFailQty"]) + " , " + "\"FMaterialFailQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialFailQty"]) + " , " + "\"FFailQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FFailQty"]) + " , " + "\"FReworkQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReworkQty"]) + " , " + "\"FIsReworkRpt\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsReworkRpt"]) + " , " + "\"FFinishQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FFinishQty"]) + " , " + "\"FQuaQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQuaQty"]) + " , " + "\"FPrdType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrdType"]) + "\" , " + "\"FOperDescription\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOperDescription"]) + "\" , " + "\"FReportType\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReportType"]) + "\" } , " + "\"FConfOptStatus\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FConfOptStatus"]) + "\" , " + "\"FTotalQuaQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTotalQuaQty"]) + " , " + "\"FPlanningQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPlanningQty"]) + " , " + "\"FActivity1Id\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActivity1Id"]) + "\" } , " + "\"FActivity1UnitID\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FActivity1UnitID"]) + "\" } , " + //,\"FSetStartTime\":\"2018-12-31 11:20:07\" //,\"FSetEndTime\":\"2018-12-31 11:20:07\" //,\"FProcessStartTime\":\"2018-12-31 11:20:07\" //,\"FProcessEndTime\":\"2018-12-31 00:00:00\" //,\"FTeardownStartTime\":\"2018-12-31 00:00:00\" //,\"FTeardownEndTime\":\"2018-12-31 00:00:00\", "\"FStockInOrgId\" : { \"FNumber\":\"" + HORGANIZATIONSNO.ToString() + "\" } , " + "\"FMoPrdOrgId\" : { \"FNumber\":\"" + HORGANIZATIONSNO.ToString() + "\" } , " + "\"FMoPrdDept\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMoPrdDept"]) + "\" } , " + "\"FOptBillCreatType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptBillCreatType"]) + "\" , " + "\"FBaseUnitID\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitID"]) + "\" } , " + "\"FBaseFinishQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseFinishQty"]) + " , " + "\"FPrdUnitID\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrdUnitID"]) + "\" } , " + "\"FPrdFinishQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPrdFinishQty"]) + "\" , " + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\" , " + "\"FOwnerId\" : { \"FNumber\":\"" + HORGANIZATIONSNO.ToString() + "\" } , " + "\"FBomId\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBomId"]) + "\" } , " + "\"FOptPlanNo\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOptPlanNo"]) + "\", " + "\"FBFLowId\" : { \"Fid\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBFLowId"]) + "\" } , " + "\"FRouteId\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FRouteId"]) + "\" } , " + "\"FUnitTransHeadQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitTransHeadQty"]) + " , " + "\"FUnitTransOperQty\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitTransOperQty"]) + " , " + "\"FQualityCheck\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQualityCheck"]) + " , " + "\"FWorkCenterId\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FWorkCenterId"]) + "\" } , " + "\"FProcessId\" : { \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProcessId"]) + "\" } , " + "\"FIsFirstPieceInspect\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsFirstPieceInspect"]) + " , " + "\"FIsInputPrd\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FIsInputPrd"]) + ", " + "\"FManualAddNew\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FManualAddNew"]) + ", " + "\"FReworkType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FReworkType"]) + "\" " + " } "; } //"\"FInStockEntry_Link_FSId\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FInStockEntry_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; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; //DataSet ds11 = get_SaveCLOUDUseNameandPsd(oMain.HInterID); //if (ds11 == null || ds11.Tables[0].Rows.Count == 0) //{ //} //else //{ // sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); // sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); //} //生成 入库单 1个物料1单 ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "SFC_OperationReport", sJson }); string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "SFC_OperationReport", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "SFC_OperationReport", sJson3 }); string HReturn = result.ToString() + "," + result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "工序汇报单失败!" + HReturn + sJson; return false; } else { return true; } } else { sErrMsg = "工序汇报单失败!登录失败!"; return false; } } } catch (Exception e) { sErrMsg = "工序汇报单失败!" + e.Message; return false; } } #endregion #region 不良评审单 * //生成不良评审单 [WebMethod] public bool set_SaveNoPassProdCheckBill_New(Model.ClsQC_NoPassProdCheckBillMain oMain, string sHSourceType, string BadReasonList, 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.Sc_ICMOReportBill_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE //{ // return false; //} //if (oSystemParameter.omodel.Sc_ICMOReportBill_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD //{ if (SaveNoPassProdCheckBill_CLD_New(oMain, sHSourceType, oSystemParameter.omodel, BadReasonList, ref sErrMsg) == true) { //"保存成功!"; return true; } else { //"保存失败!"; return false; } //} sErrMsg = "保存生产汇报单失败!" + sErrMsg; return false; } public bool SaveNoPassProdCheckBill_CLD_New(Model.ClsQC_NoPassProdCheckBillMain oMain, string sHSourceType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, string BadReasonList, ref string sErrMsg) { 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; } //获取单号 string sBillNo = ""; Int64 sInterID = 0; if (get_MaxBillNoAndID_New("7509", ref sBillNo, ref sInterID, ref DBUtility.ClsPub.sExeReturnInfo) == false) { sErrMsg = "获取单号失败"; return false; } //保存完毕后处理 DAL.ClsQC_NoPassProdCheckBill BillNew = new DAL.ClsQC_NoPassProdCheckBill(); BillNew.omodel.HYear = sYear; BillNew.omodel.HPeriod = sPeriod; //固定赋值================================= BillNew.omodel.HBillNo = sBillNo; //在赋值类前就处理好字符串和数字 BillNew.omodel.HDate = DateTime.Today; BillNew.omodel.HRemark = "在线检验"; //==================================================== BillNew.omodel.HSourceID = oMain.HSourceID; BillNew.omodel.HMaterID = oMain.HMaterID; BillNew.omodel.HProcID = oMain.HProcID; BillNew.omodel.HWorkCenterID = oMain.HWorkCenterID; BillNew.omodel.HICMOInterID = oMain.HICMOInterID; BillNew.omodel.HICMOBillNo = oMain.HICMOBillNo; BillNew.omodel.HInStockQty = oMain.HInStockQty; BillNew.omodel.HCheckQty = oMain.HCheckQty; BillNew.omodel.HRightQty = oMain.HRightQty; BillNew.omodel.HBadQty = oMain.HBadQty; BillNew.omodel.HPlanQty = oMain.HPlanQty; BillNew.omodel.HBadPNL = oMain.HBadPNL; BillNew.omodel.HPlanPNL = oMain.HPlanPNL; BillNew.omodel.HFirstCheckEmp = oMain.HFirstCheckEmp; BillNew.omodel.HCheckerResult = oMain.HCheckerResult; BillNew.omodel.HNote = oMain.HNote; //BillNew.omodel.HRedBlueFlag = redblue.Checked; BillNew.omodel.HProcExchInterID = oMain.HProcExchInterID;//源单主内码 BillNew.omodel.HProcExchEntryID = oMain.HProcExchEntryID;//源单子内码 BillNew.omodel.HProcExchBillNo = oMain.HProcExchBillNo;//源单类型 BillNew.omodel.HMainSourceInterID = oMain.HMainSourceInterID; BillNew.omodel.HGroupName = oMain.HGroupName; BillNew.omodel.HOrderProcNo = oMain.HOrderProcNo; BillNew.omodel.HProcExchQty = oMain.HProcExchQty; //根据分号拆分不良原因 string[] sBadReason; sBadReason = BadReasonList.Split(Convert.ToChar(";")); //明细类赋值 DAL.ClsGy_Source_View oSource = new DAL.ClsGy_Source_View(); BillNew.DetailColl = new List(); for (int i = 0; i < sBadReason.Length; i++) { if (DBUtility.ClsPub.isStrNull(sBadReason[i]) != "") { Model.ClsQC_NoPassProdCheckBillSub oSub = new Model.ClsQC_NoPassProdCheckBillSub(); //固定赋值======================================== oSub.HEntryID = i + 1; oSub.HRemark = ""; oSub.HSourceInterID = 0; oSub.HSourceEntryID = 0; oSub.HSourceBillType = ""; oSub.HSourceBillNo = ""; //oSub.HRelationQty = DBUtility.ClsPub.isDoule(grdMain.Rows[i].Cells[HRelationQtyCol].Value); //oSub.HRelationMoney = DBUtility.ClsPub.isDoule(grdMain.Rows[i].Cells[HRelationMoneyCol].Value); //oSub.HCloseMan = DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[HCloseManCol].Value); //oSub.HEntryCloseDate = DBUtility.ClsPub.isDate(grdMain.Rows[i].Cells[HEntryCloseDateCol].Value); //oSub.HCloseType = DBUtility.ClsPub.isBool(grdMain.Rows[i].Cells[HCloseTypeCol].Value); //============================= oSub.HMaterID = oMain.HMaterID; oSub.HUnitID = 0; oSub.HMustQty = 1; oSub.HBadQty = 1; oSub.HBadPCSQty = 1; if (oSource.GetInfoByName(sBadReason[i])) { oSub.HBadReasonID = oSource.omodel.HItemID; } oSub.HDisposeNote = ""; oSub.HWasterReasonName = ""; oSub.HPunishmentBillNo = ""; oSub.HEmpName = ""; oSub.HProcID = 0; oSub.HMRBChecker = ""; oSub.HSQProcName = ""; oSub.HZRProcName = ""; oSub.HPSProcName = ""; oSub.HQCResultID = 0; BillNew.DetailColl.Add(oSub); } } // if (BillNew.AddBill(ref DBUtility.ClsPub.sExeReturnInfo)) { sErrMsg = "生成不良评审单成功!"; return true; } else { sErrMsg = "生成不良评审单失败!" + DBUtility.ClsPub.sExeReturnInfo; return false; } } catch (Exception e) { sErrMsg = "生成不良评审单失败!" + e.Message; return false; } } #endregion #region 单据缓存列表 * //返回缓存列表信息 同步资料 [WebMethod] public DataSet GetKf_PonderationBillMain_TempList(string sHBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetKf_PonderationBillMain_TempList(sHBillType, sWhere); } //返回缓存列表信息 同步资料(倒箱单) [WebMethod] public DataSet GetKf_PonderationBillMain_TempList_ChangeBox(string sHBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetKf_PonderationBillMain_TempList_ChangeBox(sHBillType, sWhere); } //返回缓存列表信息 同步资料(稽核模块) [WebMethod] public DataSet GetKF_PonderationBillMain_Audit_TempList(string sHBillType, string sWhere) { DAL.ClsKF_PonderationBillMain_Audit_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_View(); return dal.GetKF_PonderationBillMain_Audit_TempList(sHBillType, sWhere); } //删除缓存列表单据 同步资料(稽核模块) [WebMethod] public bool DeleteBillList_Audit(Int64 sHInterID, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl(); if (dal.DeleteBillList(sHInterID)) { sErrMsg = "删除缓存成功!"; return true; } else { sErrMsg = "删除缓存失败!"; return false; } } //流水线多组织产品入库模块 选择仓库时返回该仓库下第一个仓位信息,并更新缓存列表单据中仓库仓位信息 (韩电专用) [WebMethod] public bool GetKf_PonderationBillMain_Temp_Update_WHandSP(Int64 sHInterID, string sBarCode, Int64 sHWHID, ref Int64 HSPID, ref string HSPName, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_Update_WHandSP " + sHInterID.ToString() + ",'" + sBarCode + "'," + sHWHID.ToString(), "h_p_KF_PonderationBillMain_Temp_Update_WHandSP"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "更新临时表单据中仓库仓位信息,未知错误!"; return false; } else { HSPID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSPID"]); HSPName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSPName"]); return true; } } //流水线多组织产品入库模块 选择仓位时更新缓存列表单据中仓位信息 (韩电专用) [WebMethod] public bool GetKf_PonderationBillMain_Temp_Update_SP(Int64 sHInterID, string sBarCode, Int64 sHSPID) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); oCN.RunProc("Update KF_PonderationBillMain_Temp Set HStockPlaceID=" + sHSPID + " where HInterID=" + @sHInterID + "and HBarCode='" + sBarCode + "'"); return true; } //流水线多组织产品入库模块 返回选择行条码在临时表中仓库、仓位、组织、物料名称信息 (韩电专用) [WebMethod] public bool GetKf_PonderationBillMain_Temp_OrgandWHSP(Int64 sHInterID, string sBarCode, ref Int64 HOWNERID, ref string HOWNERNAME, ref Int64 HWhID, ref string HWhName, ref Int64 HSPID, ref string HSPName, ref string HMaterName, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_Kf_GetOrgandWHSPByTemp_CLD " + sHInterID.ToString() + ",'" + sBarCode + "'", "h_p_Kf_GetOrgandWHSPByTemp_CLD"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "获取临时表单据中仓库仓位信息失败,未知错误!"; return false; } else { HOWNERID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HOWNERID"]); HOWNERNAME = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HOWNERNAME"]); HWhID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HWhID"]); HWhName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HWhName"]); HSPID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSPID"]); HSPName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSPName"]); HMaterName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HMaterName"]); return true; } } #endregion #region 单据缓存列表 *整理后 //缓存列表界面,选择编辑时,判断所选单据是否存在已上传记录 [WebMethod] public bool TempList_Modify(Int64 sHInterID, string sHBillNo, string sHBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); string sFIFOCtl = "N"; //先进先出控制('Y'为控制) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "单据号:" + sHBillNo + ",单据ID:" + sHInterID + ";点击编辑时获取系统参数失败! " + sErrMsg; return false; } //判断是否启用先进先出管理(Y,N) if (sHBillType == "1204" && (oSystemParameter.omodel.Kf_MateOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MateOutBill_FIFOList == "Y")) //生产领料单-先进先出控制 { sFIFOCtl = "Y"; } else if (sHBillType == "1205" && (oSystemParameter.omodel.Kf_SellOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_SellOutBill_FIFOList == "Y")) //销售出库单-先进先出控制 { sFIFOCtl = "Y"; } else if (sHBillType == "1211" && (oSystemParameter.omodel.Kf_EntrustOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_EntrustOutBill_FIFOList == "Y")) //委外出库单-先进先出控制 { sFIFOCtl = "Y"; } else if (sHBillType == "1207" && (oSystemParameter.omodel.Kf_MoveStockBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MoveStockBill_FIFOList == "Y")) //直接调拨单-先进先出控制 { sFIFOCtl = "Y"; } else if (sHBillType == "1250" && (oSystemParameter.omodel.Kf_MoveStockStepOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MoveStockStepOutBill_FIFOList == "Y")) //分步式调出单-先进先出控制 { sFIFOCtl = "Y"; } try { oCn.BeginTran(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_TempList_Modify " + sHInterID + ",'" + sHBillNo + "','" + sHBillType + "','" + sFIFOCtl + "'", "h_p_WMS_TempList_Modify"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "缓存列表编辑前判断失败,数据库连接失败!"; oCn.RollBack(); return false; } if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 0) { oCn.Commit(); return true; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } } catch (Exception e) { sErrMsg = e.Message; oCn.RollBack(); return false; } } //缓存列表界面,删除缓存列表单据 [WebMethod] public bool DeleteBillList(Int64 sHInterID, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.DeleteBillList(sHInterID)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //缓存列表界面,返回缓存列表信息 [WebMethod] public DataSet GetKf_PonderationBillMain_TempList_New(string sHBillType, string sHMaker, Int64 sHOWNERID) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_KF_GetPonderationBillMain_TempList_New '" + sHBillType + "','" + sHMaker + "'," + sHOWNERID.ToString(), "h_p_KF_GetPonderationBillMain_TempList_New"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } //AGV配送单列表界面,返回AGV配送单信息 [WebMethod] public DataSet GetAGVBillList_New(string sHMaker, Int64 sHOWNERID) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_AGVBillList_New '" + sHMaker + "'," + sHOWNERID.ToString(), "h_p_AGVBillList_New"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } //AGV配送单列表界面查询按钮 根据单号过滤信息 [WebMethod] public DataSet GetAGVBillList_BillNoQuery(string sBillNo) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_Kf_ICStockBillQueryList_AGV '" + sBillNo + "'", "h_p_Kf_ICStockBillQueryList_AGV"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } //已上传列表界面,撤销功能,删除WMS表和本地出入库单记录,并更新TEMP表中的上传字段 HRelationInterID=0 [WebMethod] public bool DeleteICStockBillAndWMS(Int64 sHInterID, string sHBillNo, string sHBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.BeginTran(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_ICStockBillAndWMS_Delete " + sHInterID + ",'" + sHBillNo + "','" + sHBillType + "'", "h_p_WMS_ICStockBillAndWMS_Delete"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "撤销单据失败,数据库连接失败!"; oCn.RollBack(); return false; } if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 0) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); oCn.Commit(); return true; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } } catch (Exception e) { sErrMsg = e.Message; oCn.RollBack(); return false; } } //已上传列表界面,获取本日、昨日已上传的单据列表信息 [WebMethod] public DataSet GetKf_ICStockBillList(string sHBillType, string sHMaker, Int64 sHOWNERID) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_Kf_ICStockBillList '" + sHBillType + "','" + sHMaker + "'," + sHOWNERID.ToString(), "h_p_Kf_ICStockBillList"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } //已上传查询界面,根据单据号、源单号查询已上传单据信息 [WebMethod] public DataSet GetKf_ICStockBillQueryList(string sHBillType, string sBillNo, string sSourceBillNo) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_Kf_ICStockBillQueryList '" + sHBillType + "','" + sBillNo + "','" + sSourceBillNo + "'", "h_p_Kf_ICStockBillQueryList"); if (Ds == null) { return null; } else { return Ds; } } #endregion #region 查询条码库存 * //根据物料条码,返回物料库存信息 /// /// 根据物料条码,返回物料库存信息 /// /// 过滤条件 /// [WebMethod] public DataSet Get_ICInventoryByMaterIDList(string sBarCode, long HWHID, long HSPID, long HOWNERID, string sWhere) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_KF_ICInventoryByMaterIDList '" + sBarCode + "'," + HWHID + "," + HSPID + "," + HOWNERID + ",'" + sWhere + "'", "ICInventoryByMaterIDList"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } //查询条码库存 [WebMethod] public bool Get_CheckQtyByBarCode(string sBarcode, long HWHID, long HSPID, long HAuxPropID, string sBatchNo, string HMTONo, double sQty, ref double sRelQty) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (dal.CheckQtyByBarCode(sBarcode, HWHID, HSPID, HAuxPropID, sBatchNo, HMTONo, sQty, ref sRelQty)) { return true; } else { return false; } } //查询条码库存 并且带出 仓库仓位 [WebMethod] public bool Get_CheckQtyByBarCode_GetWhAndSP(long InterID, string sBillType, string sBarcode, ref long HWHID, ref long HSPID, double sQty, ref double sRelQty) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (dal.CheckQtyByBarCode(InterID, sBillType, sBarcode, ref HWHID, ref HSPID, sQty, ref sRelQty)) { return true; } else { return false; } } //查询条码库存 并且带出 仓库仓位(稽核时) [WebMethod] public bool Get_CheckQtyByBarCode_GetWhAndSP_Audit(long InterID, string sBillType, string sBarcode, ref long HWHID, ref long HSPID, double sQty, ref double sRelQty) { DAL.ClsKF_PonderationBillMain_Audit_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_View(); if (dal.CheckQtyByBarCode(InterID, sBillType, sBarcode, ref HWHID, ref HSPID, sQty, ref sRelQty)) { return true; } else { return false; } } //根据扫描条码 数量 判断条码档案数量 [WebMethod] public bool Get_CheckQtyByBarCodeBill(long InterID, string sBillType, string sBatchNo, string sBarCode, ref double sRelQty) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (dal.CheckQtyByBarCodeBill(InterID, sBillType, sBatchNo, sBarCode, ref sRelQty)) { return true; } else { return false; } } //根据条码 判断条码库存中物料仓库仓位是否与所选源单一致 [WebMethod] public bool Get_CheckQtyByBarCode_WHAndSP(long InterID, string sBarCode) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (dal.CheckQtyByBarCode_WHAndSP(InterID, sBarCode)) { return true; } else { return false; } } //根据条码 判断稽核列表中的条码 是否一致 [WebMethod] public bool Get_CheckQtyByBarCode_Audit(long InterID, string sBarCode) { DAL.ClsKF_PonderationBillMain_Audit_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_View(); if (dal.CheckInfoByBarCode_Audit(InterID, sBarCode)) { return true; } else { return false; } } //根据扫描条码 与传票进行验证 [WebMethod] public bool Get_CheakBarCodeAndCP(long HCusID, string sCPStr, string sBarCode, ref string sReturn) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (dal.CheakBarCodeAndCP(HCusID, sCPStr, sBarCode, ref sReturn)) { return true; } else { return false; } } //判断条码 入库数量是否超过条码本身额定数量 [WebMethod] public bool Get_IsBarCodeQty(string sBarcode, string sBillType, bool sRedBlueFlag, ref double sQty, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.IsBarCode(sBarcode, sBillType, sRedBlueFlag, ref sQty, ref sErrMsg)) { return true; } else { return false; } } ////判断条码扫描数量是否超过条码本身额定数量 //[WebMethod] //public bool Get_IsBarCodeQtyBySub(long HInterID, string sBillType, long HMaterID, string HBatchNo, Int64 HSourceInterID, Int64 HSourceEntryID, ref string sErrMsg) //{ // DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); // if (dal.IsBarCode_Sub(HInterID, sBillType, HMaterID, HBatchNo, HSourceInterID, HSourceEntryID, ref sErrMsg)) // { // return true; // } // else // { // return false; // } //} ////判断明细表中条码库存、K3库存 是否充足 (仓库仓位批次) //[WebMethod] //public bool Get_CheckQtyBySubBarCode(long HInterID, string sBillType, long HMaterID, Int64 HWhID, Int64 HSPID, Int64 HSCWhID, Int64 HSCSPID, string HBatchNo, Int64 HSourceInterID, Int64 HSourceEntryID, string sWhere, ref string sErrMsg) //{ // DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); // if (dal.CheckQtyByBarCode_Sub(HInterID, sBillType, HMaterID, HWhID, HSPID, HSCWhID, HSCSPID, HBatchNo, HSourceInterID, HSourceEntryID, sWhere, ref sErrMsg)) // { // return true; // } // else // { // return false; // } //} //判断源单是否已核对过 [WebMethod] public bool Get_IsSourceBill(long sHInterID, string sBillType) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.IsSourceBill(sHInterID, sBillType)) { return true; } else { return false; } } //判断源单是否稽核过 [WebMethod] public bool Get_IsAuditBill(long sHInterID, string sBillType) { DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Audit_Temp_Ctl(); if (dal.IsAuditBill(sHInterID, sBillType)) { return true; } else { return false; } } //删除条码出入库记录 [WebMethod] public bool DeleteByICStockBill(long sHInterID, string sBillType) { DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); return dal.DeleteByICStockBill(sHInterID, sBillType); } #endregion #region 公用方法 //从远程服务器获取条码档案 [WebMethod] public DataSet get_SaveBarCodeFormServer(Int64 Days, ref string sErr) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetServerBarCodeBill " + Days.ToString(), "h_p_WMS_GetServerBarCodeBill"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErr = "没有返回条码档案记录!"; return null; } else { return ds; } } catch (Exception e) { sErr = "获取条码档案记录失败," + e.Message; return null; } } //保存扫码记录至数据库 [WebMethod] public bool set_SaveScanToServer(Int64 lInterID, DataSet ds, ref string sErr) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { //将DATASET通过WEBS上传至远程服务器 string str = " INSERT INTO KF_PonderationBillMain_Temp (HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID,HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID " + " ,HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack,HAddr,HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType " + " ,HSourceBillNo,HRelationInterID,HRelationEntryID,HRelationBillNo,HSourceLine,HRedBlueFlag,HCheckStatus,HMTONo,HPlanMode,HSTOCKORGID " + " ,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber) "; string strValuesSum = ""; int n = 0; string strValues = ""; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { n = n + 1; strValues = " select "; for (int j = 0; j < ds.Tables[0].Columns.Count; j++) { if (j == 0) { strValues = strValues + " '" + Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[i][j]) + "'"; } else { strValues = strValues + ",'" + Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[i][j]) + "'"; } } // if (n == ds.Tables[0].Rows.Count) { strValuesSum = strValuesSum + " \r\n " + strValues + " "; } else { strValuesSum = strValuesSum + " \r\n " + strValues + " union all "; } } //远程服务器中,将DATASET保存至 数据库扫码TEMP表 (保存前,先删除该 内码的记录)(特别注意:本地服务器单据内码和远程服务器单据内码不能重复) oCn.BeginTran(); oCn.RunProc(" delete from KF_PonderationBillMain_Temp where HinterID=" + lInterID.ToString()); oCn.RunProc(str + " " + strValuesSum); oCn.Commit(); return true; } catch (Exception e) { sErr = "上传扫码记录失败," + e.Message; oCn.RollBack(); return false; } } //获取更新服务器文件清单 [WebMethod] public DataSet get_ServerFileList() { try { DataSet ds; SQLHelper.ClsCNmaster oCN = new SQLHelper.ClsCNmaster(); ds = oCN.RunProcReturn("select FItemid,fnumber,fname from HX_UPdateForWInce", "HX_UPdateForWInce"); if (ds != null && ds.Tables[0].Rows.Count != 0) { return ds; } else { return null; } } catch (Exception e) { return null; } } //获取更新服务器文件清单 [WebMethod] public DataSet get_ServerFileListForWMS() { try { DataSet ds; SQLHelper.ClsCNmaster oCN = new SQLHelper.ClsCNmaster(); ds = oCN.RunProcReturn("select FItemid,fnumber,fname from HX_UPdateForWMS", "HX_UPdateForWMS"); if (ds != null && ds.Tables[0].Rows.Count != 0) { return ds; } else { return null; } } catch (Exception e) { return null; } } //获取更新服务器文件清单 韩电内网条码 [WebMethod] public DataSet get_ServerFileListForNBWMS() { try { DataSet ds; SQLHelper.ClsCNmaster oCN = new SQLHelper.ClsCNmaster(); ds = oCN.RunProcReturn("select FItemid,fnumber,fname from HX_UPdate ", "HX_UPdate"); if (ds != null && ds.Tables[0].Rows.Count != 0) { return ds; } else { return null; } } catch (Exception e) { return null; } } //获取更新服务器文件清单 韩电内网JIT [WebMethod] public DataSet get_ServerFileListForNBLMES() { try { DataSet ds; SQLHelper.ClsCNmaster oCN = new SQLHelper.ClsCNmaster(); ds = oCN.RunProcReturn("select FItemid,fnumber,fname from HX_UPdate2 ", "HX_UPdate2"); if (ds != null && ds.Tables[0].Rows.Count != 0) { return ds; } else { return null; } } catch (Exception e) { return null; } } //获取更新服务器文件 [WebMethod] public bool get_ServerFile(string sSQL, ref byte[] FileItem) { try { //DataSet ds; //SQLHelper.ClsCNmaster oCN = new SQLHelper.ClsCNmaster(); //oCN.CheckOpen(); //List InformatoinCollection = new List(); //SqlConnection ocn = new SqlConnection(@"Data Source=192.168.10.61\MSSQLSERVER2;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//韩电 SqlConnection ocn = new SqlConnection(@"Data Source=192.168.1.72;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//飞龙 //SqlConnection ocn = new SqlConnection(@"Data Source=192.168.1.51;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767"); ocn.Open(); SqlCommand cm = new SqlCommand(sSQL, ocn); cm.CommandTimeout = 600; SqlDataReader dr = cm.ExecuteReader(); //byte[] oFile = null; if (dr.Read()) { FileItem = (byte[])dr["FFile"]; return true; } else { FileItem = null; return false; } } catch (Exception e) { FileItem = null; sSQL = e.Message; return false; } } //获取更新服务器文件 [WebMethod] public bool get_ServerFileForWMS(string sSQL, ref byte[] FileItem) { try { //获取系统参数 string sErrMsg = ""; Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //DataSet ds; //SQLHelper.ClsCNmaster oCN = new SQLHelper.ClsCNmaster(); //oCN.CheckOpen(); //List InformatoinCollection = new List(); if (oSystemParameter.omodel.WMS_CampanyName == "韩电") //系统参数 客户定制化名称 空白为通用 { SqlConnection ocn = new SqlConnection(@"Data Source=192.168.10.61\MSSQLSERVER2;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767"); //韩电 ocn.Open(); SqlCommand cm = new SqlCommand(sSQL, ocn); cm.CommandTimeout = 600; SqlDataReader dr = cm.ExecuteReader(); //byte[] oFile = null; if (dr.Read()) { FileItem = (byte[])dr["FFile"]; return true; } else { FileItem = null; sSQL = ""; return false; } } else if (oSystemParameter.omodel.WMS_CampanyName == "飞龙") { SqlConnection ocn = new SqlConnection(@"Data Source=192.168.1.72;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//飞龙 ocn.Open(); SqlCommand cm = new SqlCommand(sSQL, ocn); cm.CommandTimeout = 600; SqlDataReader dr = cm.ExecuteReader(); //byte[] oFile = null; if (dr.Read()) { FileItem = (byte[])dr["FFile"]; return true; } else { FileItem = null; sSQL = ""; return false; } } else if (oSystemParameter.omodel.WMS_CampanyName == "四维尔") { SqlConnection ocn = new SqlConnection(@"Data Source=192.168.0.193\SWE2014;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//四维尔 //SqlConnection ocn = new SqlConnection(@"Data Source=192.168.0.200;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//四维尔 ocn.Open(); SqlCommand cm = new SqlCommand(sSQL, ocn); cm.CommandTimeout = 600; SqlDataReader dr = cm.ExecuteReader(); //byte[] oFile = null; if (dr.Read()) { FileItem = (byte[])dr["FFile"]; return true; } else { FileItem = null; sSQL = ""; return false; } } else if (oSystemParameter.omodel.WMS_CampanyName == "雅琪诺") { SqlConnection ocn = new SqlConnection(@"Data Source=192.168.0.175;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//雅琪诺 ocn.Open(); SqlCommand cm = new SqlCommand(sSQL, ocn); cm.CommandTimeout = 600; SqlDataReader dr = cm.ExecuteReader(); //byte[] oFile = null; if (dr.Read()) { FileItem = (byte[])dr["FFile"]; return true; } else { FileItem = null; sSQL = ""; return false; } } else if (oSystemParameter.omodel.WMS_CampanyName == "圣龙") { SqlConnection ocn = new SqlConnection(@"Data Source=192.168.1.34;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//圣龙 ocn.Open(); SqlCommand cm = new SqlCommand(sSQL, ocn); cm.CommandTimeout = 600; SqlDataReader dr = cm.ExecuteReader(); //byte[] oFile = null; if (dr.Read()) { FileItem = (byte[])dr["FFile"]; return true; } else { FileItem = null; sSQL = ""; return false; } } else if (oSystemParameter.omodel.WMS_CampanyName == "森楷") { SqlConnection ocn = new SqlConnection(@"Data Source=192.168.10.66;DataBase=master;User ID=HX_USER;PWD=lc@841022;max pool size=32767");//森楷 ocn.Open(); SqlCommand cm = new SqlCommand(sSQL, ocn); cm.CommandTimeout = 600; SqlDataReader dr = cm.ExecuteReader(); //byte[] oFile = null; if (dr.Read()) { FileItem = (byte[])dr["FFile"]; return true; } else { FileItem = null; sSQL = ""; return false; } } else { FileItem = null; sSQL = ""; return false; } } catch (Exception e) { FileItem = null; sSQL = e.Message; return false; } } //得到登入组织信息(ID、代码、名称) [WebMethod] public DataSet get_ORGANIZATIONS(string HDataCenterName) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("select * from h_v_CLD_ORGANIZATIONSList where HName='" + HDataCenterName + "'", "h_v_CLD_ORGANIZATIONSList"); if (ds == null && ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } //判断用户对应组织权限,得到登入组织信息(ID、代码、名称) [WebMethod] public DataSet get_ORGANIZATIONS_UserByOrgRelation(string HUserNumber, string HOrgName) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_Xt_UserRelationOrg_Check '" + HUserNumber + "','" + HOrgName + "'", "h_p_Xt_UserRelationOrg_Check"); if (ds == null && ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } //得到CLOUD组织 new [WebMethod] public Int64 get_ORGANIZATIONSIDByName(string HDataCenterName) { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("select HItemID from h_v_CLD_ORGANIZATIONSList where Hname='" + HDataCenterName + "'", "h_v_CLD_ORGANIZATIONSList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return -1; } else { return DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HItemID"]); } } catch (Exception e) { return -1; } } //得到CLOUD组织 new [WebMethod] public string get_ORGANIZATIONSNOByName(string HDataCenterName) { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("select HNumber from h_v_CLD_ORGANIZATIONSList where Hname='" + HDataCenterName + "'", "h_v_CLD_ORGANIZATIONSList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return ""; } else { return DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HNumber"]); } } catch (Exception e) { return ""; } } //得到CLOUD账套 new [WebMethod] public string get_DataCenterIDByName(string HDataCenterName) { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("select HItemID from h_v_CLD_DataCenterList where Hname='" + HDataCenterName + "'", "h_v_CLD_DataCenterList"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return ""; } else { return DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HItemID"]); } } catch (Exception e) { return null; } } //得到CLOUD账套列表 new [WebMethod] public DataSet get_DataCenterList() { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); return oCN.RunProcReturn("select * from h_v_CLD_DataCenterList", "h_v_CLD_DataCenterList"); } catch (Exception e) { return null; } } [WebMethod] public bool getRunProcByMul_Back(string[] sSQL, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.BeginTran(); if (sSQL.Length > 0) { for (int i = 0; i < sSQL.Length; i++) { oCn.RunProc(sSQL[i]); } } else { sErrMsg = "没有数据!"; oCn.Commit(); return false; } oCn.Commit(); return true; } catch (Exception e) { sErrMsg = e.Message; oCn.RollBack(); return false; } } //得到CLOUD组织列表 new [WebMethod] public DataSet get_ORGANIZATIONSList() { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); return oCN.RunProcReturn("select * from h_v_CLD_ORGANIZATIONSList", "h_v_CLD_ORGANIZATIONSList"); } catch (Exception e) { return null; } } //获取CLOUD账号密码 [WebMethod] public DataSet get_SaveCLOUDUseNameandPsd(Int64 HInterID) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetCloudUserByBill " + HInterID.ToString(), "h_p_WMS_GetCloudUserByBill"); if (ds == null && ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } //获取CLOUD账号密码(根据MES登录账号获取) [WebMethod] public DataSet get_SaveMESCLOUDUseNamePsd(string HMaker) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_LMES_GetCloudUserByBill " + HMaker.ToString(), "h_p_LMES_GetCloudUserByBill"); if (ds == null && ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } //单据上传前判断(物料属性判断 丸井) [WebMethod] public bool CheckAllowBeforeSave(Int64 HInterID, ref string sMsg) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_CheckAllowBeforeSave_K3 " + HInterID.ToString(), "HX_UPdateForWInce"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sMsg = "上传前判断失败!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { return true; } else { sMsg = "上传前判断!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][1]); return false; } } } catch (Exception e) { sMsg = "上传前判断失败2!" + e.Message; return false; } } //获取系统参数 [WebMethod] public bool get_SystemParameter(Pub_Class.ClsXt_SystemParameterMain omodel) { try { Pub_Class.ClsXt_SystemParameter oXt_SystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oXt_SystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo)) { omodel = oXt_SystemParameter.omodel; return true; } else { return false; } } catch (Exception e) { return false; } } [WebMethod] //根据条码得到相应信息(条码档案) public Model.ClsGy_BarCodeBill_WMS_Model_View get_InfoByBarCode(string sBarCode, ref string sErrMsg) { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { sErrMsg = ""; return dal.omodel_View; } else { sErrMsg = "无效条码"; return null; } } [WebMethod] //扫码入库时获取仓库仓位信息 public bool Get_CheckWhAndSP(Int64 sHInterID, string sHBillType, string sBarCode, Int64 sHWHID, Int64 sHSPID, ref Int64 HWHID, ref Int64 HSPID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_GetBillWHID " + sHInterID.ToString() + ",'" + sHBillType + "','" + sBarCode + "'," + sHWHID.ToString() + "," + sHSPID.ToString(), "h_p_WMS_GetBillWHID"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { HWHID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSPID"]); sErrMsg = ""; return true; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "仓位没有选择,请先选择仓位!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 2) { sErrMsg = "所选仓位不在该仓库下,请重新选择!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 6) { sErrMsg = "物料默认仓位没有设置,请在物料基础资料中维护仓位信息!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 7) { sErrMsg = "物料默认仓位信息设置错误,获取仓位信息失败,请在物料基础资料中设置正确仓位信息!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 8) { sErrMsg = "物料默认仓库信息设置错误,获取仓库信息失败,请在物料基础资料中设置正确仓库信息!"; return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 9) { sErrMsg = "仓库没有选择,请先选择仓库!或在物料基础资料中维护相应仓库、仓位信息!"; return false; } else { sErrMsg = "未知错误2!"; return false; } } } [WebMethod] //扫描物料条码存入临时表时判断仓库仓位是否正确 public bool Get_CheckWhAndSP_BeUpdate(Int64 sHWHID, Int64 sHSPID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_CheckWHandSP " + sHWHID.ToString() + "," + sHSPID.ToString(), "h_p_WMS_CheckWHandSP"); 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; } } } [WebMethod] //根据条码得到相应信息(条码档案) public Model.ClsGy_BarCodeBill_WMS_Model_View get_InfoByBarCode_Source(string sBarCode, Int64 sInterID, ref bool sBool, ref string sErrMsg) { sBarCode = sBarCode.Trim(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { sErrMsg = ""; //-------------获取TMP中的原单主内码和子内码 DataSet ds = oCN.RunProcReturn("exec h_p_WMS_GetBarCodeSourceInterID " + sInterID.ToString() + ",'" + sBarCode + "' ", "h_p_WMS_GetBarCodeSourceInterID"); if (ds == null || ds.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceBillNo"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSourceEntryID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSourceInterID"]); dal.omodel_View.HinitQty = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[0]["HQtyMust"]); sBool = true; } } return dal.omodel_View; } else { sErrMsg = "无效条码"; return null; } } //根据条码得到相应信息For汇报(条码档案) /// /// 根据条码得到相应信息For汇报(条码档案) /// /// /// /// [WebMethod] public Model.ClsGy_BarCodeBill_WMS_Model_View get_InfoByBarCodeForReport(string sBarCode, ref string sErrMsg) { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoForReportByNumber_View(sBarCode)) { sErrMsg = ""; return dal.omodel_View; } else { sErrMsg = "无效条码"; return null; } } [WebMethod] //根据流转卡单号得到相应信息 public DataSet get_InfoByStationInBill(string lngBillKey, ref string sReturn) { DAL.ClsSc_StationInBill dal = new DAL.ClsSc_StationInBill(); return dal.GetInfo(lngBillKey, ref sReturn); } [WebMethod] //根据流转卡单号得到相应信息 public DataSet get_InfoByStationOutBill(string lngBillKey, ref string sReturn) { DAL.ClsSc_StationOutBill dal = new DAL.ClsSc_StationOutBill(); return dal.GetInfo(lngBillKey, ref sReturn); } //根据流转卡单号得到相应信息 public DataSet get_InfoByProcExchReport(string lngBillKey, ref string sReturn) { //DAL.ClsSc_ProcExchReport dal = new DAL.ClsSc_ProcExchReport(); //return dal.GetInfo(lngBillKey, ref sReturn); return null; } [WebMethod] //得到 最大单据ID和单据号 public bool get_MaxBillNoAndID(string HTranType, ref string HBillNo, ref Int64 HInterID, ref string sErrMsg) { HInterID = DBUtility.ClsPub.CreateBillID_Prod(HTranType, ref sErrMsg); HBillNo = DBUtility.ClsPub.CreateBillCode_Prod(HTranType, ref sErrMsg, true); //原先获取方法 //HInterID = DBUtility.ClsPub.CreateBillID(HTranType, ref sErrMsg); //HBillNo = DBUtility.ClsPub.CreateBillCode(HTranType, ref sErrMsg, true); //判断是否存在相同单据内码或单据号 try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_IF_CheckBillIDExists_WMS " + HInterID + ",'" + HBillNo + "'", "h_p_IF_CheckBillIDExists_WMS"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "存在重复单据内码或单据号的单据,不允许新增,请退出后重新登录!"; return false; } else if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][0]) == "1") { sErrMsg = "获取的单据号为:" + HBillNo + ",单据ID为:" + HInterID + ";存在重复单据内码或单据号的单据,不允许新增,请退出后重新登录!"; return false; } } catch (Exception e) { sErrMsg = "重复单据内码判断失败!" + e.Message; return false; } return true; } [WebMethod] //得到K3 最大单据ID和单据号 public bool get_MaxBillNoAndID_K3(string sBillCode, string HTranType, ref string HBillNo, ref Int64 HInterID, ref string sErrMsg) { HInterID = DBUtility.Xt_BaseBillFun.CreateBillID_K3(sBillCode, ref sErrMsg); HBillNo = DBUtility.Xt_BaseBillFun.get_MaxBillNo_K3(HTranType, ref sErrMsg); //判断是否存在相同单据内码 try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_CheckBillIDExists " + HInterID, "h_p_WMS_CheckBillIDExists"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "存在重复单据内码的单据,不允许新增,请退出后重新登录!"; return false; } else if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][0]) == "1") { sErrMsg = "存在重复单据内码的单据,不允许新增,请退出后重新登录!"; return false; } } catch (Exception e) { sErrMsg = "重复单据内码判断失败!" + e.Message; return false; } return true; } [WebMethod] //得到K3 最大单据ID和单据号 CLOUD public bool get_MaxBillNoAndID_CLD(string sBillCode, string HTranType, ref string HBillNo, ref Int64 HInterID, ref string sErrMsg) { HInterID = DBUtility.ClsPub.CreateBillID(HTranType, ref sErrMsg); HBillNo = DBUtility.ClsPub.CreateBillCode(HTranType, ref sErrMsg, true); return true; } [WebMethod] //得到 最大单据ID和单据号 public bool get_MaxBillNoAndID_New(string HTranType, ref string HBillNo, ref Int64 HInterID, ref string sErrMsg) { HInterID = DBUtility.ClsPub.CreateBillID_Prod(HTranType, ref sErrMsg); HBillNo = DBUtility.ClsPub.CreateBillCode_Prod(HTranType, ref sErrMsg, true); return true; } [WebMethod] //得到 最大单据ID public bool get_MaxBillID(string HTranType, ref Int64 HInterID, ref string sErrMsg) { HInterID = DBUtility.ClsPub.CreateBillID_Prod(HTranType, ref sErrMsg); return true; } //判断用户权限 [WebMethod] public bool CheckModRight(string ModRightName, string sUserName, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //判断权限 if (!DBUtility.ClsPub.Security_Log(ModRightName, 1, false, sUserName)) { sErrMsg = "您没有权限,请与管理员联系!"; return false; } // if (oSystemParameter.omodel.WMS_WMSStockCtl_ERPMode.ToUpper() == "WISE") //判断同步模式是金蝶WISE { //判断用户是否绑定金蝶账号 DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_K3_User '" + sUserName + "'", "K3_User"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "您的用户没有绑定金蝶账号,请与管理员联系!"; return false; } } else { //判断用户账号密码(WISE、CLOUD)是否正确 if (!CheckUser(sUserName, ref sErrMsg)) { sErrMsg = sErrMsg; return false; } } return true; } [WebMethod] //得到操作员信息 public DataSet get_User(string sUserName, string sUserPsd) { DAL.ClsUser oUser = new DAL.ClsUser(); return oUser.CheckMainID(sUserName, DBUtility.ClsPub.StrToPsd(sUserPsd)); } //判断用户账号密码(WISE、CLOUD)是否正确 [WebMethod] public bool CheckUser(string sUserName, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } if (oSystemParameter.omodel.WMS_WMSStockCtl_ERPMode.ToUpper() == "CLOUD") //判断同步模式是金蝶CLOUD { //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds = oCN.RunProcReturn("select top 1 HCloudUserName,HCloudUserPsd from Gy_Czygl with(nolock) Where Czymc='" + sUserName + "'", "Gy_Czygl"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "所输入的用户名不存在! "; return false; } else { if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HCloudUserName"]) != "") { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HCloudUserPsd"]); } } //验证CLOUD登入账号密码是否正确 ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); if (bLogin) { return true; } else { sErrMsg = "登入账号所绑定的对应CLOUD账号、密码错误,登录失败!"; return false; } } return true; } //测试连接 [WebMethod] public bool get_TestStr() { try { return true; } catch { return false; } } //数据库连接测试 [WebMethod] public void get_ServerCon(ref string sErrMsg) { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (oCN.CheckOpen()) { sErrMsg = ""; } else { sErrMsg = "数据库连接失败"; } } catch (Exception e) { sErrMsg = "数据库连接失败" + e.Message; } } //数据库连接测试 [WebMethod] public string get_ServerCon2() { try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); if (oCN.CheckOpen()) { return "true" + oCN.sDataBase + "," + oCN.sServer; } else { return "数据库连接失败"; } } catch (Exception e) { return "数据库连接失败" + e.Message; } } //判断扫码后,模块子表是否自动刷新(Y为自动刷新) [WebMethod] public bool get_SubDisplay(string sBillType) { DataSet DS; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DS = oCN.RunProcReturn("exec h_p_WMS_DisBillEntryList '" + sBillType + "'", "h_p_WMS_DisBillEntryList"); if (DS == null || DS.Tables[0].Rows.Count == 0) { return true; } else if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HDisplay"]) == "N") { return false; } else { return true; } } //根据组织判断扫码后,模块子表是否自动刷新(Y为自动刷新) [WebMethod] public bool get_SubDisplayByOwner(string sBillType, Int64 HOWNERID) { DataSet DS; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DS = oCN.RunProcReturn("exec h_p_WMS_DisBillEntryList_HOWNERID '" + sBillType + "'," + HOWNERID.ToString(), "h_p_WMS_DisBillEntryList_HOWNERID"); if (DS == null || DS.Tables[0].Rows.Count == 0) { return true; } else if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HDisplay"]) == "N") { return false; } else { return true; } } #endregion #region 电子看板 #region 获取当前产线信息 //获取当前产线信息 [WebMethod] public DataSet GetWorkProcInfoBoard(string sSourceID, ref string sErr) { return null; } #endregion #endregion #region 条码查询 [WebMethod] public DataSet GetICInventoryByBarCode_View(string sWhere, ref string sErr) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetICInventoryByBarCode_View(sWhere); } [WebMethod] public DataSet GetMaterByBarCode_View(string sWhere, ref string sErr) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetMaterByBarCode_View(sWhere); } [WebMethod] public DataSet GetICInventoryByBarCodeSP_View(string sWhere, ref string sErr) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetICInventoryByBarCodeSP_View(sWhere); } [WebMethod] public DataSet GetMaterByBarCodeSP_View(string sWhere, ref string sErr) { DAL.ClsKF_PonderationBillMain_Temp_View dal = new DAL.ClsKF_PonderationBillMain_Temp_View(); return dal.GetMaterByBarCodeSP_View(sWhere); } #endregion #region 先进先出生成 [WebMethod] public bool SetFIFOPonderationBillMain_Temp(string HBillNo, Int64 HInterID, long HUserOrgID, ref string sErr) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //根据源单 DataSet ds; DataSet ds2; ds = oCn.RunProcReturn("exec h_p_Kf_GetMateOutInfoByInterID " + HInterID.ToString() + " ", "h_p_Kf_GetMateOutInfoByInterID"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErr = "获取源单信息失败!"; return false; } double NeedQty = 0;//需求数量 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { NeedQty = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[0]["HQTY"]); int HWHID = DBUtility.ClsPub.isInt(ds.Tables[0].Rows[0]["HWHID"]); ds2 = oCn.RunProcReturn("exec h_p_Kf_GetCanUseICInventory " + HInterID.ToString() + "," + HWHID.ToString() + "," + HUserOrgID.ToString(), "h_p_Kf_GetCanUseICInventory"); if (ds2 == null || ds2.Tables[0].Rows.Count == 0) { sErr = "可用库存不足!"; //清理本次FIFO临时表记录的存储过程 return false; } else { int HEntryID = DBUtility.ClsPub.isInt(ds.Tables[0].Rows[0]["领料单子内码"]); int HMaterID = DBUtility.ClsPub.isInt(ds.Tables[0].Rows[0]["物料内码"]); string HBatchNo = DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HBatchNo"]); int HSPID = DBUtility.ClsPub.isInt(ds2.Tables[0].Rows[0]["HSPID"]); for (int j = 0; j < ds2.Tables[0].Rows.Count; j++) { if (DBUtility.ClsPub.isDoule(ds2.Tables[0].Rows[0]["HKFQTY"]) >= NeedQty)//如本条库库存 大于等于 需求数量 则 直接保存需求数量, 跳出本循环 { oCn.RunProc("exec h_p_Kf_SetFIFOTmpBill " + HInterID.ToString() + ",'" + HBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString() + "," + HMaterID.ToString() + ",'" + HBatchNo + "'," + HWHID.ToString() + "," + HSPID.ToString() + "," + NeedQty.ToString()); NeedQty = 0; break; } else //如本条库库存 小于 需求数量 则 直接保存库存数量 继续下个库存循环 { double sNeedQty = DBUtility.ClsPub.isDoule(ds2.Tables[0].Rows[0]["HKFQTY"]); oCn.RunProc("exec h_p_Kf_SetFIFOTmpBill " + HInterID.ToString() + ",'" + HBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString() + "," + HMaterID.ToString() + ",'" + HBatchNo + "'," + HWHID.ToString() + "," + HSPID.ToString() + "," + sNeedQty.ToString()); NeedQty = NeedQty - DBUtility.ClsPub.isDoule(ds2.Tables[0].Rows[0]["HKFQTY"]); } } if (NeedQty > 0) { sErr = "可用库存不足!不能进行先进先出分解"; //清理本次FIFO临时表记录的存储过程 return false; } } } return true; } #endregion #region 一键扫码 #region 扫描物料条码 根据物料条码得到对应源单信息 入库模块 //扫描物料条码 保存到出入库条码临时表(物料) 入库模块 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_Fast(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, ref string sHSourceBillNo, ref string sHSourceBillType, ref long sHSupID, ref string sHSupName, ref long sHDeptID, ref string sHDeptName, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); double sRelQty = 0; string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } //根据物料条码得到对应源单信息,非多源单模式,判断是否已有源单记录(单据类型=1203,其他入库单除外) if (SourceFlag || HBillType == "1203") { } else { //根据物料条码得到对应源单信息并将源单信息新增到条码出入库临时表,带出表头部门、供应商 DataSet ds = oCn.RunProcReturn("exec h_p_WMS_BarCode_SourceBillType " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'", "h_p_WMS_BarCode_SourceBillType"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码后判断条码源单信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { sHSourceBillType = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceBillType"]); sHSourceBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceBillNo"]); sHSupID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSupID"]); sHSupName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSupName"]); sHDeptID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HDeptName"]); HSourceBillType = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceBillType"]); //存在源单信息,将源单信息写入条码临时表 if (sHSourceBillNo != "") { // 将源单信息写入 临时缓存表 if (tem.AddNew_Source(HBillID, HBillNo, HBillType, sHSourceBillNo, sHSourceBillType, sRedBlue, ref sErrMsg)) { } else { sErrMsg = "扫描物料条码后保存源单信息失败!" + sErrMsg; return false; } } } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return false; } } } //根据条码获取条码信息,存在相同物料时自动获取一行源单信息 DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //获取TMP中的原单主内码和子内码 DataSet ds2 = oCn.RunProcReturn("exec h_p_WMS_GetBarCodeSourceInterID " + HBillID.ToString() + ",'" + sBarCode + "' ", "h_p_WMS_GetBarCodeSourceInterID"); if (ds2 == null || ds2.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码后有源单自动获取一行源单信息,未知错误!"; return false; } else { dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HSourceBillNo"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceEntryID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceInterID"]); dal.omodel_View.HinitQty = DBUtility.ClsPub.isDoule(ds2.Tables[0].Rows[0]["HQtyMust"]); //所扫描物料条码的物料不属于该源单下 if (DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0][0]) != 0) { if (HSourceBillNo != "" && SourceFlag == true) { sErrMsg = "该物料并不存在于此明细信息中,请确认物料无误后重新扫描!"; return false; } } } } else { sErrMsg = "无效条码"; return false; } //判断并获取 仓库 仓位信息 DataSet ds3 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID"); if (ds3 == null || ds3.Tables[0].Rows.Count == 0) { sErrMsg = "判断并获取仓库仓位信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0][0]) == 0) { HWhID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds3.Tables[0].Rows[0]["HRemark"]); return false; } } //获取条码数量 if (dal.omodel_View.HBarCodeType != "托盘条码") { if (dal.omodel_View.HBarCodeType == "唯一条码" && HQty > 0 && dal.omodel_View.HQty < HQty) { sRelQty = dal.omodel_View.HQty; } else if (HQty > 0) { sRelQty = HQty; } else { sRelQty = dal.omodel_View.HQty; } if (HRedBlueFlag) { //判断条码库存 返回库存数量 仓库 仓位 DAL.ClsKF_PonderationBillMain_Temp_View Tempdal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (Tempdal.CheckQtyByBarCode(HBillID, HBillType, sBarCode, ref HWhID, ref HSPID, sRelQty, ref sRelQty)) { } else { if (sRelQty == 0) { sErrMsg = "无库存!"; return false; } else { sErrMsg = "库存不足,已获取实际库存数量!"; } } } else { //判断条码扫描数量 返回剩余未扫描数量 if (tem.IsBarCode(sBarCode, HBillType, HRedBlueFlag, ref sRelQty, ref sErrMsg)) { } else { sErrMsg = sErrMsg; return false; } } } model.HInterID = HBillID; model.HBillNo = HBillNo; model.HBillType = HBillType; model.HMaker = HMaker; // model.HMaterID = dal.omodel_View.HMaterID; model.HAuxPropID = dal.omodel_View.HAuxPropID; model.HErpClsID = dal.omodel_View.HErpClsID; model.HQty = sRelQty; model.HQtyMust = dal.omodel_View.HinitQty; model.HBarCode = dal.omodel_View.HBarCode; model.HBatchNo = dal.omodel_View.HBatchNo; model.HMTONo = dal.omodel_View.HMTONo; model.HWhID = HWhID; model.HStockPlaceID = HSPID; model.HSourceInterID = dal.omodel_View.HSourceInterID; model.HSourceEntryID = dal.omodel_View.HSourceEntryID; model.HSourceBillNo = dal.omodel_View.HSourceBillNo; model.HSourceBillType = HSourceBillType; model.HRedBlueFlag = HRedBlueFlag; model.HPieceQty = 1; model.HSTOCKORGID = HOWNERID; model.HOWNERID = HOWNERID; //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_Select_Qty(model, HQty, ref sErrMsg)) { } else { sErrMsg = "扫描失败!" + sErrMsg; return false; } return true; } #endregion #region 一键扫码 入库模块 //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) 入库模块 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByBarCode(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); string sHSourceBillType = ""; string sHSourceBillNo = ""; Int64 sHSupID = 0; string sHSupName = ""; Int64 sHDeptID = 0; string sHDeptName = ""; //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_Fast(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "扫描失败!" + sErrMsg; return null; } return oBar; } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCode.Substring(0, 3) + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_Fast(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "扫描失败!" + sErrMsg; return null; } return oBar; } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //源单条码 else if (sBarBillType == "源单条码") { DataSet Ds = oCn.RunProcReturn(" select HSourceName from Xt_BarCodeType where HSourceNumber= '" + sBarCode.Substring(0, 3) + "' and HBillType= '" + HBillType + "'", "Xt_BarCodeType"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "所扫源单条码不属于此模块源单范围!"; return null; } else { sBarBillName = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceName"]); //扫描源单条码时判断是否已经扫描过源单信息 if (SourceFlag) { sErrMsg = "明细信息列表已有扫码记录,不允许多次扫描源单条码!"; return null; } else { //产品入库单 源单:生产任务单 if (sBarBillName == "生产任务单" && HBillType == "1202") { DAL.Cls_S_IF_ICMOBill_Lite dal = new DAL.Cls_S_IF_ICMOBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //外购入库单 源单:采购订单 else if (sBarBillName == "采购订单" && HBillType == "1201") { DAL.Cls_S_IF_POOrderBill_Lite dal = new DAL.Cls_S_IF_POOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //外购入库单 源单:收料通知单 else if (sBarBillName == "收料通知单" && HBillType == "1201") { DAL.Cls_S_IF_POStockInBill_Lite dal = new DAL.Cls_S_IF_POStockInBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "' and isnull(HBillSubType,0)=12510 "; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //委外入库单 源单:委外订单 else if (sBarBillName == "委外订单" && HBillType == "1210") { DAL.Cls_S_IF_WWOrderBill_Lite dal = new DAL.Cls_S_IF_WWOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //委外入库单 源单:收料通知单-委外 else if (sBarBillName == "收料通知单-委外" && HBillType == "1210") { DAL.Cls_S_IF_POStockInBill_Lite dal = new DAL.Cls_S_IF_POStockInBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "' and isnull(HBillSubType,0)=12511 "; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } else { sErrMsg = "源单类型名称设置不正确!"; return null; } // 将源单信息写入 临时缓存表 if (tem.AddNew_Source(HBillID, HBillNo, HBillType, oBar.HSourceBillNo, oBar.HSourceBillType, sRedBlue, ref sErrMsg)) { return oBar; } else { sErrMsg = "保存源单信息失败!" + sErrMsg; return null; } } } } else { sErrMsg = "无效条码类型!"; return null; } } } } #endregion #region 扫描物料条码 出库模块 //扫描物料条码 保存到出入库条码临时表(物料) 出库模块 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_OutFast(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); double sRelQty = 0; //无源单状态,设置源单类型为-1 if (SourceFlag == false) { if (HBillType == "1205") { sErrMsg = "不允许无源单出库,请先扫描源单!"; return false; } HSourceBillType = "-1"; } //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } //根据条码获取条码信息,存在相同物料时自动获取一行源单信息 DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //获取TMP中的原单主内码和子内码 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_GetBarCodeSourceInterID " + HBillID.ToString() + ",'" + sBarCode + "' ", "h_p_WMS_GetBarCodeSourceInterID"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码后有源单自动获取一行源单信息,未知错误!"; return false; } else { dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]); dal.omodel_View.HinitQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]); //所扫描物料条码的物料不属于该源单下 if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) != 0) { if (HSourceBillNo != "" && SourceFlag == true) { sErrMsg = "该物料并不存在于此明细信息中,请确认物料无误后重新扫描!"; return false; } } } } else { sErrMsg = "无效条码"; return false; } //获取条码数量 if (dal.omodel_View.HBarCodeType != "托盘条码") { if (dal.omodel_View.HBarCodeType == "唯一条码" && HQty > 0 && dal.omodel_View.HQty < HQty) { sRelQty = dal.omodel_View.HQty; } else if (HQty > 0) { sRelQty = HQty; } else { sRelQty = dal.omodel_View.HQty; } if (HRedBlueFlag == false) { //非唯一条码扫描时判断仓库仓位是否已选择 if (dal.omodel_View.HBarCodeType != "唯一条码") { if (HWhID == 0) { sErrMsg = "仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet Ds2 = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse where HItemID= " + HWhID.ToString(), "Gy_Warehouse"); //无返回数据则为物料条码 if (Ds2 == null || Ds2.Tables[0].Rows.Count == 0) { sErrMsg = "仓库内码错误!"; return false; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(Ds2.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "仓位没有选择!"; return false; } } } else { //判断条码库存 返回库存数量 仓库 仓位 DAL.ClsKF_PonderationBillMain_Temp_View Tempdal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (Tempdal.CheckQtyByBarCode(HBillID, HBillType, sBarCode, ref HWhID, ref HSPID, sRelQty, ref sRelQty)) { } else { if (sRelQty == 0) { sErrMsg = "无库存!"; return false; } else { sErrMsg = "库存不足,已获取实际库存数量!"; } } } } else { //判断并获取 仓库 仓位信息 DataSet ds3 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID"); if (ds3 == null || ds3.Tables[0].Rows.Count == 0) { sErrMsg = "判断并获取仓库仓位信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0][0]) == 0) { HWhID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds3.Tables[0].Rows[0]["HRemark"]); return false; } } //判断条码扫描数量 返回剩余未扫描数量 if (tem.IsBarCode(sBarCode, HBillType, HRedBlueFlag, ref sRelQty, ref sErrMsg)) { } else { sErrMsg = sErrMsg; return false; } } } model.HInterID = HBillID; model.HBillNo = HBillNo; model.HBillType = HBillType; model.HMaker = HMaker; // model.HMaterID = dal.omodel_View.HMaterID; model.HAuxPropID = dal.omodel_View.HAuxPropID; model.HErpClsID = dal.omodel_View.HErpClsID; model.HQty = sRelQty; model.HQtyMust = dal.omodel_View.HinitQty; model.HBarCode = dal.omodel_View.HBarCode; model.HBatchNo = dal.omodel_View.HBatchNo; model.HMTONo = dal.omodel_View.HMTONo; model.HWhID = HWhID; model.HStockPlaceID = HSPID; model.HSourceInterID = dal.omodel_View.HSourceInterID; model.HSourceEntryID = dal.omodel_View.HSourceEntryID; model.HSourceBillNo = dal.omodel_View.HSourceBillNo; model.HSourceBillType = HSourceBillType; model.HRedBlueFlag = HRedBlueFlag; model.HPieceQty = 1; model.HSTOCKORGID = HOWNERID; model.HOWNERID = HOWNERID; //物料条码写入临时表时,判断仓库仓位是否正确 DataSet ds4 = oCn.RunProcReturn("exec h_p_WMS_CheckWHandSP " + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_CheckWHandSP"); if (ds4 == null || ds4.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码存入临时表时判断仓库仓位是否正确,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(ds4.Tables[0].Rows[0]["HRemark"]); return false; } } //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_Select_Qty(model, HQty, ref sErrMsg)) { } else { sErrMsg = "扫描失败!" + sErrMsg; return false; } return true; } #endregion #region 一键扫码 出库模块 //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) 出库模块 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByBarCode_Out(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_OutFast(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, ref sErrMsg)) { } else { sErrMsg = "扫描失败!" + sErrMsg; return null; } return oBar; } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCode.Substring(0, 3) + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_OutFast(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, ref sErrMsg)) { } else { sErrMsg = "扫描失败!" + sErrMsg; return null; } return oBar; } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //源单条码 else if (sBarBillType == "源单条码") { DataSet Ds = oCn.RunProcReturn(" select HSourceName from Xt_BarCodeType where HSourceNumber= '" + sBarCode.Substring(0, 3) + "' and HBillType= '" + HBillType + "'", "Xt_BarCodeType"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "所扫源单条码不属于此模块源单范围!"; return null; } else { sBarBillName = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceName"]); //扫描源单条码时判断是否已经扫描过源单信息 if (SourceFlag) { sErrMsg = "明细信息列表已有扫码记录,不允许多次扫描源单条码!"; return null; } else { //领料出库 源单:生产任务单-投料 if (sBarBillName == "生产任务单-投料" && HBillType == "1204") { DAL.Cls_S_IF_PPBomBillList_Lite dal = new DAL.Cls_S_IF_PPBomBillList_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //销售出库 源单:销售订单 else if (sBarBillName == "销售订单" && HBillType == "1205") { DAL.Cls_S_IF_SEOrderBill_Lite dal = new DAL.Cls_S_IF_SEOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //销售出库 源单:发货通知单 else if (sBarBillName == "发货通知单" && HBillType == "1205") { DAL.Cls_S_IF_SeOutStockBill_Lite dal = new DAL.Cls_S_IF_SeOutStockBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //委外出库单 源单:委外订单-投料 else if (sBarBillName == "委外订单-投料" && HBillType == "1211") { DAL.Cls_S_IF_WWPPBomBill_Lite dal = new DAL.Cls_S_IF_WWPPBomBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '%" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } else { sErrMsg = "源单类型名称设置不正确!"; return null; } // 将源单信息写入 临时缓存表 if (tem.AddNew_Source(HBillID, HBillNo, HBillType, oBar.HSourceBillNo, oBar.HSourceBillType, sRedBlue, ref sErrMsg)) { return oBar; } else { sErrMsg = "保存源单信息失败!" + sErrMsg; return null; } } } } else { sErrMsg = "无效条码类型!"; return null; } } } } #endregion #region 扫描物料条码 产品入库多源单模式 //扫描物料条码 保存到出入库条码临时表(物料) 产品入库多源单模块 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_MulSource(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, string HSourceBillType, Int64 HOWNERID, bool sXFFlag, bool sJDPFlag, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); double sRelQty = 0; //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } //根据条码获取条码信息 DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //从条码表中获取条码源单类型信息 DataSet ds2 = oCn.RunProcReturn(" select HSourceBillType from Gy_BarCodeBill where HBarCodeType='唯一条码' and HBarCode='" + sBarCode + "'", "Gy_BarCodeBill"); if (ds2 == null || ds2.Tables[0].Rows.Count == 0) { sErrMsg = "条码类型不正确!"; return false; } else { if (DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0][0]) != "3710") { sErrMsg = "条码源单信息错误,所扫条码源单类型必须为生产订单!"; return false; } } if (sXFFlag) { //箱发 DataSet dsxf = oCn.RunProcReturn("exec h_p_WMS_GetICMOBillandHMaterID_XF '" + sBarCode + "' ", "h_p_WMS_GetICMOBillandHMaterID_XF"); if (dsxf == null || dsxf.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描成品码无相关箱发生产订单,不允许箱发入库!"; return false; } else if (dsxf.Tables[0].Rows.Count != 1) { sErrMsg = "所扫描成品码相关箱发生产订单不唯一,不允许箱发入库!"; return false; } else { dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsxf.Tables[0].Rows[0]["HInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsxf.Tables[0].Rows[0]["HEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsxf.Tables[0].Rows[0]["HBillNo"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsxf.Tables[0].Rows[0]["HMaterID"]); dal.omodel_View.HBarCode = sBarCode + "-XF"; HWhID = DBUtility.ClsPub.isLong(dsxf.Tables[0].Rows[0]["HWhID"]); HSPID = 0; } } } else { sErrMsg = "无效条码"; return false; } if (sXFFlag) { ////判断并获取 仓库 仓位信息 箱发 //DataSet dsxf3 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID_XF " + HBillID.ToString() + ",'" + HBillType + "'," + dal.omodel_View.HMaterID + "," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID_XF"); //if (dsxf3 == null || dsxf3.Tables[0].Rows.Count == 0) //{ // sErrMsg = "判断并获取仓库仓位信息,未知错误!"; // return false; //} //else //{ // if (DBUtility.ClsPub.isLong(dsxf3.Tables[0].Rows[0][0]) == 0) // { // HWhID = DBUtility.ClsPub.isLong(dsxf3.Tables[0].Rows[0]["HWHID"]); // HSPID = DBUtility.ClsPub.isLong(dsxf3.Tables[0].Rows[0]["HSPID"]); // } // else // { // sErrMsg = DBUtility.ClsPub.isStrNull(dsxf3.Tables[0].Rows[0]["HRemark"]); // return false; // } //} } else { //判断并获取 仓库 仓位信息 DataSet ds3 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID_ProductIn_HD '" + sBarCode + "'", "h_p_WMS_GetBillWHID_ProductIn_HD"); if (ds3 == null || ds3.Tables[0].Rows.Count == 0) { sErrMsg = "判断并获取仓库仓位信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0][0]) == 0) { HWhID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds3.Tables[0].Rows[0]["HRemark"]); return false; } } //原优等品、一等品仓库仓位获取方法 //if (sJDPFlag) //{ // //降等品 // DataSet dsJDP = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID_JDP '" + sBarCode + "'", "h_p_WMS_GetBillWHID_JDP"); // if (dsJDP == null || dsJDP.Tables[0].Rows.Count == 0) // { // sErrMsg = "判断并获取降等品仓库信息,未知错误!"; // return false; // } // else // { // HWhID = DBUtility.ClsPub.isLong(dsJDP.Tables[0].Rows[0]["HWHID"]); // HSPID = DBUtility.ClsPub.isLong(dsJDP.Tables[0].Rows[0]["HSPID"]); // } //} //else //{ // //判断并获取 仓库 仓位信息 // DataSet ds3 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID"); // if (ds3 == null || ds3.Tables[0].Rows.Count == 0) // { // sErrMsg = "判断并获取仓库仓位信息,未知错误!"; // return false; // } // else // { // if (DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0][0]) == 0) // { // HWhID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HWHID"]); // HSPID = DBUtility.ClsPub.isLong(ds3.Tables[0].Rows[0]["HSPID"]); // } // else // { // sErrMsg = DBUtility.ClsPub.isStrNull(ds3.Tables[0].Rows[0]["HRemark"]); // return false; // } // } //} } //获取条码数量 if (dal.omodel_View.HBarCodeType != "托盘条码") { if (dal.omodel_View.HBarCodeType == "唯一条码" && HQty > 0 && dal.omodel_View.HQty < HQty) { sRelQty = dal.omodel_View.HQty; } else if (HQty > 0) { sRelQty = HQty; } else { sRelQty = dal.omodel_View.HQty; } if (HRedBlueFlag) { //判断条码库存 返回库存数量 仓库 仓位 DAL.ClsKF_PonderationBillMain_Temp_View Tempdal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (Tempdal.CheckQtyByBarCode(HBillID, HBillType, sBarCode, ref HWhID, ref HSPID, sRelQty, ref sRelQty)) { } else { if (sRelQty == 0) { sErrMsg = "无库存!"; return false; } else { sErrMsg = "库存不足,已获取实际库存数量!"; } } } else { //判断条码扫描数量 返回剩余未扫描数量 if (tem.IsBarCode(sBarCode, HBillType, HRedBlueFlag, ref sRelQty, ref sErrMsg)) { } else { sErrMsg = sErrMsg; return false; } } } model.HInterID = HBillID; model.HBillNo = HBillNo; model.HBillType = HBillType; model.HMaker = HMaker; // model.HMaterID = dal.omodel_View.HMaterID; model.HAuxPropID = dal.omodel_View.HAuxPropID; model.HErpClsID = dal.omodel_View.HErpClsID; model.HQty = sRelQty; model.HQtyMust = 0; model.HBarCode = dal.omodel_View.HBarCode; model.HBatchNo = dal.omodel_View.HBatchNo; model.HMTONo = dal.omodel_View.HMTONo; model.HWhID = HWhID; model.HStockPlaceID = HSPID; model.HSourceInterID = dal.omodel_View.HSourceInterID; model.HSourceEntryID = dal.omodel_View.HSourceEntryID; model.HSourceBillNo = dal.omodel_View.HSourceBillNo; model.HSourceBillType = HSourceBillType; model.HRedBlueFlag = HRedBlueFlag; model.HPieceQty = 1; model.HSTOCKORGID = dal.omodel_View.HSTOCKORGID; model.HOWNERID = dal.omodel_View.HOWNERID; if (sXFFlag) { //箱发 tem.oModel = model; if (dal.omodel_View.HBarCodeType == "唯一条码") { if (!tem.IsBarCode(model.HBarCode, model.HInterID, model.HErpClsID, model.HBillType)) { sErrMsg = "存在相同条码,请勿重复扫描!"; return false; } } if (tem.AddNew_Source(ref sErrMsg)) { return true; } else { sErrMsg = "扫描失败!" + sErrMsg; return false; } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_Select_Qty(model, HQty, ref sErrMsg)) { } else { sErrMsg = "扫描失败!" + sErrMsg; return false; } } return true; } #endregion #region 一键扫码 产品入库多源单模式 //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) 产品入库多源单模块 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByBarCode_MulSource(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, string HSourceBillType, Int64 HOWNERID, bool sXFFlag, bool sJDPFlag, ref string sErrMsg) { sBarCode = sBarCode.Trim(); SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_MulSource(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, HSourceBillType, HOWNERID, sXFFlag, sJDPFlag, ref sErrMsg)) { if (sXFFlag) { //箱发 sBarCode = sBarCode + "-XF"; } //从条码出入库临时表 中获取该单据下该条码的仓库仓位信息 DataSet dsWS = oCn.RunProcReturn("exec h_p_Kf_GetOrgandWHSPByTemp_CLD " + HBillID.ToString() + ",'" + sBarCode + "'", "h_p_Kf_GetOrgandWHSPByTemp_CLD"); if (dsWS == null || dsWS.Tables[0].Rows.Count == 0) { sErrMsg = "获取所扫描条码入库仓库仓位信息失败!"; return null; } else { oBar.HOWNERID = DBUtility.ClsPub.isLong(dsWS.Tables[0].Rows[0]["HOWNERID"]); oBar.HOWNERNAME = DBUtility.ClsPub.isStrNull(dsWS.Tables[0].Rows[0]["HOWNERNAME"]); oBar.HWhID = DBUtility.ClsPub.isLong(dsWS.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(dsWS.Tables[0].Rows[0]["HWhName"]); oBar.HSPID = DBUtility.ClsPub.isLong(dsWS.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(dsWS.Tables[0].Rows[0]["HSPName"]); } } else { sErrMsg = "扫描失败!" + sErrMsg; return null; } return oBar; } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCode.Substring(0, 3) + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_MulSource(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, HSourceBillType, HOWNERID, sXFFlag, sJDPFlag, ref sErrMsg)) { if (sXFFlag) { //箱发 sBarCode = sBarCode + "-XF"; } //从条码出入库临时表 中获取该单据下该条码的仓库仓位信息 DataSet dsWS = oCn.RunProcReturn("exec h_p_Kf_GetOrgandWHSPByTemp_CLD " + HBillID.ToString() + ",'" + sBarCode + "'", "h_p_Kf_GetOrgandWHSPByTemp_CLD"); if (dsWS == null || dsWS.Tables[0].Rows.Count == 0) { sErrMsg = "获取所扫描条码入库仓库仓位信息失败!"; return null; } else { oBar.HOWNERID = DBUtility.ClsPub.isLong(dsWS.Tables[0].Rows[0]["HOWNERID"]); oBar.HOWNERNAME = DBUtility.ClsPub.isStrNull(dsWS.Tables[0].Rows[0]["HOWNERNAME"]); oBar.HWhID = DBUtility.ClsPub.isLong(dsWS.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(dsWS.Tables[0].Rows[0]["HWhName"]); oBar.HSPID = DBUtility.ClsPub.isLong(dsWS.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(dsWS.Tables[0].Rows[0]["HSPName"]); } } else { sErrMsg = "扫描失败!" + sErrMsg; return null; } return oBar; } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //源单条码 else if (sBarBillType == "源单条码") { sErrMsg = "多源单模块,无须扫描源单条码!"; return null; } else { sErrMsg = "无效条码类型!"; return null; } } } } #endregion #region 扫描源单条码 存入出入库条码临时表 生产领料模块专用 //保存到出入库条码临时表(源单) 领料出库 根据计划模式、配套数量、仓库 批量新增源单信息 [WebMethod] public bool set_SavePonderationBillMain_Temp_SourceBill_MateOut(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, bool sRedBlueflag, string sMaker, Double sPPQty, Int64 sPlanMode, Int64 sHWhID, Int64 sHOWNERID, ref long sHDeptID, ref string sHDeptName, ref string sHSourceBillNo, ref string sHSourceBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); string sRedBlue = "蓝字"; if (sRedBlueflag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet DS = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_AddSourceBill_MateOut " + sNewInterID.ToString() + ",'" + sNewBillNo + "','" + sNewBillType + "','" + sSourceBillNo + "','" + sSourceBillType + "','" + sRedBlue + "','" + sMaker + "'," + sPPQty.ToString() + "," + sPlanMode.ToString() + "," + sHWhID.ToString() + "," + sHOWNERID.ToString(), "h_p_KF_PonderationBillMain_Temp_AddSourceBill_MateOut"); if (DS == null || DS.Tables[0].Rows.Count == 0) { sErrMsg = "源单信息存入出入库条码临时表,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(DS.Tables[0].Rows[0][0]) == 0) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //生产领料单-先进先出控制 if (oSystemParameter.omodel.Kf_MateOutBill_FIFOCtl == "Y") //系统参数 生产领料单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_Add " + sNewInterID.ToString() + ",'" + sNewBillType + "','" + sSourceBillNo + "','" + sSourceBillType + "'," + sHWhID.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_Add"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "存入先进先出表,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return false; } } } sHSourceBillNo = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HSourceBillNo"]); sHSourceBillType = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HSourceBillType"]); sHDeptID = DBUtility.ClsPub.isLong(DS.Tables[0].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HDeptName"]); return true; } else { sErrMsg = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HRemark"]); return false; } } } #endregion #region 一键扫码 多源单模式 //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByBarCode_MulSourceBill(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameterMain.WMS_OneKeyMode.ToUpper() == "N") { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //如果是托盘条码分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托条码得到明细条码信息写入出入库条码临时表 DataSet dsTBarCode; string sBarCode_MX; dsTBarCode = oCn.RunProcReturn("select HBarCode HBarCodeMX from Sc_PackUnionBillSub_Sum " + " Where HBarCode_Pack = '" + sBarCode + "'", "Sc_PackUnionBillSub_Sum"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "没有找到托盘条码对应子条码记录!"; return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_MX = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeMX"]); oBar = get_SavePonderationBillMain_Temp_MulSource(sBarCode_MX, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameterMain, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode_MX + sErrMsg; return null; } else { return oBar; } } return oBar; } } else { oBar = get_SavePonderationBillMain_Temp_MulSource(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameterMain, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } else { sErrMsg = "没有找到该条码!"; return null; } } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCode.Substring(0, 3) + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //如果是托盘条码分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托条码得到明细条码信息写入出入库条码临时表 DataSet dsTBarCode; string sBarCode_MX; dsTBarCode = oCn.RunProcReturn("select HBarCode HBarCodeMX from Sc_PackUnionBillSub_Sum " + " Where HBarCode_Pack = '" + sBarCode + "'", "Sc_PackUnionBillSub_Sum"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "没有找到托盘条码对应子条码记录!"; return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_MX = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeMX"]); oBar = get_SavePonderationBillMain_Temp_MulSource(sBarCode_MX, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameterMain, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode_MX + sErrMsg; return null; } else { return oBar; } } return oBar; } } else { oBar = get_SavePonderationBillMain_Temp_MulSource(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameterMain, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } else { sErrMsg = "没有找到该条码!"; return null; } } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { oBar = get_BaseSet(sBarCode, HOWNERID, sBarBillName, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } //源单条码 else if (sBarBillType == "源单条码") { oBar = getSourceBillList(sBarCode, HBillID, HBillType, HBillNo, HMaker, HRedBlueFlag, SourceFlag, HOWNERID, oSystemParameterMain, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描源单失败!" + sErrMsg; return null; } else { return oBar; } } else { sErrMsg = "无效条码类型!"; return null; } } } } #endregion #region 一键扫码 扫描物料条码 存入条码出入库临时表(多源单模式) [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SavePonderationBillMain_Temp_MulSource(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); double sRelQty = 0; string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } //根据条码获取条码信息 DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //有源单模式,产品入库(1202)模块,唯一条码,根据条码获取源单信息,并判断此源单是否已存在临时表中,不存在将源单信息存入临时表中 if (HSourceBillType != "-1" && HBillType == "1202" && dal.omodel_View.HBarCodeType == "唯一条码") { DataSet ds1 = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_Add_MulSource " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "','" + sBarCode + "','" + sRedBlue + "'," + HOWNERID, "h_p_KF_PonderationBillMain_Temp_Add_MulSource"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "多源单模式扫描物料带出源单信息失败,数据库连接失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } //有源单,判断条码对应物料是否存在于此源单中,存在相同物料时自动获取一行源单信息 DataSet ds2 = oCn.RunProcReturn("exec h_p_WMS_GetBarCodeSourceInterID_New " + HBillID.ToString() + ",'" + HBillType + "','" + HSourceBillType + "','" + sBarCode + "'", "h_p_WMS_GetBarCodeSourceInterID_New"); if (ds2 == null || ds2.Tables[0].Rows.Count == 0) { sErrMsg = "判断条码对应物料是否存在于此明细信息中失败,数据库连接失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0][0]) == 0) { dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HSourceBillNo"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceEntryID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceInterID"]); dal.omodel_View.HinitQty = DBUtility.ClsPub.isDoule(ds2.Tables[0].Rows[0]["HQtyMust"]); //源单数量 } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HRemark"]); return null; } } } else { sErrMsg = "无效条码"; return null; } //获取条码数量 if (dal.omodel_View.HBarCodeType != "托盘条码") { if (dal.omodel_View.HBarCodeType != "唯一条码") { if (DBUtility.ClsPub.isDoule(HQty) < 0) { sErrMsg = "输入的数量不能小于0!"; return null; } else if (DBUtility.ClsPub.isDoule(HQty) == 0) { sRelQty = dal.omodel_View.HinitQty; } else { sRelQty = HQty; } } else if (HQty > 0 && dal.omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = dal.omodel_View.HQty; } //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211) //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211" || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246") { //非唯一条码扫描时判断仓库仓位是否已选择 if (dal.omodel_View.HBarCodeType != "唯一条码") { if (HWhID == 0) { sErrMsg = "仓库没有选择!"; return null; } else { //根据仓库ID,判断是否启用仓位 DataSet ds3 = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse where HItemID= " + HWhID.ToString(), "Gy_Warehouse"); if (ds3 == null || ds3.Tables[0].Rows.Count == 0) { sErrMsg = "仓库内码错误!"; return null; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(ds3.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "仓位没有选择!"; return null; } } } else { //蓝字出库、红字入库,唯一条码,判断条码库存 返回库存数量 仓库 仓位 DAL.ClsKF_PonderationBillMain_Temp_View Tempdal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (!Tempdal.CheckQtyByBarCode(HBillID, HBillType, sBarCode, ref HWhID, ref HSPID, sRelQty, ref sRelQty)) { if (sRelQty == 0) { sErrMsg = "无库存!"; return null; } else { sErrMsg = "库存不足,已获取实际库存数量!"; } } } } //采购入库(1201)、产品入库(1202)、其他入库蓝字(1203)、委外入库(1210) //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) else { //判断并获取 仓库 仓位信息(界面上设置了仓库仓位信息,取界面上设置的仓库仓位;界面上没有设置仓库仓位信息,则取物料表中该物料对应仓库仓位信息) DataSet ds4 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID"); if (ds4 == null || ds4.Tables[0].Rows.Count == 0) { sErrMsg = "判断并获取仓库仓位信息失败,数据库连接失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0][0]) == 0) { HWhID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds4.Tables[0].Rows[0]["HRemark"]); return null; } } //判断条码扫描数量 返回剩余未扫描数量 if (!tem.IsBarCode_New(sBarCode, HBillType, HRedBlueFlag, ref sRelQty, ref sErrMsg)) { sErrMsg = sErrMsg; return null; } } } // model.HInterID = HBillID; model.HBillNo = HBillNo; model.HBillType = HBillType; model.HMaker = HMaker; // model.HMaterID = dal.omodel_View.HMaterID; model.HAuxPropID = dal.omodel_View.HAuxPropID; model.HErpClsID = dal.omodel_View.HErpClsID; model.HQty = sRelQty; model.HQtyMust = 0; model.HBarCode = dal.omodel_View.HBarCode; model.HBatchNo = dal.omodel_View.HBatchNo; model.HMTONo = dal.omodel_View.HMTONo; model.HWhID = HWhID; model.HStockPlaceID = HSPID; model.HSourceInterID = dal.omodel_View.HSourceInterID; model.HSourceEntryID = dal.omodel_View.HSourceEntryID; model.HSourceBillNo = dal.omodel_View.HSourceBillNo; model.HSourceBillType = HSourceBillType; model.HRedBlueFlag = HRedBlueFlag; model.HPieceQty = 1; model.HSTOCKORGID = HOWNERID; model.HOWNERID = HOWNERID; model.HCusBarCode = HExpressNumber; //物料条码写入临时表时,判断仓库仓位是否正确 DataSet ds5 = oCn.RunProcReturn("exec h_p_WMS_CheckWHandSP " + model.HWhID.ToString() + "," + model.HStockPlaceID.ToString(), "h_p_WMS_CheckWHandSP"); if (ds5 == null || ds5.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码存入临时表时判断仓库仓位是否正确失败,数据库连接失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds5.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(ds5.Tables[0].Rows[0]["HRemark"]); return null; } } //将物料条码信息写入出入库条码临时表 if (!set_SavePonderationBillMain_Temp_New(model, ref sErrMsg)) { sErrMsg = "扫描失败!" + sErrMsg; return null; } return oBar; } #endregion #region 一键扫码 扫描源单条码 存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS getSourceBillList(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, bool HRedBlueFlag, bool SourceFlag, Int64 HOWNERID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } //第一次扫描源单,根据单据内码清空条码临时表记录 if (!SourceFlag) { oCn.RunProc("Delete from KF_PonderationBillMain_Temp where HInterID=" + HBillID.ToString() + " and HBillType='" + HBillType + "'", ref DBUtility.ClsPub.sExeReturnInfo); } //多源单模式时,SourceFlag=false if (HBillType == "1202" && oSystemParameterMain.Kf_ProductInBill_MulSourceBill == "Y") { SourceFlag = false; } DataSet ds1 = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_Add_Source " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "','" + sBarCode + "','" + sRedBlue + "'," + Convert.ToString(SourceFlag ? 1 : 0) + "," + HOWNERID, "h_p_KF_PonderationBillMain_Temp_Add_Source"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "扫描源单信息失败,数据库连接失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } return oBar; } #endregion #region 扫描物料条码 存入出入库条码临时表 //扫描物料条码 保存到出入库条码临时表(物料) [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, ref string sHSourceBillNo, ref string sHSourceBillType, ref long sHSupID, ref string sHSupName, ref long sHDeptID, ref string sHDeptName, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); double sRelQty = 0; string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID,ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); //if (oSystemParameter.ShowBill(ref sErrMsg) == false) //{ // sErrMsg = "获取系统参数失败! " + sErrMsg; // return false; //} //当单据参数是 多原单模式时, 则 SourceFlag 设置为 TRUE Sc_ICMOReportBill_MulSourceBill if (HBillType == "3711" && oSystemParameter.omodel.Sc_ICMOReportBill_MulSourceBill == "Y") { SourceFlag = true; sHSourceBillType = "3710"; //返回 sHSourceBillNo = ""; //返回 sHSupID = 0; //返回 sHSupName = ""; //返回 sHDeptID = 0; //返回 sHDeptName = ""; //返回 HSourceBillType = "3710"; } //蓝字产品入库、外购入库、委外入库、生产汇报,根据物料条码得到对应源单信息,非多源单模式 //未扫描源单的情况下,第一次扫描物料条码获取源单信息并存入临时表 //采购入库(1201)、产品入库(1202)、其他入库(1203)、委外入库(1210)、生产汇报(3711) if (SourceFlag == false && (HBillType == "1201" || HBillType == "1202" || HBillType == "1210" || HBillType == "3711")) { if (HSourceBillType != "-1") { //根据物料条码得到对应源单信息并将源单信息新增到条码出入库临时表,带出表头部门、供应商 //h_p_WMS_BarCode_SourceBillType 带出原单信息 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_BarCode_SourceBillType " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'", "h_p_WMS_BarCode_SourceBillType"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码后判断条码源单信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { sHSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); sHSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); sHSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); sHSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); sHDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); //存在源单信息,将源单信息写入条码临时表 if (sHSourceBillNo != "") { // 将源单信息写入 临时缓存表 if (tem.AddNew_Source(HBillID, HBillNo, HBillType, sHSourceBillNo, sHSourceBillType, sRedBlue, ref sErrMsg)) { } else { sErrMsg = "扫描物料条码后保存源单信息失败!" + sErrMsg; return false; } } } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } } } else { //无源单状态,设置源单类型为-1 if (SourceFlag == false) { //销售出库不允许无源单出库 if (HBillType == "1205") { sErrMsg = "不允许无源单出库,请先扫描源单!"; return false; } HSourceBillType = "-1"; } } //根据条码获取条码信息,存在相同物料时自动获取一行源单信息 DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //当单据参数是 多原单模式时, 则 不进行 条码物料是否在 原单列表 内的判断 if (HBillType == "3711" && oSystemParameter.omodel.Sc_ICMOReportBill_MulSourceBill == "Y") { //再判断 条码 档案里 原单类型是否正确; 原单内码 是否存在 if (dal.omodel_View.HSourceBillType != "3710" || dal.omodel_View.HSourceInterID <= 0 || dal.omodel_View.HSourceEntryID <= 0) { sErrMsg = "多源单模式下,扫描物料条码的原单信息必须正确!"; return false; } else if (dal.omodel_View.HBarCodeStatus == "待装箱") { sErrMsg = "所扫条码为待装箱状态,不允许汇报!"; return false; } } else //非多原单 { //有源单,判断条码对应物料是否存在于此源单中,存在相同物料时自动获取一行源单信息 DataSet ds2 = oCn.RunProcReturn("exec h_p_WMS_GetBarCodeSourceInterID_New " + HBillID.ToString() + ",'" + HBillType + "','" + HSourceBillType + "','" + sBarCode + "'", "h_p_WMS_GetBarCodeSourceInterID_New"); if (ds2 == null || ds2.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码后有源单自动获取一行源单信息!"; return false; } else { if (DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0][0]) == 0) { dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HSourceBillNo"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceEntryID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceInterID"]); dal.omodel_View.HinitQty = DBUtility.ClsPub.isDoule(ds2.Tables[0].Rows[0]["HQtyMust"]); //源单数量 } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HRemark"]); return false; } } ////获取TMP中的原单主内码和子内码 //判断该条码是否在原单列表中h_p_WMS_GetBarCodeSourceInterID //DataSet ds2 = oCn.RunProcReturn("exec h_p_WMS_GetBarCodeSourceInterID " + HBillID.ToString() + ",'" + sBarCode + "' ", "h_p_WMS_GetBarCodeSourceInterID"); //if (ds2 == null || ds2.Tables[0].Rows.Count == 0) //{ // sErrMsg = "扫描物料条码后有源单自动获取一行源单信息,未知错误!"; // return false; //} //else //{ // //if (HSourceBillNo != "" && SourceFlag == true) // //{ // // if (HBillType == "1202" && oSystemParameter.omodel.WMS_CampanyName != "博日科技") //生产入库时 条码主内码、子内码和源单主内码、子内码必须一致 // // { // // if (dal.omodel_View.HSourceInterID != DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceInterID"]) // // && dal.omodel_View.HSourceEntryID != DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceEntryID"]) // // ) // // { // // sErrMsg = "该条码的源单与扫描的源单不一致,请确认无误后重新扫描!"; // // return false; // // } // // } // //} // dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HSourceBillNo"]); // dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceEntryID"]); // dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0]["HSourceInterID"]); // dal.omodel_View.HinitQty = DBUtility.ClsPub.isDoule(ds2.Tables[0].Rows[0]["HQtyMust"]);//原单数量 // //所扫描物料条码的物料不属于该源单下 // if (DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0][0]) != 0) // { // if (HSourceBillNo != "" && SourceFlag == true) // { // sErrMsg = "该物料并不存在于此明细信息中,请确认物料无误后重新扫描!"; // return false; // } // } //} } } else { sErrMsg = "无效条码"; return false; } //获取条码数量 if (dal.omodel_View.HBarCodeType != "托盘条码") { if (dal.omodel_View.HBarCodeType == "唯一条码") { //博日有源单扫码,条码数量大于源单数量,取源单数量 if (dal.omodel_View.HSourceInterID != 0 && oSystemParameter.omodel.WMS_CampanyName == "博日科技" && HBillType != "1202" && HBillType != "1205") { if(dal.omodel_View.HinitQty==0) { sErrMsg = "已扫描数量等于或大于源单数量,不允许扫码!"; return false; } else if(dal.omodel_View.HQty > dal.omodel_View.HinitQty) { dal.omodel_View.HQty = dal.omodel_View.HinitQty; } } if (HQty > 0 && dal.omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = dal.omodel_View.HQty; } //销售出库 有源单扫码,系统参数:销售出库单-应收数量控制="小于等于应收"或"完全等于应收"时,增加控制提示 if (HBillType == "1205" && dal.omodel_View.HSourceInterID != 0 && (oSystemParameter.omodel.Kf_SellOutBill_MustQtyCtl == "小于等于应收" || oSystemParameter.omodel.Kf_SellOutBill_MustQtyCtl == "完全等于应收")) { if (dal.omodel_View.HinitQty == 0) { sErrMsg = "对应源单剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > dal.omodel_View.HinitQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + dal.omodel_View.HinitQty.ToString() + ",不允许扫码!"; return false; } } } else //批次条码、品种条码 { if (HQty > 0) { sRelQty = HQty; } else if (dal.omodel_View.HinitQty > 0) { sRelQty = dal.omodel_View.HinitQty; } else { sRelQty = dal.omodel_View.HQty; } //销售出库 有源单扫码,系统参数:销售出库单-应收数量控制="小于等于应收"或"完全等于应收"时,增加控制提示 if (HBillType == "1205" && dal.omodel_View.HSourceInterID != 0 && (oSystemParameter.omodel.Kf_SellOutBill_MustQtyCtl == "小于等于应收" || oSystemParameter.omodel.Kf_SellOutBill_MustQtyCtl == "完全等于应收")) { if (dal.omodel_View.HinitQty == 0) { sErrMsg = "对应源单剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > dal.omodel_View.HinitQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + dal.omodel_View.HinitQty.ToString() + ",不允许扫码!"; return false; } } } //if (dal.omodel_View.HBarCodeType == "唯一条码" && HQty > 0 && dal.omodel_View.HQty < HQty) //{ // sRelQty = dal.omodel_View.HQty; //} //else if (HQty > 0) //{ // sRelQty = HQty; //} //else //{ // sRelQty = dal.omodel_View.HQty; //} //采购入库(1201)、产品入库(1202)、其他入库蓝字(1203)、委外入库(1210) //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211) //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) //生产补料(1254) if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211" || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246" || HBillType == "1254") { //非唯一条码扫描时判断仓库仓位是否已选择 if (dal.omodel_View.HBarCodeType != "唯一条码") { if (oSystemParameter.omodel.WMS_ERPStockCtl == "N") { if (HWhID == 0) { sErrMsg = "仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet ds3 = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString(), "Gy_Warehouse"); if (ds3 == null || ds3.Tables[0].Rows.Count == 0) { sErrMsg = "仓库内码错误!"; return false; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(ds3.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "仓位没有选择!"; return false; } } } else { //判断ERP库存 返回ERP库存数量 DataSet ds6 = oCn.RunProcReturn("exec h_p_IF_CheckQtyByERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + dal.omodel_View.HMaterID.ToString() + "," + dal.omodel_View.HAuxPropID.ToString() + ",'" + dal.omodel_View.HBatchNo + "'," + sRelQty.ToString() + "," + HOWNERID.ToString(), "h_p_IF_CheckQtyByERPICInventory"); if (ds6 == null || ds6.Tables[0].Rows.Count == 0) { sErrMsg = "判断ERP库存,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds6.Tables[0].Rows[0][0]) == 0) { dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds6.Tables[0].Rows[0]["HMaterID"]); HQty = DBUtility.ClsPub.isDoule(ds6.Tables[0].Rows[0]["HQty"]); sRelQty = HQty; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds6.Tables[0].Rows[0]["HRemark"]); return false; } } } } else { //判断条码库存 返回库存数量 仓库 仓位 DAL.ClsKF_PonderationBillMain_Temp_View Tempdal = new DAL.ClsKF_PonderationBillMain_Temp_View(); if (Tempdal.CheckQtyByBarCode(HBillID, HBillType, sBarCode, ref HWhID, ref HSPID, sRelQty, ref sRelQty)) { } else { if (sRelQty == 0) { sErrMsg = "无库存!"; return false; } else { sErrMsg = "库存不足,已获取实际库存数量!"; } } } } else { //判断并获取 仓库 仓位信息 DataSet ds4 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID"); if (ds4 == null || ds4.Tables[0].Rows.Count == 0) { sErrMsg = "判断并获取仓库仓位信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0][0]) == 0) { HWhID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds4.Tables[0].Rows[0]["HRemark"]); return false; } } //判断条码扫描数量 返回剩余未扫描数量 if (tem.IsBarCode_New(sBarCode, HBillType, HRedBlueFlag, ref sRelQty, ref sErrMsg)) { } else { sErrMsg = sErrMsg; return false; } } } if (HExpressNumber == "工序汇报转移单") { model.HSubBillType = "1270"; HExpressNumber = ""; } model.HInterID = HBillID; model.HBillNo = HBillNo; model.HBillType = HBillType; model.HMaker = HMaker; // model.HMaterID = dal.omodel_View.HMaterID; model.HAuxPropID = dal.omodel_View.HAuxPropID; model.HErpClsID = dal.omodel_View.HErpClsID; model.HQty = sRelQty; model.HQtyMust = dal.omodel_View.HinitQty; model.HBarCode = dal.omodel_View.HBarCode; model.HBatchNo = dal.omodel_View.HBatchNo; model.HMTONo = dal.omodel_View.HMTONo; model.HWhID = HWhID; model.HStockPlaceID = HSPID; model.HSourceInterID = dal.omodel_View.HSourceInterID; model.HSourceEntryID = dal.omodel_View.HSourceEntryID; model.HSourceBillNo = dal.omodel_View.HSourceBillNo; model.HSourceBillType = HSourceBillType; model.HRedBlueFlag = HRedBlueFlag; model.HPieceQty = 1; model.HSTOCKORGID = HOWNERID; model.HOWNERID = HOWNERID; model.HCusBarCode = HExpressNumber; ////获取系统参数 //Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); //if (oSystemParameter.ShowBill(ref sErrMsg) == false) //{ // sErrMsg = "获取系统参数失败! " + sErrMsg; // return false; //} //先进先出控制 if ((HBillType == "1204" && oSystemParameter.omodel.Kf_MateOutBill_FIFOCtl == "Y") //系统参数 生产领料单-先进先出控制 || (HBillType == "1205" && oSystemParameter.omodel.Kf_SellOutBill_FIFOCtl == "Y") //系统参数 销售出库单-先进先出控制 ) { DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + model.HBatchNo + "','" + model.HBarCode + "'," + model.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "判断先进先出控制发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 0) { sRelQty = DBUtility.ClsPub.isDoule(FIFO.Tables[0].Rows[0]["HQty"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return false; } } } //物料条码写入临时表时,判断仓库仓位是否正确 DataSet ds5 = oCn.RunProcReturn("exec h_p_WMS_CheckWHandSP " + model.HWhID.ToString() + "," + model.HStockPlaceID.ToString(), "h_p_WMS_CheckWHandSP"); if (ds5 == null || ds5.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码存入临时表时判断仓库仓位是否正确,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds5.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(ds5.Tables[0].Rows[0]["HRemark"]); return false; } } //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_Select_Qty(model, HQty, ref sErrMsg)) { } else { sErrMsg = "扫描失败!" + sErrMsg; return false; } return true; } #endregion #region 一键扫码 //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByBarCode_All(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, ref string sErrMsg) { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); string sHSourceBillType = ""; string sHSourceBillNo = ""; Int64 sHSupID = 0; string sHSupName = ""; Int64 sHDeptID = 0; string sHDeptName = ""; string sHBarType = ""; sBarCode = sBarCode.Trim(); string sBarCodePrefix = sBarCode.Substring(0, Math.Min(3, sBarCode.Length));//截取条码前三位字符串 //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } //销售出库、销售退库模块扫码流程 飞龙专用 if ((HBillType == "1205" || HBillType == "1247") && oSystemParameter.omodel.WMS_CampanyName == "飞龙") //系统参数 客户定制化名称 空白为通用 { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_FeiLong(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sHBarType, ref sErrMsg)) { oBar.HBarType = sHBarType; oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "!" + sErrMsg; return null; } return oBar; } //其他入库、其他出库 森楷专用 else if ((HBillType == "1203" || HBillType == "1206") && oSystemParameter.omodel.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { if (set_SavePonderationBillMain_Temp_BarCode_SenKai(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, "整托扫码", ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode + sErrMsg; return null; } return oBar; } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { if (set_SavePonderationBillMain_Temp_BarCode_SenKai(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, "整托扫码", ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode + sErrMsg; return null; } return oBar; } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID, HOWNERID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int sHSPID; int sHWHID; string[] sArray = sBarCode.Remove(0, 3).Split(';'); if (int.TryParse(sArray[1], out sHSPID) && int.TryParse(sArray[0], out sHWHID)) { if (dal.GetInfoByID(sHSPID, sHWHID, HOWNERID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //源单条码 else if (sBarBillType == "源单条码") { if (sBarBillName == "入库申请单") { oBar = get_SourceBarCode_OtherIn(HBillID, HBillNo, HBillType, sBarCode, "1241", HMaker, HOWNERID, ref sErrMsg); if (oBar == null) { return null; } return oBar; } else { sErrMsg = "源单类型名称设置不正确!"; return null; } } else { sErrMsg = "无效条码类型!"; return null; } } } } //生产入库 多源单模式 else if (HBillType == "1202" && oSystemParameter.omodel.Kf_ProductInBill_MulSourceBill == "Y") { oBar = get_CheckTypeByBarCode_MulSourceBill(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else { //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { if (oSystemParameter.omodel.WMS_CampanyName == "博日科技" || oSystemParameter.omodel.WMS_CampanyName == "杭州智见" || oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔" || oSystemParameter.omodel.WMS_CampanyName == "奥邦" || oSystemParameter.omodel.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //托盘条码 卓力 if (dal.omodel_View.HBarCodeType == "托盘条码" && oSystemParameter.omodel.WMS_CampanyName == "卓力") { //将物料条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_BarCode_Pack_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, SourceFlag, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } //如果是托盘条码分解并模拟扫码 else if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托条码得到明细条码信息写入出入库条码临时表 DataSet dsTBarCode; string sBarCode_MX; dsTBarCode = oCn.RunProcReturn("select HBarCode HBarCodeMX from Sc_PackUnionBillSub_Sum " + " Where HBarCode_Pack = '" + sBarCode + "'", "Sc_PackUnionBillSub_Sum"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "没有找到托盘条码对应子条码记录!"; return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_MX = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeMX"]); if (set_SavePonderationBillMain_Temp_BarCode(sBarCode_MX, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; SourceFlag = true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode_MX + sErrMsg; //sErrMsg = "扫描失败!" + sErrMsg; return null; } } return oBar; } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } else { sErrMsg = "没有找到该条码!"; return null; } } else { if (sBarCodePrefix == "PAK") { //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddMouldBarCode"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { if (oSystemParameter.omodel.WMS_CampanyName == "博日科技" || oSystemParameter.omodel.WMS_CampanyName == "杭州智见" || oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔" || oSystemParameter.omodel.WMS_CampanyName == "奥邦" || oSystemParameter.omodel.WMS_CampanyName == "卓力") //系统参数 客户定制化名称 空白为通用 { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //托盘条码 卓力 if (dal.omodel_View.HBarCodeType == "托盘条码" && oSystemParameter.omodel.WMS_CampanyName == "卓力") { //将物料条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_BarCode_Pack_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, SourceFlag, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } //如果是托盘条码分解并模拟扫码 else if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托条码得到明细条码信息写入出入库条码临时表 DataSet dsTBarCode; string sBarCode_MX; dsTBarCode = oCn.RunProcReturn("select HBarCode HBarCodeMX from Sc_PackUnionBillSub_Sum " + " Where HBarCode_Pack = '" + sBarCode + "'", "Sc_PackUnionBillSub_Sum"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "没有找到托盘条码对应子条码记录!"; return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_MX = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeMX"]); if (set_SavePonderationBillMain_Temp_BarCode(sBarCode_MX, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; SourceFlag = true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode_MX + sErrMsg; //sErrMsg = "扫描失败!" + sErrMsg; return null; } } return oBar; } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } else { sErrMsg = "没有找到该条码!"; return null; } } else { if (sBarCodePrefix == "PAK") { //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddMouldBarCode"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID, HOWNERID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int sHSPID; int sHWHID; string[] sArray = sBarCode.Remove(0, 3).Split(';'); if (int.TryParse(sArray[1], out sHSPID) && int.TryParse(sArray[0], out sHWHID)) { if (dal.GetInfoByID(sHSPID, sHWHID, HOWNERID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //源单条码 else if (sBarBillType == "源单条码") { //当该单据类型的系统参数:多源单模式 时,不允许扫描原单 //======================= DataSet Ds = oCn.RunProcReturn(" select HSourceName from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "' and HBillType= '" + HBillType + "'", "Xt_BarCodeType"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "所扫源单条码不属于此模块源单范围!"; return null; } else { sBarBillName = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceName"]); //扫描源单条码时判断是否已经扫描过源单信息 if (SourceFlag) { sErrMsg = "明细信息列表已有扫码记录,不允许多次扫描源单条码!"; return null; } else { //产品入库单 源单:生产任务单 if (sBarBillName == "生产任务单" && HBillType == "1202") { DAL.Cls_S_IF_ICMOBill_Lite dal = new DAL.Cls_S_IF_ICMOBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //产品入库单 源单:生产汇报单 else if (sBarBillName == "生产汇报单" && HBillType == "1202") { DAL.Cls_S_IF_ICMOReportBill_Lite dal = new DAL.Cls_S_IF_ICMOReportBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //外购入库单 源单:采购订单 else if (sBarBillName == "采购订单" && HBillType == "1201") { DAL.Cls_S_IF_POOrderBill_Lite dal = new DAL.Cls_S_IF_POOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //外购入库单 源单:收料通知单 else if (sBarBillName == "收料通知单" && HBillType == "1201") { DAL.Cls_S_IF_POInStockBill_Lite dal = new DAL.Cls_S_IF_POInStockBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "' and isnull(HBillSubType,0)=12510 "; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //委外入库单 源单:委外订单 else if (sBarBillName == "委外订单" && HBillType == "1210") { DAL.Cls_S_IF_WWOrderBill_Lite dal = new DAL.Cls_S_IF_WWOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //委外入库单 源单:收料通知单-委外 else if (sBarBillName == "收料通知单-委外" && HBillType == "1210") { DAL.Cls_S_IF_POStockInBill_Lite dal = new DAL.Cls_S_IF_POStockInBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "' and isnull(HBillSubType,0)=12511 "; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //领料出库 源单:生产任务单-投料 else if (sBarBillName == "生产任务单-投料" && HBillType == "1204") { DAL.Cls_S_IF_PPBomBillList_Lite dal = new DAL.Cls_S_IF_PPBomBillList_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //销售出库 源单:销售订单 else if (sBarBillName == "销售订单" && HBillType == "1205") { DAL.Cls_S_IF_SEOrderBill_Lite dal = new DAL.Cls_S_IF_SEOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); oBar.HCustom = Convert.ToString(DS.Tables[0].Rows[0]["HCustom"]); } //销售出库 源单:发货通知单 else if (sBarBillName == "发货通知单" && HBillType == "1205") { DAL.Cls_S_IF_SeOutStockBill_Lite dal = new DAL.Cls_S_IF_SeOutStockBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); oBar.HCustom = Convert.ToString(DS.Tables[0].Rows[0]["HCustom"]); } //委外出库单 源单:委外订单-投料 else if (sBarBillName == "委外订单-投料" && HBillType == "1211") { DAL.Cls_S_IF_WWPPBomBill_Lite dal = new DAL.Cls_S_IF_WWPPBomBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } else { sErrMsg = "源单类型名称设置不正确!"; return null; } // 将源单信息写入 临时缓存表 if (tem.AddNew_Source(HBillID, HBillNo, HBillType, oBar.HSourceBillNo, oBar.HSourceBillType, sRedBlue, ref sErrMsg)) { return oBar; } else { sErrMsg = "保存源单信息失败!" + sErrMsg; return null; } } } } else { sErrMsg = "无效条码类型!"; return null; } } } } } catch (Exception e) { sErrMsg = e.Message+";"+e.StackTrace; return null; } } #endregion #region 一键扫码 增加递入参数 扫描类型 //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByBarCode_New(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, string HScanStyle, ref string sErrMsg) { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); string sHSourceBillType = ""; string sHSourceBillNo = ""; Int64 sHSupID = 0; string sHSupName = ""; Int64 sHDeptID = 0; string sHDeptName = ""; string sHBarType = ""; sBarCode = sBarCode.Trim(); string sBarCodePrefix = sBarCode.Substring(0, Math.Min(3, sBarCode.Length));//截取条码前三位字符串 //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } //销售出库、销售退库模块扫码流程 飞龙专用 if ((HBillType == "1205" || HBillType == "1247") && oSystemParameter.omodel.WMS_CampanyName == "飞龙") //系统参数 客户定制化名称 空白为通用 { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_FeiLong(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sHBarType, ref sErrMsg)) { oBar.HBarType = sHBarType; oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "!" + sErrMsg; return null; } return oBar; } //其他入库 森楷专用 else if (HBillType == "1203" && oSystemParameter.omodel.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { //根据单个条码获取对应整托条码信息写入条码出入库临时表 string sBarCode_New; DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToBarCode_ScanStyle '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillType + "','整托扫码'", "h_p_WMS_BeforeCheckToBarCode_ScanStyle"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "获取整托条码信息发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 2) { sErrMsg = "此模块不允许反向拆码!"; return null; } else { if (HBillType == "1203") { HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillNo"]); HSourceBillType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillType"]); //oBar = get_SourceBarCode_OtherIn(HBillID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HOWNERID, ref sErrMsg); //if (oBar == null) //{ // return null; //} //SourceFlag = true; Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) if (oSystemParameter.omodel.Kf_OtherInBill_MulSourceBill.ToUpper() == "Y") //系统参数 其他入库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet dsyd = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_OtherIn " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HOWNERID.ToString() + ",1", "h_p_WMS_AddSourceBarCode_OtherIn"); if (dsyd == null || dsyd.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";将条码对应源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(dsyd.Tables[0].Rows[0][0]) == 0) { SourceFlag = true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";" + DBUtility.ClsPub.isStrNull(dsyd.Tables[0].Rows[0]["HRemark"]); return null; } } } for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_New = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); if (set_SavePonderationBillMain_Temp_BarCode(sBarCode_New, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode_New + sErrMsg; return null; } } } return oBar; } } //销售出库、其他出库 森楷专用 else if ((HBillType == "1205" || HBillType == "1206") && oSystemParameter.omodel.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { if (set_SavePonderationBillMain_Temp_BarCode_SenKai(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, HScanStyle, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode + sErrMsg; return null; } return oBar; } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { if (set_SavePonderationBillMain_Temp_BarCode_SenKai(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, HScanStyle, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode + sErrMsg; return null; } return oBar; } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID, HOWNERID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int sHSPID; int sHWHID; string[] sArray = sBarCode.Remove(0, 3).Split(';'); if (int.TryParse(sArray[1], out sHSPID) && int.TryParse(sArray[0], out sHWHID)) { if (dal.GetInfoByID(sHSPID, sHWHID, HOWNERID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //源单条码 else if (sBarBillType == "源单条码") { if (sBarBillName == "发货通知单") { oBar = get_SourceBarCode_SellOut(HBillID, HBillNo, HBillType, sBarCode, "1402", HMaker, 0, HOWNERID, ref sErrMsg); if (oBar == null) { return null; } return oBar; } else { sErrMsg = "源单类型名称设置不正确!"; return null; } } else { sErrMsg = "无效条码类型!"; return null; } } } } //生产入库 多源单模式 else if (HBillType == "1202" && oSystemParameter.omodel.Kf_ProductInBill_MulSourceBill == "Y") { oBar = get_CheckTypeByBarCode_MulSourceBill(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else { //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { if (oSystemParameter.omodel.WMS_CampanyName == "博日科技" || oSystemParameter.omodel.WMS_CampanyName == "杭州智见" || oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔" || oSystemParameter.omodel.WMS_CampanyName == "奥邦") //系统参数 客户定制化名称 空白为通用 { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //如果是托盘条码分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托条码得到明细条码信息写入出入库条码临时表 DataSet dsTBarCode; string sBarCode_MX; dsTBarCode = oCn.RunProcReturn("select HBarCode HBarCodeMX from Sc_PackUnionBillSub_Sum " + " Where HBarCode_Pack = '" + sBarCode + "'", "Sc_PackUnionBillSub_Sum"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "没有找到托盘条码对应子条码记录!"; return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_MX = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeMX"]); if (set_SavePonderationBillMain_Temp_BarCode(sBarCode_MX, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; SourceFlag = true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode_MX + sErrMsg; //sErrMsg = "扫描失败!" + sErrMsg; return null; } } return oBar; } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } else { sErrMsg = "没有找到该条码!"; return null; } } else { if (sBarCodePrefix == "PAK") { //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddMouldBarCode"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { if (oSystemParameter.omodel.WMS_CampanyName == "博日科技" || oSystemParameter.omodel.WMS_CampanyName == "杭州智见" || oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔" || oSystemParameter.omodel.WMS_CampanyName == "奥邦") //系统参数 客户定制化名称 空白为通用 { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByNumber_View(sBarCode)) { //如果是托盘条码分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托条码得到明细条码信息写入出入库条码临时表 DataSet dsTBarCode; string sBarCode_MX; dsTBarCode = oCn.RunProcReturn("select HBarCode HBarCodeMX from Sc_PackUnionBillSub_Sum " + " Where HBarCode_Pack = '" + sBarCode + "'", "Sc_PackUnionBillSub_Sum"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "没有找到托盘条码对应子条码记录!"; return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_MX = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeMX"]); if (set_SavePonderationBillMain_Temp_BarCode(sBarCode_MX, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; SourceFlag = true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sBarCode_MX + sErrMsg; //sErrMsg = "扫描失败!" + sErrMsg; return null; } } return oBar; } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } else { sErrMsg = "没有找到该条码!"; return null; } } else { if (sBarCodePrefix == "PAK") { //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddMouldBarCode"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } } } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID, HOWNERID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int sHSPID; int sHWHID; string[] sArray = sBarCode.Remove(0, 3).Split(';'); if (int.TryParse(sArray[1], out sHSPID) && int.TryParse(sArray[0], out sHWHID)) { if (dal.GetInfoByID(sHSPID, sHWHID, HOWNERID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //源单条码 else if (sBarBillType == "源单条码") { //当该单据类型的系统参数:多源单模式 时,不允许扫描原单 //======================= DataSet Ds = oCn.RunProcReturn(" select HSourceName from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "' and HBillType= '" + HBillType + "'", "Xt_BarCodeType"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "所扫源单条码不属于此模块源单范围!"; return null; } else { sBarBillName = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceName"]); //扫描源单条码时判断是否已经扫描过源单信息 if (SourceFlag) { sErrMsg = "明细信息列表已有扫码记录,不允许多次扫描源单条码!"; return null; } else { //产品入库单 源单:生产任务单 if (sBarBillName == "生产任务单" && HBillType == "1202") { DAL.Cls_S_IF_ICMOBill_Lite dal = new DAL.Cls_S_IF_ICMOBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //产品入库单 源单:生产汇报单 else if (sBarBillName == "生产汇报单" && HBillType == "1202") { DAL.Cls_S_IF_ICMOReportBill_Lite dal = new DAL.Cls_S_IF_ICMOReportBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //外购入库单 源单:采购订单 else if (sBarBillName == "采购订单" && HBillType == "1201") { DAL.Cls_S_IF_POOrderBill_Lite dal = new DAL.Cls_S_IF_POOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //外购入库单 源单:收料通知单 else if (sBarBillName == "收料通知单" && HBillType == "1201") { DAL.Cls_S_IF_POInStockBill_Lite dal = new DAL.Cls_S_IF_POInStockBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "' and isnull(HBillSubType,0)=12510 "; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //委外入库单 源单:委外订单 else if (sBarBillName == "委外订单" && HBillType == "1210") { DAL.Cls_S_IF_WWOrderBill_Lite dal = new DAL.Cls_S_IF_WWOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //委外入库单 源单:收料通知单-委外 else if (sBarBillName == "收料通知单-委外" && HBillType == "1210") { DAL.Cls_S_IF_POStockInBill_Lite dal = new DAL.Cls_S_IF_POStockInBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "' and isnull(HBillSubType,0)=12511 "; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //领料出库 源单:生产任务单-投料 else if (sBarBillName == "生产任务单-投料" && HBillType == "1204") { DAL.Cls_S_IF_PPBomBillList_Lite dal = new DAL.Cls_S_IF_PPBomBillList_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } //销售出库 源单:销售订单 else if (sBarBillName == "销售订单" && HBillType == "1205") { DAL.Cls_S_IF_SEOrderBill_Lite dal = new DAL.Cls_S_IF_SEOrderBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); oBar.HCustom = Convert.ToString(DS.Tables[0].Rows[0]["HCustom"]); } //销售出库 源单:发货通知单 else if (sBarBillName == "发货通知单" && HBillType == "1205") { DAL.Cls_S_IF_SeOutStockBill_Lite dal = new DAL.Cls_S_IF_SeOutStockBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); oBar.HCustom = Convert.ToString(DS.Tables[0].Rows[0]["HCustom"]); } //委外出库单 源单:委外订单-投料 else if (sBarBillName == "委外订单-投料" && HBillType == "1211") { DAL.Cls_S_IF_WWPPBomBill_Lite dal = new DAL.Cls_S_IF_WWPPBomBill_Lite(); DataSet DS; //根据单据号获取过滤条件 string sWhere = " Where 单据号 like '" + sBarCode + "'"; DS = dal.DisSourceBillList(sWhere); if (DS == null || DS.Tables[0].Rows.Count <= 0) { sErrMsg = "没有返回任何记录!"; return null; } oBar.HBarType = "源单条码"; oBar.HSourceBillNo = Convert.ToString(DS.Tables[0].Rows[0]["HBillNo"]); oBar.HSourceBillType = Convert.ToString(DS.Tables[0].Rows[0]["HBillType"]); oBar.HSupID = Convert.ToInt64(DS.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = Convert.ToString(DS.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = Convert.ToInt64(DS.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = Convert.ToString(DS.Tables[0].Rows[0]["HDeptName"]); } else { sErrMsg = "源单类型名称设置不正确!"; return null; } // 将源单信息写入 临时缓存表 if (tem.AddNew_Source(HBillID, HBillNo, HBillType, oBar.HSourceBillNo, oBar.HSourceBillType, sRedBlue, ref sErrMsg)) { return oBar; } else { sErrMsg = "保存源单信息失败!" + sErrMsg; return null; } } } } else { sErrMsg = "无效条码类型!"; return null; } } } } } catch (Exception e) { sErrMsg = e.Message + ";" + e.StackTrace; return null; } } #endregion #region 扫描物料条码 存入出入库条码临时表 森楷专用 //扫描物料条码 保存到出入库条码临时表(物料) [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_SenKai(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, string HScanStyle, ref string sHSourceBillNo, ref string sHSourceBillType, ref long sHSupID, ref string sHSupName, ref long sHDeptID, ref string sHDeptName, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp model = new Model.ClsKF_PonderationBillMain_Temp(); DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); //double sRelQty = 0; string sBarCode_New = ""; //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } if (dal.GetInfoByNumber_View(sBarCode)) { //根据单个条码获取对应整托条码信息 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToBarCode_ScanStyle '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillType + "','" + HScanStyle + "'", "h_p_WMS_BeforeCheckToBarCode_ScanStyle"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "获取整托条码信息发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return false; } else if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 2) { if (HBillType == "1205" || HBillType == "1206") { oCn.RunProc("Delete from KF_PonderationBillMain_Temp where HInterID=" + HBillID.ToString() + " and HBillType='" + HBillType + "' and HBarCode='" + sBarCode + "'", ref DBUtility.ClsPub.sExeReturnInfo); return true; } else { sErrMsg = "此模块不允许反向拆码!"; return false; } } else { dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillNo"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSourceEntryID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSourceInterID"]); HSourceBillType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillType"]); //获取仓库仓位信息 if (HWhID == 0) { HWhID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSPID"]); } else { if (HBillType != "1203" && (HWhID != DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HWHID"]) || HSPID != DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSPID"]))) { sErrMsg = "条码对应物料在界面所选仓库、仓位上无库存!"; return false; } } //将整托条码对应的条码编号拼成一串字符串 for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_New = sBarCode_New + "," + DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); } sBarCode_New = sBarCode_New.Remove(0, 1); //去掉字符串第一个字符 if (HBillType == "1203") { HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillNo"]); HSourceBillType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillType"]); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) if (oSystemParameter.omodel.Kf_OtherInBill_MulSourceBill.ToUpper() == "Y") //系统参数 其他入库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet dsyd = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_OtherIn " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HOWNERID.ToString() + ",1", "h_p_WMS_AddSourceBarCode_OtherIn"); if (dsyd == null || dsyd.Tables[0].Rows.Count == 0) { sErrMsg = "将条码对应源单信息存入条码出入库临时表失败!"; return false; } else { if (DBUtility.ClsPub.isLong(dsyd.Tables[0].Rows[0][0]) == 0) { sHSourceBillType = DBUtility.ClsPub.isStrNull(dsyd.Tables[0].Rows[0]["HSourceBillType"]); sHSourceBillNo = DBUtility.ClsPub.isStrNull(dsyd.Tables[0].Rows[0]["HSourceBillNo"]); sHSupID = DBUtility.ClsPub.isLong(dsyd.Tables[0].Rows[0]["HSupID"]); sHSupName = DBUtility.ClsPub.isStrNull(dsyd.Tables[0].Rows[0]["HSupName"]); sHDeptID = DBUtility.ClsPub.isLong(dsyd.Tables[0].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(dsyd.Tables[0].Rows[0]["HDeptName"]); HSourceBillType = DBUtility.ClsPub.isStrNull(dsyd.Tables[0].Rows[0]["HSourceBillType"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(dsyd.Tables[0].Rows[0]["HRemark"]); return false; } } } else { //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } } } } if (HExpressNumber == "工序汇报转移单") { model.HSubBillType = "1270"; HExpressNumber = ""; } model.HInterID = HBillID; model.HBillNo = HBillNo; model.HBillType = HBillType; model.HMaker = HMaker; // model.HMaterID = dal.omodel_View.HMaterID; model.HAuxPropID = dal.omodel_View.HAuxPropID; model.HErpClsID = dal.omodel_View.HErpClsID; model.HQty = dal.omodel_View.HQty; model.HQtyMust = 0; model.HBarCode = dal.omodel_View.HBarCode; model.HBatchNo = dal.omodel_View.HBatchNo; model.HMTONo = dal.omodel_View.HMTONo; model.HWhID = HWhID; model.HStockPlaceID = HSPID; model.HSourceInterID = dal.omodel_View.HSourceInterID; model.HSourceEntryID = dal.omodel_View.HSourceEntryID; model.HSourceBillNo = dal.omodel_View.HSourceBillNo; model.HSourceBillType = HSourceBillType; model.HRedBlueFlag = HRedBlueFlag; model.HPieceQty = 1; model.HSTOCKORGID = HOWNERID; model.HOWNERID = HOWNERID; model.HCusBarCode = HExpressNumber; //物料条码写入临时表时,判断仓库仓位是否正确 DataSet ds5 = oCn.RunProcReturn("exec h_p_WMS_CheckWHandSP " + model.HWhID.ToString() + "," + model.HStockPlaceID.ToString(), "h_p_WMS_CheckWHandSP"); if (ds5 == null || ds5.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码存入临时表时判断仓库仓位是否正确,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds5.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(ds5.Tables[0].Rows[0]["HRemark"]); return false; } } string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) if (HBillType == "1203" && oSystemParameter.omodel.Kf_OtherInBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } else if (HBillType == "1205" && oSystemParameter.omodel.Kf_SellOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } else if (HBillType == "1206" && oSystemParameter.omodel.Kf_OtherOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 if (dal.omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { DataSet ds = oCn.RunProcReturn("exec h_p_WMS_CheckBarCodeOneScan " + model.HInterID.ToString() + ",'" + DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HBarCode"]) + "','" + model.HBillType + "'," + model.HWhID.ToString() + "," + model.HStockPlaceID.ToString() + "," + model.HSCWHID.ToString() + "," + model.HOutStockPlaceID.ToString() + ",'" + model.HMaker + "'", "h_p_WMS_CheckBarCodeOneScan"); if (ds == null || ds.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "对不起,您扫描的条形码已被扫描过,不符合一次扫码系统参数的要求!"; return false; } } } //将物料条码信息写入出入库条码临时表 oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " + " select " + model.HInterID.ToString() + ",'" + model.HBillNo + "','" + model.HBillType + "',HMaterID,HAuxPropID," + model.HProcID.ToString() + "," + model.HWhID.ToString() + "," + model.HSCWHID.ToString() + "," + model.HStockPlaceID.ToString() + "," + model.HOutStockPlaceID.ToString() + "," + model.HGroupID.ToString() + ",'" + model.HAddr + "'" + "," + model.HQtyMust.ToString() + ",HQty," + model.HPieceQty.ToString() + ",HBatchNo,HBarCode,''" + ",'" + model.HMaker + "',getdate()" + ",case when '" + model.HBillType + "'='1203' then HSourceInterID else " + model.HSourceInterID.ToString() + " end" + ",case when '" + model.HBillType + "'='1203' then HSourceEntryID else " + model.HSourceEntryID.ToString() + " end" + ",case when '" + model.HBillType + "'='1203' then HSourceBillType else '" + model.HSourceBillType + "' end" + ",case when '" + model.HBillType + "'='1203' then HSourceBillNo else '" + model.HSourceBillNo + "' end" + "," + model.HRelationInterID.ToString() + "," + model.HRelationEntryID.ToString() + ",'" + model.HRelationBillNo + "'," + Convert.ToString(model.HRedBlueFlag ? 1 : 0) + ",'" + model.HMTONo + "',0" + "," + model.HSTOCKORGID.ToString() + "," + model.HOWNERID.ToString() + "," + model.HSTOCKORGID.ToString() + ",'','','" + model.HSubBillType + "'" + ",0,0,'" + model.HCusBarCode + "'," + model.HMulSourceBill.ToString() + "from Gy_BarCodeBill with(nolock) where charindex(',' + HBarCode + ',',',' + '" + sBarCode_New + "' + ',')>0" ); return true; } else { sErrMsg = "无效条码"; return false; } } #endregion #region 扫描物料条码(托盘条码) 存入出入库条码临时表 卓力专用 //扫描物料条码 存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SavePonderationBillMain_Temp_BarCode_Pack_ZhuoLi(string sHBarCode_Pack, Int64 HInterID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, bool SourceFlag, string HSourceBillType, Int64 HStockOrgID, string HCustom1, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); string HMaterNumber; //物料代码 string sSourceBillCtl = "N"; //是否进行源单信息核对('Y'为核对源单信息) string sBatchNoCtl = "N"; //是否进行批号核对('Y'为核对批号) string sMultilineCtl = "N"; //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) string sMustQtyCtl = "不控制"; //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) string sMaterWHSPCtl = "N"; //是否取物料默认仓库仓位('Y'为是) string sSourceWHSPCtl = "N"; //是否取源单中仓库仓位('Y'为是) string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) string sFIFOCtl = "N"; //先进先出控制('Y'为控制) string sMulSourceCtl = "N"; //是否启用多源单扫码模式('Y'为启用) int sWHSPCtl = 0; //界面仓库为空时,值变为1 string sBarCode = sHBarCode_Pack.Substring(0, sHBarCode_Pack.Length-2);//截掉条码后两位字符串 double sRelQty = 0; //根据单据类型,获取对应单据系统参数值 if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg)) { } if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "托条码对应条码: " + sBarCode + " 已被禁用,不允许扫描!"; return null; } else { //蓝字入库、汇报模块,非无源单扫码、条码类型为 唯一条码 且为有源单生成的物料条码,扫描条码时自动带出源单信息,第一次扫码或启用多源单扫码模式 //采购入库(1201)、生产入库(1202)、其他入库(1203)、委外入库(1210)、生产汇报(3711) if (HSourceBillType != "-1" && dal.omodel_View.HBarCodeType == "唯一条码" && dal.omodel_View.HSourceBillNo != "" && (SourceFlag == false || sMulSourceCtl == "Y") && (HBillType == "1201" || HBillType == "1202" || HBillType == "1203" || HBillType == "1210" || HBillType == "3711")) { Int64 HAccessFlag = 1; //是否物料条码带出源单信息标志(0为直接扫源单条码,1为物料条码带出源单信息) oBar = get_SourceBill_MaterBarCode(HInterID, HBillNo, HBillType, dal.omodel_View.HSourceBillNo, dal.omodel_View.HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { SourceFlag = true; } } else { //无源单状态,设置源单类型为-1 if (SourceFlag == false) { //销售出库不允许无源单出库 if (HBillType == "1205") { sErrMsg = "不允许无源单出库,请先扫描源单!"; return null; } HSourceBillType = "-1"; } } //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断; 3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断 DataSet dsSource = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_SourceInterID_Pack_ZhuoLi " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + sHBarCode_Pack + "','" + HSourceBillType + "'," + HStockOrgID.ToString() + "," + DBUtility.ClsPub.BoolToString(SourceFlag) + "," + sSourceBillCtl + ",'" + sBatchNoCtl + "','" + sMultilineCtl + "','" + sMaterWHSPCtl + "','" + sSourceWHSPCtl + "'", "h_p_WMS_AddBarCode_SourceInterID_Pack_ZhuoLi"); if (dsSource == null || dsSource.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0][0]) == 0) { dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HMaterID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceInterID"]); dal.omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[0]["HSumQtyMust"]); //HSumQtyMust为源单相同物料剩余可扫数量 sRelQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[0]["HBarCodeQty_Sum"]); //托条码总数量 //获取仓库仓位信息 if (HWhID == 0) { HWhID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HWhID"]); HSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSPID"]); sWHSPCtl = 1; } HMaterNumber = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HMaterNumber"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HRemark"]); return null; } } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (dal.omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (dal.omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!"; return null; } else if (sRelQty > dal.omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描托条码总数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + dal.omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return null; } } //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211)、生产补料(1254) //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) //出库、红字入库,判断条码库存、ERP库存 if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211" || HBillType == "1254" || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246") { double sERPQty = 0; //ERP库存数量 string sWhName = ""; //仓库名称 string sSPName = ""; //仓位名称 //库存控制-WMS负库存控制 唯一条码、启用条码库存,仓库仓位获取顺序:界面上仓库仓位 > 条码库存仓库仓位 if (dal.omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y") { //sWHSPCtl=1,表示界面上仓库仓位为空 if (sWHSPCtl == 1) { HWhID = 0; HSPID = 0; } //判断条码库存 返回条码库存数量 DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi " + HInterID.ToString() + ",'" + HBillType + "','" + sHBarCode_Pack + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi"); if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) { sErrMsg = "判断条码库存发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HRemark"]); return null; } } } //判断仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "仓库不允许为空,请先选择仓库!"; return null; } else { //根据仓库ID,判断是否启用仓位 DataSet dsWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockOrgID.ToString(), "Gy_Warehouse"); if (dsWH == null || dsWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选仓库不属于当前登入组织!"; return null; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "所选仓库启用了仓位,仓位不允许为空,请选择对应仓位!"; return null; } } //库存控制-ERP负库存控制 if (oSystemParameterMain.WMS_ERPStockCtl == "Y") { //判断ERP库存 返回ERP库存数量 DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HInterID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + dal.omodel_View.HAuxPropID.ToString() + ",'" + dal.omodel_View.HBatchNo + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory"); if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描托条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!"; return null; } else { sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]); if (sERPQty <= 0) { sErrMsg = "所扫描托条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!"; return null; } //判断扫描数量与金蝶库存数量 else if (sRelQty > sERPQty) { sErrMsg = "所扫描托条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,金蝶云库存数量为 " + sERPQty.ToString() + " 小于托条码总数量" + sRelQty.ToString() + " !"; return null; } } } //先进先出控制 if (sFIFOCtl == "Y") { DataSet dsFIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HInterID.ToString() + ",'" + HBillType + "','" + dal.omodel_View.HBatchNo + "','" + dal.omodel_View.HBarCode + "'," + dal.omodel_View.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode"); if (dsFIFO == null || dsFIFO.Tables[0].Rows.Count == 0) { sErrMsg = "启用先进先出控制,所扫条码不在先进先出列表清单中!"; return null; } } } //采购入库(1201)、产品入库(1202)、其他入库蓝字(1203)、委外入库(1210)、生产汇报(3711) //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) //生产汇报、蓝字入库、红字出库,获取唯一条码剩余可扫描数量 else { //判断仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "仓库不允许为空,请先选择仓库!"; return null; } else { //根据仓库ID,判断是否启用仓位 DataSet dsInWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockOrgID.ToString(), "Gy_Warehouse"); if (sWHSPCtl == 1) { if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0) { sErrMsg = "源单或物料默认仓库维护信息错误,请重新维护正确仓库信息!"; return null; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "源单或物料中所维护的仓库启用了仓位,但没有维护仓位信息,请先维护好仓位信息!"; return null; } } else { if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选仓库不属于当前登入组织!"; return null; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "所选仓库启用了仓位,仓位不允许为空,请选择对应仓位!"; return null; } } } //获取唯一条码剩余可扫描数量 if (dal.omodel_View.HBarCodeType == "唯一条码") { DataSet DsInQty = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetInBill_Pack_ZhuoLi '" + sHBarCode_Pack + "','" + HBillType + "'", "h_p_WMS_AddBarCode_GetInBill_Pack_ZhuoLi"); if (DsInQty == null || DsInQty.Tables[0].Rows.Count == 0) { sErrMsg = "判断条码剩余可扫描数量发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(DsInQty.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(DsInQty.Tables[0].Rows[0]["HRemark"]); return null; } } } } //唯一条码,是否启用一次扫码控制('Y'为启用) if (dal.omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi '" + sHBarCode_Pack + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",0,0,'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return null; } } } //赋值,写入出入库临时表 //红蓝单标志 //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) if (HBillType == "1244" || HBillType == "1247" || HBillType == "1249" || HBillType == "1238" || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246") { oMain.HRedBlueFlag = true; } else { oMain.HRedBlueFlag = false; } //是否多源单标志(0为非多源单模式,1为多源单模式) if (sMulSourceCtl == "Y") { oMain.HMulSourceBill = 1; } else { oMain.HMulSourceBill = 0; } if (HCustom1 == "工序汇报转移单") { oMain.HSubBillType = "1270"; HCustom1 = ""; } //条码类型为唯一条码,扫码存入时 HRelationEntryID=1,用于判断刷新列表时区分是否重复扫入 if (dal.omodel_View.HBarCodeType == "唯一条码") { oMain.HRelationEntryID = 1; } oMain.HInterID = HInterID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = dal.omodel_View.HMaterID; oMain.HQtyMust = 0; oMain.HMTONo = dal.omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = 0; oMain.HOutStockPlaceID = 0; oMain.HPieceQty = 1; oMain.HSourceInterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceInterID"]); oMain.HSourceEntryID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceEntryID"]); oMain.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HSourceBillNo"]); oMain.HSourceBillType = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HSourceBillType"]); oMain.HSTOCKORGID = HStockOrgID; oMain.HOWNERID = HStockOrgID; oMain.HCusBarCode = HCustom1; oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " + " select " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + ",HAuxPropID," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + ",HQty," + oMain.HPieceQty.ToString() + ",HBatchNo,HBarCode,''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() +"," + oMain.HSourceEntryID.ToString() +",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','','" + oMain.HSubBillType + "'" + ",0,0,'" + oMain.HCusBarCode + "'," + oMain.HMulSourceBill.ToString() + "from Gy_BarCodeBill with(nolock) where HBarCode_Pack= '" + sHBarCode_Pack + "' and HBarCodeType='唯一条码' order by HItemID" ); oBar.HBarType = "物料条码"; return oBar; } } else { sErrMsg = "条码档案中不存在该托条码所对应条码: " + sBarCode + " ,请确认该条码是否已被删除!"; return null; } } #endregion #region 一键扫码 销售出库、销售退库模块 飞龙专用 [WebMethod] public bool set_SavePonderationBillMain_Temp_FeiLong(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, ref string sHSourceBillNo, ref string sHSourceBillType, ref long sHSupID, ref string sHSupName, ref long sHDeptID, ref string sHDeptName, ref string sHBarType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet Dss; //根据递入的条码,判断条码为物料条码 或源单条码 //Dss = oCn.RunProcReturn(" select 1 from h_v_IF_SEOrderBillList_Lite where HBillNo= '" + sBarCode + "'", "h_v_IF_SEOrderBillList_Lite"); Dss = oCn.RunProcReturn("exec h_p_WMS_SellOutBarCodeType_FeiLong '" + sBarCode + "'", "h_p_WMS_SellOutBarCodeType_FeiLong"); if (Dss == null || Dss.Tables[0].Rows.Count == 0) { sErrMsg = "获取条码类型,未知错误!"; return false; } else { //返回0为物料条码 if (DBUtility.ClsPub.isLong(Dss.Tables[0].Rows[0][0]) == 0) { //销售退货模块,根据物料条码直接获取对应源单信息存入临时表 if (HBillType == "1247") { //判断并获取 仓库 仓位信息 DataSet ds4 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID"); if (ds4 == null || ds4.Tables[0].Rows.Count == 0) { sErrMsg = "判断并获取仓库仓位信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0][0]) == 0) { HWhID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds4.Tables[0].Rows[0]["HRemark"]); return false; } } //将物料条码信息写入出入库条码临时表 DataSet dsf = oCn.RunProcReturn("exec h_p_Kf_SellOutBackBill_AddTemp_FeiLong " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "','" + sBarCode + "'," + HQty + "," + HWhID + "," + HSPID + ",'" + HRedBlueFlag + "'," + HOWNERID + ",'" + HExpressNumber + "'", "h_p_Kf_SellOutBackBill_AddTemp_FeiLong"); if (dsf == null || dsf.Tables[0].Rows.Count == 0) { sErrMsg = "销售退货扫描物料,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(dsf.Tables[0].Rows[0][0]) == 0) { sHBarType = "源单条码"; sHSourceBillNo = DBUtility.ClsPub.isStrNull(dsf.Tables[0].Rows[0]["HSourceBillNo"]); sHSourceBillType = DBUtility.ClsPub.isStrNull(dsf.Tables[0].Rows[0]["HSourceBillType"]); sHSupID = DBUtility.ClsPub.isLong(dsf.Tables[0].Rows[0]["HSupID"]); sHSupName = DBUtility.ClsPub.isStrNull(dsf.Tables[0].Rows[0]["HSupName"]); sHDeptID = DBUtility.ClsPub.isLong(dsf.Tables[0].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(dsf.Tables[0].Rows[0]["HDeptName"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(dsf.Tables[0].Rows[0]["HRemark"]); return false; } } } else { //销售出库不允许无源单出库 if (SourceFlag == false) { sErrMsg = "销售出库不允许无源单出库,请先扫描源单!"; return false; } //物料条码写入临时表时,判断仓库仓位是否正确 DataSet ds5 = oCn.RunProcReturn("exec h_p_WMS_CheckWHandSP " + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_CheckWHandSP"); if (ds5 == null || ds5.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码存入临时表时判断仓库仓位是否正确,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds5.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(ds5.Tables[0].Rows[0]["HRemark"]); return false; } } //将物料条码信息写入出入库条码临时表 DataSet dsf = oCn.RunProcReturn("exec h_p_Kf_SellOutBill_AddTemp_FeiLong " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "','" + sBarCode + "'," + HWhID + "," + HSPID + ",'" + HRedBlueFlag + "'," + HOWNERID, "h_p_Kf_SellOutBill_AddTemp_FeiLong"); if (dsf == null || dsf.Tables[0].Rows.Count == 0) { sErrMsg = "销售出库扫描物料,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(dsf.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsf.Tables[0].Rows[0]["HRemark"]); return false; } } } } else { string sSourceBillType = "1401"; if (HBillType == "1205" && oSystemParameter.omodel.Kf_SellOutBill_MulSourceBill == "Y") //系统参数 销售出库单-多源单模式 { DataSet ds1 = oCn.RunProcReturn("exec h_p_IF_MulSourceBill_Add_SellOut " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + sBarCode + "','" + sSourceBillType + "','" + sRedBlue + "'", "h_p_IF_MulSourceBill_Add_SellOut"); if (ds1 == null || ds1.Tables[1].Rows.Count == 0) { sErrMsg = "销售出库多源单模式扫描源单,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[1].Rows[0][0]) == 0) { sHBarType = "源单条码"; sHSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[1].Rows[0]["HSourceBillNo"]); sHSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[1].Rows[0]["HSourceBillType"]); sHSupID = DBUtility.ClsPub.isLong(ds1.Tables[1].Rows[0]["HSupID"]); sHSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[1].Rows[0]["HSupName"]); sHDeptID = DBUtility.ClsPub.isLong(ds1.Tables[1].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[1].Rows[0]["HDeptName"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[1].Rows[0]["HRemark"]); return false; } } } else { sErrMsg = "所扫源单条码不属于此模块源单范围!"; return false; } } return true; } } #endregion #region 销售出库模块 所扫物料条码对应物料与源单物料不一致,取物料条码信息,更新出入库临时表中源单物料信息(飞龙专用) [WebMethod] public bool set_SavePonderationBillMain_Temp_DifferentMater_FeiLong(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, bool HRedBlueFlag, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("EXEC h_p_Kf_SellOutBill_AddTemp_DifferentMater_FeiLong " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "','" + sBarCode + "'," + HWhID + "," + HSPID + ",'" + HRedBlueFlag + "'," + HOWNERID); return true; } catch (Exception e) { sErrMsg = "物料条码对应物料与源单物料不一致时,写入条码出入库临时表失败!" + e.Message; return false; } } #endregion #region 销售退货模块 所扫物料条码对应物料与源单物料不一致,取物料条码信息(飞龙专用) [WebMethod] public bool set_SavePonderationBillMain_Temp_DifferentMater_SellOutBack_FeiLong(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, bool HRedBlueFlag, Int64 HOWNERID, string HExpressNumber, ref string sHSourceBillNo, ref string sHSourceBillType, ref long sHSupID, ref string sHSupName, ref long sHDeptID, ref string sHDeptName, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { //物料条码对应物料与源单物料不一致,取物料条码信息,新增到条码出入库临时表,带出表头源单信息、部门、客户 DataSet ds1 = oCn.RunProcReturn("exec h_p_Kf_SellOutBackBill_AddTemp_DifferentMater_FeiLong " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "','" + sBarCode + "'," + HWhID + "," + HSPID + ",'" + HRedBlueFlag + "'," + HOWNERID + ",'" + HExpressNumber + "'", "h_p_Kf_SellOutBackBill_AddTemp_DifferentMater_FeiLong"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sHSourceBillType = "1403"; sHSourceBillNo = ""; sHSupID = 0; sHSupName = ""; sHDeptID = 0; sHDeptName = ""; return true; } else { sHSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); sHSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); sHSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); sHSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); sHDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); sHDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return true; } } catch (Exception e) { sErrMsg = "物料条码对应物料与源单物料不一致时,写入条码出入库临时表失败!" + e.Message; return false; } } #endregion #region 扫描物料条码返回源单生产汇报单信息 出门确认单模块专用 //扫描物料条码返回源单生产汇报单信息 [WebMethod] public bool set_SaveDoorOutCheck_BarCode(Model.ClsKF_PonderationBillMain_Temp oMain, ref string sHSourceBillNo, ref string sHSourceBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); dal.oModel = oMain; //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (oMain.HBarCode.CompareTo("#") > 0) { NewBarCode = oMain.HBarCode.Split(Convert.ToChar("#")); oMain.HBarCode = NewBarCode[0]; } DataSet Ds = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_Add_DoorOutCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oMain.HMaker + "','" + oMain.HBarCode + "'", "h_p_KF_PonderationBillMain_Temp_Add_DoorOutCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "返回源单生产汇报单信息失败,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 0) { sHSourceBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceBillNo"]); sHSourceBillType = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceBillType"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } return true; } #endregion #region 扫描条码返回未审核收料通知单信息 收料通知单审核模块专用 //扫描条码返回未审核收料通知单信息 [WebMethod] public bool set_SavePOInStockCheck_BarCode(string sBarCode, ref long sHBillID, ref string sHBillNo, ref string sHSup, ref string sHDept, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_Add_POInStockCheck '" + sBarCode + "'", "h_p_KF_PonderationBillMain_Temp_Add_POInStockCheck"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "返回收料通知单信息失败,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 0) { sHBillID = DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0]["HInterID"]); sHBillNo = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillNo"]); sHSup = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSupName"]); sHDept = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HDeptName"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } return true; } #endregion #region 调拨模块 扫描模治具条码 [WebMethod] //扫描物料条码存入临时表时判断仓库仓位是否正确 public bool Get_CheckTypeByMouldBarCode(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWhID, Int64 HSCSPID, bool HRedBlueFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AddMouldBarCode_New '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWhID.ToString() + "," + HSCSPID.ToString() +",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddMouldBarCode_New"); 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; } } } #endregion #endregion #region 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeBySource_New(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, bool HRedBlueflag, string HHMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 HAccessFlag = 0; //是否物料条码带出源单信息标志(0为直接扫源单条码,1为物料条码带出源单信息) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } oBar = getSourceBillList_New(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HRedBlueflag, HHMaker, HOWNERID, HAccessFlag, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单失败!" + sErrMsg; return null; } else { return oBar; } } #endregion #region 将源单信息存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS getSourceBillList_New(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, bool HRedBlueflag, string HHMaker, Int64 HOWNERID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) string sRedBlue = "蓝字"; if (HRedBlueflag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } //多源单模式时,sMulSourceFlag = 1 if (HBillType == "1202" && oSystemParameterMain.Kf_ProductInBill_MulSourceBill == "Y") { //生产入库单 sMulSourceFlag = 1; } else if (HBillType == "1201" && oSystemParameterMain.Kf_POStockInBill_MulSourceBill == "Y") { //采购入库单 sMulSourceFlag = 1; } else if (HBillType == "1210" && oSystemParameterMain.Kf_EntrustInBill_MulSourceBill == "Y") { //委外入库单 sMulSourceFlag = 1; } else if (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBill_MulSourceBill == "Y") { //生产领料单 sMulSourceFlag = 1; } else if (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBill_MulSourceBill == "Y") { //销售出库单 sMulSourceFlag = 1; } else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBill_MulSourceBill == "Y") { //委外出库单 sMulSourceFlag = 1; } else if (HBillType == "3711" && oSystemParameterMain.Sc_ICMOReportBill_MulSourceBill == "Y") { //生产汇报单 sMulSourceFlag = 1; } else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBill_MulSourceBill == "Y") { //生产补料单 sMulSourceFlag = 1; } else if (HBillType == "1207" && oSystemParameterMain.Kf_MoveStockBill_MulSourceBill == "Y") { //直接调拨单 sMulSourceFlag = 1; } else if (HBillType == "1250" && oSystemParameterMain.Kf_MoveStockStepOutBill_MulSourceBill == "Y") { //分步式调出单 sMulSourceFlag = 1; } else if (HBillType == "1251" && oSystemParameterMain.Kf_MoveStockStepInBill_MulSourceBill == "Y") { //分步式调入单 sMulSourceFlag = 1; } else if (HBillType == "1245" && oSystemParameterMain.Kf_ProductInBackBill_MulSourceBill == "Y") { //生产退库单 sMulSourceFlag = 1; } else if (HBillType == "1239" && oSystemParameterMain.Kf_POStockInBackBill_MulSourceBill == "Y") { //采购退料单 sMulSourceFlag = 1; } else if (HBillType == "1246" && oSystemParameterMain.Kf_EntrustInBackBill_MulSourceBill == "Y") { //委外退库单 sMulSourceFlag = 1; } else if (HBillType == "1244" && oSystemParameterMain.Kf_MateOutBackBill_MulSourceBill == "Y") { //生产退料单 sMulSourceFlag = 1; } else if (HBillType == "1247" && oSystemParameterMain.Kf_SellOutBackBill_MulSourceBill == "Y") { //销售退货单 sMulSourceFlag = 1; } else if (HBillType == "1238" && oSystemParameterMain.Kf_EntrustOutBackBill_MulSourceBill == "Y") { //委外退料单 sMulSourceFlag = 1; } DataSet ds1 = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_AddSource_New " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "','" + sRedBlue + "'," + sMulSourceFlag.ToString() + ",'" + HHMaker + "'," + HOWNERID.ToString() + "," + HAccessFlag.ToString(), "h_p_KF_PonderationBillMain_Temp_AddSource_New"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); oBar.HCustom = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HCustom"]); return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 界面控件功能调用方法 //根据单据类型获取单据子类型 [WebMethod] public DataSet get_BillSubType(string HBillType, Int64 HStockOrgID) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_GetBillSubType '" + HBillType + "'," + HStockOrgID.ToString(), "h_p_WMS_GetBillSubType"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return null; } else { return ds; } } catch (Exception e) { return null; } } #endregion #region 源单处理方法 #region 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_New(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, bool HRedBlueflag, bool SourceFlag, string HMaker, Double HPTQty, Int64 HPlanMode, Int64 HFIFOWhID, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 HAccessFlag = 0; //是否物料条码带出源单信息标志(0为直接扫源单条码,1为物料条码带出源单信息) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } oBar = getSourceBill_New2(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HRedBlueflag, HMaker, HPTQty, HPlanMode, HFIFOWhID, HOWNERID, HAccessFlag, SourceFlag, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单失败!" + sErrMsg; return null; } else { return oBar; } } #endregion #region 将源单信息存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS getSourceBill_New2(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, bool HRedBlueflag, string HMaker, Double HPTQty, Int64 HPlanMode, Int64 HFIFOWhID, Int64 HOWNERID, Int64 HAccessFlag, bool SourceFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) string sRedBlue = "蓝字"; if (HRedBlueflag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } //多源单模式时,sMulSourceFlag = 1 if (HBillType == "1202" && oSystemParameterMain.Kf_ProductInBill_MulSourceBill == "Y") { //生产入库单 sMulSourceFlag = 1; } else if (HBillType == "1201" && oSystemParameterMain.Kf_POStockInBill_MulSourceBill == "Y") { //采购入库单 sMulSourceFlag = 1; } else if (HBillType == "1210" && oSystemParameterMain.Kf_EntrustInBill_MulSourceBill == "Y") { //委外入库单 sMulSourceFlag = 1; } else if (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBill_MulSourceBill == "Y") { //生产领料单 sMulSourceFlag = 1; } else if (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBill_MulSourceBill == "Y") { //销售出库单 sMulSourceFlag = 1; } else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBill_MulSourceBill == "Y") { //委外出库单 sMulSourceFlag = 1; } else if (HBillType == "3711" && oSystemParameterMain.Sc_ICMOReportBill_MulSourceBill == "Y") { //生产汇报单 sMulSourceFlag = 1; } else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBill_MulSourceBill == "Y") { //生产补料单 sMulSourceFlag = 1; } else if (HBillType == "1207" && oSystemParameterMain.Kf_MoveStockBill_MulSourceBill == "Y") { //直接调拨单 sMulSourceFlag = 1; } else if (HBillType == "1250" && oSystemParameterMain.Kf_MoveStockStepOutBill_MulSourceBill == "Y") { //分步式调出单 sMulSourceFlag = 1; } else if (HBillType == "1251" && oSystemParameterMain.Kf_MoveStockStepInBill_MulSourceBill == "Y") { //分步式调入单 sMulSourceFlag = 1; } else if (HBillType == "1245" && oSystemParameterMain.Kf_ProductInBackBill_MulSourceBill == "Y") { //生产退库单 sMulSourceFlag = 1; } else if (HBillType == "1239" && oSystemParameterMain.Kf_POStockInBackBill_MulSourceBill == "Y") { //采购退料单 sMulSourceFlag = 1; } else if (HBillType == "1246" && oSystemParameterMain.Kf_EntrustInBackBill_MulSourceBill == "Y") { //委外退库单 sMulSourceFlag = 1; } else if (HBillType == "1244" && oSystemParameterMain.Kf_MateOutBackBill_MulSourceBill == "Y") { //生产退料单 sMulSourceFlag = 1; } else if (HBillType == "1247" && oSystemParameterMain.Kf_SellOutBackBill_MulSourceBill == "Y") { //销售退货单 sMulSourceFlag = 1; } else if (HBillType == "1238" && oSystemParameterMain.Kf_EntrustOutBackBill_MulSourceBill == "Y") { //委外退料单 sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_New " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "','" + sRedBlue + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HPTQty.ToString() + "," + HPlanMode.ToString() + "," + HFIFOWhID.ToString() + "," + HOWNERID.ToString() + "," + HAccessFlag.ToString(), "h_p_WMS_AddSourceBarCode_New"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { //先进先出控制 if ((HBillType == "1204" && oSystemParameterMain.Kf_MateOutBill_FIFOCtl == "Y") //生产领料单-先进先出控制 || (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBill_FIFOCtl == "Y") //销售出库单-先进先出控制 || (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBill_FIFOCtl == "Y")) //委外出库单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_New " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString(), "h_p_WMS_AddSourceFIFO_New"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "存入先进先出临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); oBar.HCustom = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HCustom"]); return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 扫描物料条码带出源单信息调用 #region 扫描唯一条码,将源单信息存入条码出入库临时表 生产汇报、生产入库、采购入库、委外入库、其他入库 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_MaterBarCode(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); if (HBillType == "3711") { //生产汇报单 oBar = get_SourceBill_ICMOReport(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1201") { //采购入库单 oBar = get_SourceBill_POStockIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1202") { //生产入库单 oBar = get_SourceBill_ProductIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1203") { //其他入库单 oBar = get_SourceBill_OtherIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1210") { //委外入库单 oBar = get_SourceBill_EntrustIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else { return oBar; } } #endregion #region 生产汇报 将源单信息存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_ICMOReport(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) if (oSystemParameterMain.Sc_ICMOReportBill_MulSourceBill.ToUpper() == "Y") //系统参数 生产汇报单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_ICMOReport " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HStockOrgID.ToString() + "," + HAccessFlag.ToString(), "h_p_WMS_AddSourceBarCode_ICMOReport"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 生产入库 将源单信息存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_ProductIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) if (oSystemParameterMain.Kf_ProductInBill_MulSourceBill.ToUpper() == "Y") //系统参数 生产入库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_ProductIn " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HStockOrgID.ToString() + "," + HAccessFlag.ToString(), "h_p_WMS_AddSourceBarCode_ProductIn"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 采购入库 将源单信息存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_POStockIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) if (oSystemParameterMain.Kf_POStockInBill_MulSourceBill.ToUpper() == "Y") //系统参数 采购入库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_POStockIn " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HStockOrgID.ToString() + "," + HAccessFlag.ToString(), "h_p_WMS_AddSourceBarCode_POStockIn"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 委外入库 将源单信息存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_EntrustIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) if (oSystemParameterMain.Kf_EntrustInBill_MulSourceBill.ToUpper() == "Y") //系统参数 委外入库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_EntrustIn " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HStockOrgID.ToString() + "," + HAccessFlag.ToString(), "h_p_WMS_AddSourceBarCode_EntrustIn"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 其他入库 将源单信息存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_OtherIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) if (oSystemParameterMain.Kf_OtherInBill_MulSourceBill.ToUpper() == "Y") //系统参数 其他入库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_OtherIn " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HStockOrgID.ToString() + "," + HAccessFlag.ToString(), "h_p_WMS_AddSourceBarCode_OtherIn"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 扫描托盘条码,将源单信息存入条码出入库临时表 生产汇报、生产入库、采购入库、委外入库、其他入库 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBill_PackBarCode(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, Int64 HAccessFlag, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); if (HBillType == "3711") { //生产汇报单 oBar = get_SourceBill_ICMOReport(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1201") { //采购入库单 oBar = get_SourceBill_POStockIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1202") { //生产入库单 oBar = get_SourceBill_ProductIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1203") { //其他入库单 oBar = get_SourceBill_OtherIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1210") { //委外入库单 oBar = get_SourceBill_EntrustIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else { return oBar; } } #endregion #endregion #region 返回源单信息 //根据所输源单号模糊查询源单信息,并返回数据(按源单选择按钮时调用) [WebMethod] public DataSet GetSourceBillList(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, ref string sErrMsg) { try { DataSet ds; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); ds = oCN.RunProcReturn("exec h_p_WMS_SourceBillList " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HOWNERID, "h_p_WMS_SourceBillList"); if (ds == null && ds.Tables[0].Rows.Count == 0) { sErrMsg = "返回源单列表信息失败,未知错误!"; return null; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { return ds; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return null; } } } catch (Exception e) { sErrMsg = "返回源单列表信息失败!" + e.Message; return null; } } #endregion #region 直接扫描源单条码调用 #region 生产入库 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_ProductIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID, ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } Int64 HAccessFlag = 0; //是否物料条码带出源单信息标志(0为直接扫源单条码,1为物料条码带出源单信息) oBar = get_SourceBill_ProductIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } #endregion #region 采购入库 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_POStockIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID, ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } Int64 HAccessFlag = 0; //是否物料条码带出源单信息标志(0为直接扫源单条码,1为物料条码带出源单信息) oBar = get_SourceBill_POStockIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } #endregion #region 其他入库 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_OtherIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } if (oSystemParameter.omodel.Kf_OtherInBill_MulSourceBill.ToUpper() == "Y") //系统参数 其他入库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_OtherIn " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HOWNERID.ToString() + ",1", "h_p_WMS_AddSourceBarCode_OtherIn"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); //oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); //oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); //oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 生产领料 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_MateOut(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Double HPTQty, Int64 HPlanMode, Int64 HFIFOWhID, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID,ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } if (oSystemParameter.omodel.Kf_MateOutBill_MulSourceBill.ToUpper() == "Y") //系统参数 生产领料单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_MateOut " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HPTQty.ToString() + "," + HPlanMode.ToString() + "," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceBarCode_MateOut"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { //先进先出控制 if (oSystemParameter.omodel.Kf_MateOutBill_FIFOCtl == "Y") //系统参数 生产领料单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_MateOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HPTQty.ToString() + "," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFO_MateOut"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } //先进先出下架清单 else if (oSystemParameter.omodel.Kf_MateOutBill_FIFOList == "Y") //系统参数 生产领料单-先进先出下架清单 { DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_MateOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HPTQty.ToString() + "," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFOList_MateOut"); if (FIFOList == null || FIFOList.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出下架清单失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFOList.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFOList.Tables[0].Rows[0]["HRemark"]); return null; } } } oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 销售出库 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_SellOut(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HFIFOWhID, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID,ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } if (oSystemParameter.omodel.Kf_SellOutBill_MulSourceBill.ToUpper() == "Y") //系统参数 销售出库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_SellOut " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceBarCode_SellOut"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { //先进先出控制 if (oSystemParameter.omodel.Kf_SellOutBill_FIFOCtl == "Y") //系统参数 销售出库单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_SellOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFO_SellOut"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } //先进先出下架清单 else if (oSystemParameter.omodel.Kf_SellOutBill_FIFOList == "Y") //系统参数 销售出库单-先进先出下架清单 { DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_SellOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFOList_SellOut"); if (FIFOList == null || FIFOList.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出下架清单失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFOList.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFOList.Tables[0].Rows[0]["HRemark"]); return null; } } } oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); oBar.HCustom = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HCustom"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 委外出库 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_EntrustOut(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HFIFOWhID, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID,ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } if (oSystemParameter.omodel.Kf_EntrustOutBill_MulSourceBill.ToUpper() == "Y") //系统参数 委外出库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_EntrustOut " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceBarCode_EntrustOut"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { //先进先出控制 if (oSystemParameter.omodel.Kf_EntrustOutBill_FIFOCtl == "Y") //系统参数 委外出库单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_EntrustOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFO_EntrustOut"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } //先进先出下架清单 else if (oSystemParameter.omodel.Kf_EntrustOutBill_FIFOList == "Y") //系统参数 委外出库单-先进先出下架清单 { DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_EntrustOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFOList_EntrustOut"); if (FIFOList == null || FIFOList.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出下架清单失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFOList.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFOList.Tables[0].Rows[0]["HRemark"]); return null; } } } oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 其他出库 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_OtherOut(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HFIFOWhID, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID, ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } if (oSystemParameter.omodel.Kf_OtherOutBill_MulSourceBill.ToUpper() == "Y") //系统参数 其他出库单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_OtherOut " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceBarCode_OtherOut"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { //先进先出控制 if (oSystemParameter.omodel.Kf_OtherOutBill_FIFOCtl == "Y") //系统参数 其他出库单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_OtherOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFO_OtherOut"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } //先进先出下架清单 else if (oSystemParameter.omodel.Kf_OtherOutBill_FIFOList == "Y") //系统参数 其他出库单-先进先出下架清单 { DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_OtherOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFOList_OtherOut"); if (FIFOList == null || FIFOList.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出下架清单失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFOList.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFOList.Tables[0].Rows[0]["HRemark"]); return null; } } } oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 直接调拨 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_MoveStock(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HFIFOWhID, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID,ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } if (oSystemParameter.omodel.Kf_MoveStockBill_MulSourceBill.ToUpper() == "Y") //系统参数 直接调拨单-多源单模式 { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_MoveStock " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceBarCode_MoveStock"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { //先进先出控制 if (oSystemParameter.omodel.Kf_MoveStockBill_FIFOCtl == "Y") //系统参数 直接调拨单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_MoveStock " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFO_MoveStock"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } //先进先出下架清单 else if (oSystemParameter.omodel.Kf_MoveStockBill_FIFOList == "Y") //系统参数 直接调拨单-先进先出下架清单 { DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_MoveStock " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddSourceFIFOList_MoveStock"); if (FIFOList == null || FIFOList.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出下架清单失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFOList.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFOList.Tables[0].Rows[0]["HRemark"]); return null; } } } oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); oBar.HStockOutOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockOutOrgID"]); oBar.HStockOutOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockOutOrgName"]); oBar.HStockInOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockInOrgID"]); oBar.HStockInOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockInOrgName"]); oBar.HStockStyle = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockStyle"]); oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); oBar.HSCWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSCWhID"]); oBar.HSCWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSCWhName"]); oBar.HSCSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSCSPFlag"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 分步式调出 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_MoveStockStepOut(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HFIFOWhID, Int64 HStockInOrgID, Int64 HStockOutOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOutOrgID, ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } //系统参数 直接调拨单-多源单模式 if (oSystemParameter.omodel.Kf_MoveStockStepOutBill_MulSourceBill.ToUpper() == "Y") { sMulSourceFlag = 1; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_MoveStockStepOut " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + HMaker + "'," + HFIFOWhID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddSourceBarCode_MoveStockStepOut"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { //先进先出控制 if (oSystemParameter.omodel.Kf_MoveStockStepOutBill_FIFOCtl == "Y") //系统参数 分步式调出单-先进先出控制 { DataSet FIFO = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFO_MoveStockStepOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddSourceFIFO_MoveStockStepOut"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } //先进先出下架清单 else if (oSystemParameter.omodel.Kf_MoveStockStepOutBill_FIFOList == "Y") //系统参数 分步式调出单-先进先出下架清单 { DataSet FIFOList = oCn.RunProcReturn("exec h_p_WMS_AddSourceFIFOList_MoveStockStepOut " + HInterID.ToString() + ",'" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + HFIFOWhID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddSourceFIFOList_MoveStockStepOut"); if (FIFOList == null || FIFOList.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";存入先进先出下架清单失败!"; return null; } else { if (DBUtility.ClsPub.isLong(FIFOList.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(FIFOList.Tables[0].Rows[0]["HRemark"]); return null; } } } oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); oBar.HStockOutOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockOutOrgID"]); oBar.HStockOutOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockOutOrgName"]); oBar.HStockInOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockInOrgID"]); oBar.HStockInOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockInOrgName"]); oBar.HStockStyle = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockStyle"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 分步式调入 扫描源单条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SourceBarCode_MoveStockStepIn(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Int64 HStockInOrgID, Int64 HStockOutOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 sMulSourceFlag = 0; //多源单标志(0为非多源单模式,1为多源单模式) string sSourceBarCodeCtl = "N"; //是否进行源单对应条码核对('Y'为核对) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单时获取系统参数失败! " + sErrMsg; return null; } //多源单模式 if (oSystemParameter.omodel.Kf_MoveStockStepInBill_MulSourceBill.ToUpper() == "Y") { sMulSourceFlag = 1; } //是否进行源单对应条码核对('Y'为核对) if (oSystemParameter.omodel.Kf_MoveStockStepInBill_SourceBarCodeCtl.ToUpper() == "Y") { sSourceBarCodeCtl = "Y"; } //将源单信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddSourceBarCode_MoveStockStepIn " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "'," + sMulSourceFlag.ToString() + ",'" + sSourceBarCodeCtl + "','" + HMaker + "'," + HStockOutOrgID.ToString(), "h_p_WMS_AddSourceBarCode_MoveStockStepIn"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";将源单信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "源单条码"; oBar.HMulSourceFlag = sMulSourceFlag; oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); oBar.HStockOutOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockOutOrgID"]); oBar.HStockOutOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockOutOrgName"]); oBar.HStockInOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockInOrgID"]); oBar.HStockInOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockInOrgName"]); oBar.HStockStyle = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockStyle"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #endregion #endregion #region 物料条码调用方法 #region 条码文本框 扫描条码调用方法 //一键扫码模式,根据条码前缀走 不同方法(仓库条码、仓位条码、单据号条码、物料条码) [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BarCode(string sBarCode, Int64 HInterID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HStockOrgID, string HScanStyle, string HCustom1, string HCustom2, ref string sErrMsg) { Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID,ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } if(HBillType == "1205" && oSystemParameter.omodel.WMS_CampanyName == "森楷") { oBar = get_CheckTypeByBarCode_New(sBarCode, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HStockOrgID, HCustom1, HScanStyle, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (oSystemParameter.omodel.WMS_CampanyName == "卓力" || oSystemParameter.omodel.WMS_CampanyName == "开山重工" || oSystemParameter.omodel.WMS_CampanyName == "杭州智见" || oSystemParameter.omodel.WMS_CampanyName == "四维尔" || oSystemParameter.omodel.WMS_CampanyName == "圣龙" || oSystemParameter.omodel.WMS_CampanyName == "雅琪诺" || oSystemParameter.omodel.WMS_CampanyName == "凯贝奈特" || oSystemParameter.omodel.WMS_CampanyName == "奥邦" || oSystemParameter.omodel.WMS_CampanyName == "博日科技" || oSystemParameter.omodel.WMS_CampanyName == "夏宝电器" || oSystemParameter.omodel.WMS_CampanyName == "瑞与祺" || oSystemParameter.omodel.WMS_CampanyName == "森楷") { oBar = get_CheckTypeByBarCode_All(sBarCode, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HStockOrgID, HCustom1, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else { oBar = get_BarCode_All(sBarCode, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HStockOrgID, HScanStyle, HCustom1, HCustom2, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } } #endregion #region 获取单据模块对应系统参数 [WebMethod] public bool get_SystemParameter_BarCode(string HBillType, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sSourceBillCtl, ref string sBatchNoCtl, ref string sMultilineCtl, ref string sMustQtyCtl, ref string sMaterWHSPCtl, ref string sSourceWHSPCtl, ref string sOneScanCtl, ref string sFIFOCtl, ref string sMulSourceCtl, ref string sErrMsg) { //生产汇报单 if (HBillType == "3711") { //是否进行源单信息核对('Y'为核对源单信息) if (oSystemParameterMain.Sc_ICMOReportBill_SourceBillCtl.ToUpper() == "Y") { sSourceBillCtl = "Y"; } //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Sc_ICMOReportBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Sc_ICMOReportBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Sc_ICMOReportBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Sc_ICMOReportBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Sc_ICMOReportBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Sc_ICMOReportBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Sc_ICMOReportBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Sc_ICMOReportBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //采购入库单 else if (HBillType == "1201") { //是否进行源单信息核对('Y'为核对源单信息) if (oSystemParameterMain.Kf_POStockInBill_SourceBillCtl.ToUpper() == "Y") { sSourceBillCtl = "Y"; } //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_POStockInBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_POStockInBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_POStockInBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_POStockInBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_POStockInBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_POStockInBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_POStockInBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_POStockInBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //产品入库单 else if (HBillType == "1202") { //是否进行源单信息核对('Y'为核对源单信息) if (oSystemParameterMain.Kf_ProductInBill_SourceBillCtl.ToUpper() == "Y") { sSourceBillCtl = "Y"; } //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_ProductInBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_ProductInBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_ProductInBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_ProductInBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_ProductInBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_ProductInBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_ProductInBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_ProductInBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //其他入库单 else if (HBillType == "1203") { //是否进行源单信息核对('Y'为核对源单信息) if (oSystemParameterMain.Kf_OtherInBill_SourceBillCtl.ToUpper() == "Y") { sSourceBillCtl = "Y"; } //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_OtherInBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_OtherInBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_OtherInBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_OtherInBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherInBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherInBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_OtherInBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_OtherInBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //委外入库单 else if (HBillType == "1210") { //是否进行源单信息核对('Y'为核对源单信息) if (oSystemParameterMain.Kf_EntrustInBill_SourceBillCtl.ToUpper() == "Y") { sSourceBillCtl = "Y"; } //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_EntrustInBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_EntrustInBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_EntrustInBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_EntrustInBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustInBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustInBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_EntrustInBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_EntrustInBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //生产领料单 else if (HBillType == "1204") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_MateOutBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_MateOutBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_MateOutBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_MateOutBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MateOutBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MateOutBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_MateOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //先进先出控制('Y'为控制) if (oSystemParameterMain.Kf_MateOutBill_FIFOCtl.ToUpper() == "Y") { sFIFOCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_MateOutBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //销售出库单 else if (HBillType == "1205") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_SellOutBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_SellOutBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_SellOutBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_SellOutBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_SellOutBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_SellOutBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_SellOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //先进先出控制('Y'为控制) if (oSystemParameterMain.Kf_SellOutBill_FIFOCtl.ToUpper() == "Y") { sFIFOCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_SellOutBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //其他出库单 else if (HBillType == "1206") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_OtherOutBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_OtherOutBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_OtherOutBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_OtherOutBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherOutBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherOutBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_OtherOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_OtherOutBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } //先进先出控制('Y'为控制) if (oSystemParameterMain.Kf_OtherOutBill_FIFOCtl.ToUpper() == "Y") { sFIFOCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_OtherOutBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //委外出库单 else if (HBillType == "1211") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_EntrustOutBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_EntrustOutBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_EntrustOutBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_EntrustOutBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustOutBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustOutBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_EntrustOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //先进先出控制('Y'为控制) if (oSystemParameterMain.Kf_EntrustOutBill_FIFOCtl.ToUpper() == "Y") { sFIFOCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_EntrustOutBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //生产补料单 else if (HBillType == "1254") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_MateReplenishOutBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_MateReplenishOutBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_MateReplenishOutBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_MateReplenishOutBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MateReplenishOutBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MateReplenishOutBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_MateReplenishOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_MateReplenishOutBill_MustQtyCtl.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //直接调拨单 else if (HBillType == "1207") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_MoveStockBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_MoveStockBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_MoveStockBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_MoveStockBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MoveStockBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MoveStockBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_MoveStockBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //先进先出控制('Y'为控制) if (oSystemParameterMain.Kf_MoveStockBill_FIFOCtl.ToUpper() == "Y") { sFIFOCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_MoveStockBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //分步式调出单 else if (HBillType == "1250") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_MoveStockStepOutBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_MoveStockStepOutBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_MoveStockStepOutBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_MoveStockStepOutBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MoveStockStepOutBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MoveStockStepOutBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_MoveStockStepOutBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //先进先出控制('Y'为控制) if (oSystemParameterMain.Kf_MoveStockStepOutBill_FIFOCtl.ToUpper() == "Y") { sFIFOCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_MoveStockStepOutBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //分步式调入单 else if (HBillType == "1251") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_MoveStockStepInBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_MoveStockStepInBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_MoveStockStepInBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_MoveStockStepInBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MoveStockStepInBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MoveStockStepInBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_MoveStockStepInBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_MoveStockStepInBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //采购退料(采购入库单(红字)) else if (HBillType == "1239") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_POStockInBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_POStockInBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_POStockInBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_POStockInBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_POStockInBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_POStockInBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_POStockInBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_POStockInBackBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //生产退库(产品入库单(红字)) else if (HBillType == "1245") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_ProductInBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_ProductInBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_ProductInBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_ProductInBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_ProductInBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_ProductInBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_ProductInBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_ProductInBackBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //其他入库单(红字) else if (HBillType == "1248") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_OtherInBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_OtherInBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_OtherInBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_OtherInBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherInBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherInBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_OtherInBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_OtherInBackBill_MustQtyCtl.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //委外退库(委外入库单(红字)) else if (HBillType == "1246") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_EntrustInBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_EntrustInBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_EntrustInBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_EntrustInBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustInBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustInBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_EntrustInBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_EntrustInBackBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //生产退料(生产领料单(红字)) else if (HBillType == "1244") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_MateOutBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_MateOutBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_MateOutBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_MateOutBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MateOutBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_MateOutBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_MateOutBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_MateOutBackBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //销售退货(销售出库单(红字)) else if (HBillType == "1247") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_SellOutBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_SellOutBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_SellOutBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_SellOutBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_SellOutBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_SellOutBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_SellOutBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_SellOutBackBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //其他出库单(红字) else if (HBillType == "1249") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_OtherOutBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_OtherOutBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_OtherOutBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_OtherOutBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherOutBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_OtherOutBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_OtherOutBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_OtherOutBackBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } //委外退料(委外出库单(红字)) else if (HBillType == "1238") { //是否进行批号核对('Y'为核对批号) if (oSystemParameterMain.Kf_EntrustOutBackBill_BatchNoCtl.ToUpper() == "Y") { sBatchNoCtl = "Y"; } //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) if (oSystemParameterMain.Kf_EntrustOutBackBill_MultilineCtl.ToUpper() == "Y") { sMultilineCtl = "Y"; } //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) if (oSystemParameterMain.Kf_EntrustOutBackBill_MustQtyCtl == "小于等于应收") { sMustQtyCtl = "小于等于应收"; } else if (oSystemParameterMain.Kf_EntrustOutBackBill_MustQtyCtl == "完全等于应收") { sMustQtyCtl = "完全等于应收"; } else { sMustQtyCtl = "不控制"; } //是否取物料默认仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustOutBackBill_MaterWHSPCtl.ToUpper() == "Y") { sMaterWHSPCtl = "Y"; } //是否取源单中仓库仓位('Y'为是) if (oSystemParameterMain.Kf_EntrustOutBackBill_SourceWHSPCtl.ToUpper() == "Y") { sSourceWHSPCtl = "Y"; } //一次扫码控制('Y'为控制) if (oSystemParameterMain.Kf_EntrustOutBackBill_BillTypeOneScan.ToUpper() == "Y") { sOneScanCtl = "Y"; } //是否启用多源单扫码模式('Y'为启用) if (oSystemParameterMain.Kf_EntrustOutBackBill_MulSourceBill.ToUpper() == "Y") { sMulSourceCtl = "Y"; } } return true; } #endregion #region 一键扫码 出入库模块,界面条码框 扫描条码调用方法 //一键扫码模式,根据条码前缀走 不同方法(仓库条码、仓位条码、单据号条码、物料条码) [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BarCode_All(string sBarCode, Int64 HInterID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HStockOrgID, string HScanStyle, string HCustom1, string HCustom2, ref string sErrMsg) { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID,ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } sBarCode = sBarCode.Trim(); if (sBarCode == "") { sErrMsg = "条码不能为空,请扫描条码!"; return null; } else { //判断条码是否含特殊符号 # ,如果含有则 拆分(# 前为条码编号;# 后如为数字,则默认递入数量为 #后显示的数量) string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if(HQty==0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } } //截取条码前三位字符串 string sBarCodePrefix = sBarCode.Substring(0, Math.Min(3, sBarCode.Length)); //根据系统参数,判断是否启用一键扫码模式,Y为启用 //未启用,只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); //根据条码前三位,判断是否为器具条码(器具条码前三位为"PAK") if (sBarCodePrefix == "PAK") { //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode '" + sBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_WMS_AddMouldBarCode"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { if(oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //将物料条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_BarCode(dal.omodel_View, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, SourceFlag, HSourceBillType, HStockOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描失败!" + dal.omodel_View.HBarCode + sErrMsg; return null; } SourceFlag = true; } } return oBar; } } else { //将托条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_PackBarCode(dal.omodel_View, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, 0, 0, SourceFlag, HSourceBillType, HStockOrgID, HStockOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_BarCode(dal.omodel_View, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, SourceFlag, HSourceBillType, HStockOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } } //启用,根据条码前缀走不同方法(仓库条码、仓位条码、部门条码、源单条码、物料条码) else { //根据递入的条码前三位,判断条码类型(仓库条码、仓位条码、部门条码、源单条码、物料条码) DataSet Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType,HSourceBillType from Xt_BarCodeType with(nolock) where HSourceNumber= '" + sBarCodePrefix + "' and (HBillType = '' or HBillType ='" + HBillType + "')", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); //根据条码前三位,判断是否为器具条码(器具条码前三位为"PAK") if (sBarCodePrefix == "PAK") { //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode '" + sBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_WMS_AddMouldBarCode"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { if (oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //将物料条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_BarCode(dal.omodel_View, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, SourceFlag, HSourceBillType, HStockOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描失败!" + dal.omodel_View.HBarCode + sErrMsg; return null; } SourceFlag = true; } } return oBar; } } else { //将托条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_PackBarCode(dal.omodel_View, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, 0, 0, SourceFlag, HSourceBillType, HStockOrgID, HStockOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_BarCode(dal.omodel_View, HInterID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, SourceFlag, HSourceBillType, HStockOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } } //仓库条码、仓位条码、部门条码、源单条码 else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); string sSourceBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceBillType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { oBar = get_BaseSet(sBarCode, HStockOrgID, sBarBillName, ref sErrMsg); if (oBar == null) { sErrMsg = "启用一键扫码模式," + sErrMsg; return null; } else { return oBar; } } //源单条码 else if (sBarBillType == "源单条码") { oBar = get_BillBarCode(HInterID, HBillNo, HBillType, sBarCode, sSourceBillType, HMaker, 0, 0, 0, HStockOrgID, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "启用一键扫码模式," + sErrMsg; return null; } else { oBar.HBarType = "源单条码"; return oBar; } } else { sErrMsg = "启用一键扫码模式,所扫条码前缀设置错误!"; return null; } } } } catch (Exception e) { sErrMsg = e.Message + ";" + e.StackTrace; return null; } } #endregion #region 一键扫码 扫描物料条码 //扫描物料条码 存入条码出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_SavePonderationBillMain_Temp_BarCode(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HInterID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool SourceFlag, string HSourceBillType, Int64 HStockOrgID, string HCustom1, string HCustom2, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); string HMaterNumber; //物料代码 string sSourceBillCtl = "N"; //是否进行源单信息核对('Y'为核对源单信息) string sBatchNoCtl = "N"; //是否进行批号核对('Y'为核对批号) string sMultilineCtl = "N"; //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) string sMustQtyCtl = "不控制"; //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) string sMaterWHSPCtl = "N"; //是否取物料默认仓库仓位('Y'为是) string sSourceWHSPCtl = "N"; //是否取源单中仓库仓位('Y'为是) string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) string sFIFOCtl = "N"; //先进先出控制('Y'为控制) string sMulSourceCtl = "N"; //是否启用多源单扫码模式('Y'为启用) int sWHSPCtl = 0; //界面仓库为空时,值变为1 //根据单据类型,获取对应单据系统参数值 if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg)) { } //蓝字入库、汇报模块,非无源单扫码、条码类型为 唯一条码 且为有源单生成的物料条码,扫描条码时自动带出源单信息,第一次扫码或启用多源单扫码模式 //采购入库(1201)、生产入库(1202)、其他入库(1203)、委外入库(1210)、生产汇报(3711) if (HSourceBillType != "-1" && omodel_View.HBarCodeType == "唯一条码" && omodel_View.HSourceBillNo != "" && (SourceFlag == false || sMulSourceCtl == "Y") && (HBillType == "1201" || HBillType == "1202" || HBillType == "1203" || HBillType == "1210" || HBillType == "3711")) { Int64 HAccessFlag = 1; //是否物料条码带出源单信息标志(0为直接扫源单条码,1为物料条码带出源单信息) oBar = get_SourceBill_MaterBarCode(HInterID, HBillNo, HBillType, omodel_View.HSourceBillNo, omodel_View.HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { SourceFlag = true; } } else { //无源单状态,设置源单类型为-1 if (SourceFlag == false) { //销售出库不允许无源单出库 if (HBillType == "1205") { sErrMsg = "不允许无源单出库,请先扫描源单!"; return null; } HSourceBillType = "-1"; } } //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断; 3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断 DataSet dsSource = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_SourceInterID " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + omodel_View.HBarCode + "','" + HSourceBillType + "'," + HStockOrgID.ToString() + "," + DBUtility.ClsPub.BoolToString(SourceFlag) + "," + sSourceBillCtl + ",'" + sBatchNoCtl + "','" + sMultilineCtl + "','" + sMaterWHSPCtl + "','" + sSourceWHSPCtl + "'", "h_p_WMS_AddBarCode_SourceInterID"); if (dsSource == null || dsSource.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0][0]) == 0) { omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HMaterID"]); omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSourceInterID"]); omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[0]["HSumQtyMust"]); //HSumQtyMust为源单相同物料剩余可扫数量 //获取仓库仓位信息 if (HWhID == 0) { HWhID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HWhID"]); HSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[0]["HSPID"]); sWHSPCtl = 1; } HMaterNumber = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HMaterNumber"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[0]["HRemark"]); return null; } } double sRelQty = 0; //获取扫码数量 if (omodel_View.HBarCodeType == "唯一条码") { if (HQty > 0 && omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!"; return null; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return null; } } } else //批次条码、品种条码 { if (HQty > 0) { sRelQty = HQty; } else if (omodel_View.HSourceQty > 0) { sRelQty = omodel_View.HSourceQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return null; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return null; } } } //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211)、生产补料(1254) //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) //出库、红字入库,判断条码库存、ERP库存 if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211" || HBillType == "1254" || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246") { double sWMSQty = 0; //条码库存数量 double sERPQty = 0; //ERP库存数量 string sWhName = ""; //仓库名称 string sSPName = ""; //仓位名称 //库存控制-WMS负库存控制 唯一条码、启用条码库存,仓库仓位获取顺序:界面上仓库仓位 > 条码库存仓库仓位 if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y") { //sWHSPCtl=1,表示界面上仓库仓位为空 if (sWHSPCtl == 1) { HWhID = 0; HSPID = 0; } //判断条码库存 返回条码库存数量 DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HInterID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory"); if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!"; return null; } else { HWhID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]); HSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]); sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HSPName"]); if(sWMSQty<=0) { sErrMsg = "所扫描物料条码:" + omodel_View.HBarCode + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无条码库存!"; return null; } //判断扫描数量与条码库存数量 else if (sRelQty > sWMSQty) { sRelQty = sWMSQty; } } } else //未启用条码库存,仓库仓位获取顺序:界面上仓库仓位 > 源单仓库仓位 > 物料默认仓库仓位 { //sWHSPCtl=1,表示界面上仓库仓位为空 匹配源单数据时返回多行数据,判断返回的多行数据中仓库仓位是否相同 if (sWHSPCtl == 1 && dsSource.Tables[0].Rows.Count > 1) { double sSumQty2 = 0; double sRemQty2 = 0; long sWHID = 0; long sSPID = 0; for (int i = 0; i < dsSource.Tables[0].Rows.Count; i++) { omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[i]["HQtyMust"]); //存在相同物料时,其中一行源单剩余可扫数量 sSumQty2 = sSumQty2 + omodel_View.HSourceQty; sRemQty2 = sRelQty - sSumQty2; if (i > 0 && (sWHID != DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HWhID"]) || sSPID != DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSPID"]))) { sErrMsg = "同时启用了获取源单子表仓库仓位、存在多行相同物料时自动拆分换行功能,但源单中相同物料对应仓库仓位不同,同一条码无法分配给多个仓库仓位,请选择仓库仓位后再扫码!"; return null; } sWHID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HWhID"]); sSPID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSPID"]); if (sRemQty2 <= 0) { break; } } } } //判断仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "仓库不允许为空,请先选择仓库!"; return null; } else { //根据仓库ID,判断是否启用仓位 DataSet dsWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockOrgID.ToString(), "Gy_Warehouse"); if (dsWH == null || dsWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选仓库不属于当前登入组织!"; return null; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "所选仓库启用了仓位,仓位不允许为空,请选择对应仓位!"; return null; } } //库存控制-ERP负库存控制 私有云模式 if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && oSystemParameterMain.WMS_CloudMode == "Y") { //判断ERP库存 返回ERP库存数量 DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HInterID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory"); if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!"; return null; } else { sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]); if (sERPQty <= 0) { sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!"; return null; } //判断扫描数量与金蝶库存数量 else if (sRelQty > sERPQty) { sRelQty = sERPQty; } } } //先进先出控制 if (HSourceBillType != "-1" && sFIFOCtl == "Y") { DataSet dsFIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HInterID.ToString() + ",'" + HBillType + "','" + omodel_View.HBatchNo + "','" + omodel_View.HBarCode + "'," + sRelQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode"); if (dsFIFO == null || dsFIFO.Tables[0].Rows.Count == 0) { sErrMsg = "判断先进先出控制发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsFIFO.Tables[0].Rows[0][0]) == 0) { sRelQty = DBUtility.ClsPub.isDoule(dsFIFO.Tables[0].Rows[0]["HQty"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(dsFIFO.Tables[0].Rows[0]["HRemark"]); return null; } } } } //采购入库(1201)、产品入库(1202)、其他入库蓝字(1203)、委外入库(1210)、生产汇报(3711) //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) //生产汇报、蓝字入库、红字出库,获取唯一条码剩余可扫描数量 else { //判断仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "仓库不允许为空,请先选择仓库!"; return null; } else { //根据仓库ID,判断是否启用仓位 DataSet dsInWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockOrgID.ToString(), "Gy_Warehouse"); if (sWHSPCtl == 1) { if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0) { sErrMsg = "源单或物料默认仓库维护信息错误,请重新维护正确仓库信息!"; return null; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "源单或物料中所维护的仓库启用了仓位,但没有维护仓位信息,请先维护好仓位信息!"; return null; } } else { if (dsInWH == null || dsInWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选仓库不属于当前登入组织!"; return null; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsInWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "所选仓库启用了仓位,仓位不允许为空,请选择对应仓位!"; return null; } } } //获取唯一条码剩余可扫描数量 if (omodel_View.HBarCodeType == "唯一条码") { DataSet DsInQty = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetInBillQty '" + omodel_View.HBarCode + "','" + HBillType + "'," + omodel_View.HQty.ToString(), "h_p_WMS_AddBarCode_GetInBillQty"); if (DsInQty == null || DsInQty.Tables[0].Rows.Count == 0) { //正常,不存在已扫码上传记录 } else { if(DBUtility.ClsPub.isDoule(DsInQty.Tables[0].Rows[0]["HQty"])==0) { sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,已被其他单据扫描上传,不允许再次扫码!"; return null; } else if (DBUtility.ClsPub.isDoule(DsInQty.Tables[0].Rows[0]["HQty"]) < sRelQty) { sRelQty = DBUtility.ClsPub.isDoule(DsInQty.Tables[0].Rows[0]["HQty"]); } } } } //唯一条码,是否启用一次扫码控制('Y'为启用) if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + ",0,0,'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return null; } } } //赋值,写入出入库临时表 double sSumQty = 0; double sRemQty = 0; for (int i = 0; i < dsSource.Tables[0].Rows.Count; i++) { omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(dsSource.Tables[0].Rows[i]["HQtyMust"]); //存在相同物料时,其中一行源单剩余可扫数量 sSumQty = sSumQty + omodel_View.HSourceQty; sRemQty = sRelQty - sSumQty; //数量 //只存在一行数据时,数量=条码可扫数量 if (dsSource.Tables[0].Rows.Count == 1) { oMain.HQty = sRelQty; } //存在多行相同物料,条码剩余数量<所选行源单剩余可扫数量 或 所选行源单为最后一条数据时 ,数量=条码剩余数量 else if (sRemQty <= 0 || (i == dsSource.Tables[0].Rows.Count - 1 && sRemQty > 0)) { oMain.HQty = sRemQty + omodel_View.HSourceQty; } //存在多行相同物料,条码剩余数量>所选行源单剩余可扫数量 ,数量=所选行源单剩余可扫数量 else { oMain.HQty = omodel_View.HSourceQty; } //条码条数 if (i == 0) { oMain.HPieceQty = 1; } else { oMain.HPieceQty = 0; } //红蓝单标志 //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) if (HBillType == "1244" || HBillType == "1247" || HBillType == "1249" || HBillType == "1238" || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246") { oMain.HRedBlueFlag = true; } else { oMain.HRedBlueFlag = false; } //是否多源单标志(0为非多源单模式,1为多源单模式) if (sMulSourceCtl == "Y") { oMain.HMulSourceBill = 1; } else { oMain.HMulSourceBill = 0; } if (HCustom1 == "工序汇报转移单") { oMain.HSubBillType = "1270"; HCustom1 = ""; } //条码类型为唯一条码,扫码存入时 HRelationEntryID=1,用于判断刷新列表时区分是否重复扫入 if (omodel_View.HBarCodeType == "唯一条码") { oMain.HRelationEntryID = 1; } oMain.HInterID = HInterID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = omodel_View.HMaterID; oMain.HUnitID = omodel_View.HUnitID; oMain.HAuxPropID = omodel_View.HAuxPropID; oMain.HQtyMust = 0; oMain.HBarCode = omodel_View.HBarCode; oMain.HBatchNo = omodel_View.HBatchNo; oMain.HMTONo = omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = 0; oMain.HOutStockPlaceID = 0; oMain.HSourceInterID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSourceInterID"]); oMain.HSourceEntryID = DBUtility.ClsPub.isLong(dsSource.Tables[0].Rows[i]["HSourceEntryID"]); oMain.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[i]["HSourceBillNo"]); oMain.HSourceBillType = DBUtility.ClsPub.isStrNull(dsSource.Tables[0].Rows[i]["HSourceBillType"]); if (omodel_View.HProduceDate sERPQty) { HRemark = HRemark + "对应物料代码:" + HMaterNumber + "、批号:" + omodel_View.HBatchNo + " ,在金蝶仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中数量为:" + sERPQty + " ,小于所扫条码数量:" + omodel_View.HQty + " 金蝶库存不足!"; } } } if(HRemark!="") { sErrMsg = "所扫描托条码:" + omodel_View.HBarCode + "," + HRemark; oCn.RollBack(); return null; } } } //唯一条码,是否启用一次扫码控制('Y'为启用) if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddPackBarCode_OneScan '" + omodel_View.HBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddPackBarCode_OneScan"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return null; } } } oBar.HBarType = "物料条码"; oCn.Commit(); return oBar; } catch (Exception e) { sErrMsg = e.Message; oCn.RollBack(); return null; } } #endregion #region 一键扫码 扫描基础资料条码 返回基础资料信息 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BaseSet(string sBarCode, Int64 HOWNERID, string sBarBillName, ref string sErrMsg) { Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID, HOWNERID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int sHSPID; int sHWHID; string[] sArray = sBarCode.Remove(0, 3).Split(';'); if (int.TryParse(sArray[1], out sHSPID) && int.TryParse(sArray[0], out sHWHID)) { if (dal.GetInfoByID(sHSPID, sHWHID, HOWNERID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } #endregion #region 一键扫码 扫描源单条码 返回源单信息 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BillBarCode(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HMaker, Double HPTQty, Int64 HPlanMode, Int64 HFIFOWhID, Int64 HStockOrgID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); Int64 HAccessFlag = 0; //是否物料条码带出源单信息标志(0为直接扫源单条码,1为物料条码带出源单信息) if (HBillType == "3711") { //生产汇报单 oBar = get_SourceBill_ICMOReport(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1201") { //采购入库单 oBar = get_SourceBill_POStockIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1202") { //生产入库单 oBar = get_SourceBarCode_ProductIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1203") { //其他入库单 oBar = get_SourceBarCode_OtherIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1210") { //委外入库单 oBar = get_SourceBill_EntrustIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HAccessFlag, oSystemParameterMain, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1204") { //生产领料单 oBar = get_SourceBarCode_MateOut(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HPTQty, HPlanMode, HFIFOWhID, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1205") { //销售出库单 oBar = get_SourceBarCode_SellOut(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HFIFOWhID, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1211") { //委外出库单 oBar = get_SourceBarCode_EntrustOut(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HFIFOWhID, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1206") { //其他出库单 oBar = get_SourceBarCode_OtherOut(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HFIFOWhID, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1207") { //直接调拨单 oBar = get_SourceBarCode_MoveStock(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HFIFOWhID, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1250") { //分步式调出单 oBar = get_SourceBarCode_MoveStockStepOut(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HFIFOWhID, HStockOrgID, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else if (HBillType == "1251") { //分步式调入单 oBar = get_SourceBarCode_MoveStockStepIn(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HMaker, HStockOrgID, HStockOrgID, ref sErrMsg); if (oBar == null) { return null; } else { return oBar; } } else { sErrMsg = "单据类型错误!"; return null; } } #endregion #region 扫描物料条码 调拨 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BarCode_MoveStock(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, string HScanStyle, ref string sErrMsg, string HCustom1 = "", string HCustom2 = "") { try { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOutOrgID,ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } sBarCode = sBarCode.Trim(); if (sBarCode == "") { sErrMsg = "条码不能为空,请扫描条码!"; return null; } else { //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); string sBarCodePrefix = sBarCode.Substring(0, Math.Min(3, sBarCode.Length));//截取条码前三位字符串 //根据系统参数,判断是否启用一键扫码模式,Y为启用 //未启用,只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { if (sBarCodePrefix == "PAK") { bool HRedBlueFlag = false; //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode_New '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HStockOutOrgID.ToString(), "h_p_WMS_AddMouldBarCode_New"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //森楷专用 if (oSystemParameter.omodel.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock_SenKai(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, "整托扫码", oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } oBar.HBarType = "物料条码"; return oBar; } else { //托盘条码 卓力 if (dal.omodel_View.HBarCodeType == "托盘条码" && oSystemParameter.omodel.WMS_CampanyName == "卓力") { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_Pack_MoveStock_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料托条码失败!" + sErrMsg; return null; } oBar.HBarType = "物料条码"; return oBar; } //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 else if (dal.omodel_View.HBarCodeType == "托盘条码") { if (oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } if (i != 0) { SourceFlag = true; } //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } } } oBar.HBarType = "物料条码"; return oBar; } } else { //将托条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_PackBarCode(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } oBar.HBarType = "物料条码"; return oBar; } } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } } //启用,根据条码前缀走不同方法(仓库条码、仓位条码、部门条码、源单条码、物料条码) else { //根据递入的条码前三位,判断条码类型(仓库条码、仓位条码、部门条码、源单条码、物料条码) DataSet Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType,HSourceBillType from Xt_BarCodeType with(nolock) where HSourceNumber= '" + sBarCodePrefix + "' and (HBillType = '' or HBillType ='" + HBillType + "')", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { if (sBarCodePrefix == "PAK") { bool HRedBlueFlag = false; //将模治具信息写入模治具出入库临时表 DataSet Mould = oCn.RunProcReturn("exec h_p_WMS_AddMouldBarCode_New '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HSourceBillNo + "','" + HSourceBillType + "','" + HRedBlueFlag + "','" + HMaker + "'," + HStockOutOrgID.ToString(), "h_p_WMS_AddMouldBarCode_New"); if (Mould == null || Mould.Tables[0].Rows.Count == 0) { sErrMsg = "将模治具信息写入模治具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(Mould.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "模治具条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(Mould.Tables[0].Rows[0]["HRemark"]); return null; } } } else { if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //森楷专用 if (oSystemParameter.omodel.WMS_CampanyName == "森楷") //系统参数 客户定制化名称 空白为通用 { if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock_SenKai(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, "整托扫码", oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } oBar.HBarType = "物料条码"; return oBar; } else { //托盘条码 卓力 if (dal.omodel_View.HBarCodeType == "托盘条码" && oSystemParameter.omodel.WMS_CampanyName == "卓力") { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_Pack_MoveStock_ZhuoLi(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料托条码失败!" + sErrMsg; return null; } oBar.HBarType = "物料条码"; return oBar; } //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 else if (dal.omodel_View.HBarCodeType == "托盘条码") { if (oSystemParameter.omodel.WMS_CampanyName == "杭州斯莫尔") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } if (i != 0) { SourceFlag = true; } //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } } } oBar.HBarType = "物料条码"; return oBar; } } else { //将托条码信息写入条码出入库临时表 oBar = get_SavePonderationBillMain_Temp_PackBarCode(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } else { return oBar; } } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStock(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, SourceFlag, HSourceBillType, HStockInOrgID, HStockOutOrgID, HCustom1, HCustom2, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } oBar.HBarType = "物料条码"; return oBar; } } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } } //仓库条码、仓位条码、部门条码、源单条码 else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); string sSourceBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceBillType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { oBar = get_BaseSet(sBarCode, HStockOutOrgID, sBarBillName, ref sErrMsg); if (oBar == null) { sErrMsg = "启用一键扫码模式," + sErrMsg; return null; } else { return oBar; } } //源单条码 else if (sBarBillType == "源单条码") { oBar = get_BillBarCode(HBillID, HBillNo, HBillType, sBarCode, sSourceBillType, HMaker, 0, 0, 0, HStockOutOrgID, oSystemParameter.omodel, ref sErrMsg); if (oBar == null) { sErrMsg = "启用一键扫码模式," + sErrMsg; return null; } else { oBar.HBarType = "源单条码"; return oBar; } } else { sErrMsg = "启用一键扫码模式,所扫条码前缀设置错误!"; return null; } } } } catch (Exception e) { sErrMsg = e.Message + ";" + e.StackTrace; return null; } } //扫描物料条码 存入条码出入库临时表 调拨 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_MoveStock(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, string HCustom1, string HCustom2, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); string HMaterNumber; //物料代码 string sSourceBillCtl = "N"; //是否进行源单信息核对('Y'为核对源单信息) string sBatchNoCtl = "N"; //是否进行批号核对('Y'为核对批号) string sMultilineCtl = "N"; //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) string sMustQtyCtl = "不控制"; //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) string sMaterWHSPCtl = "N"; //是否取物料默认仓库仓位('Y'为是) string sSourceWHSPCtl = "N"; //是否取源单中仓库仓位('Y'为是) string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) string sFIFOCtl = "N"; //先进先出控制('Y'为控制) string sMulSourceCtl = "N"; //是否启用多源单扫码模式('Y'为启用) //根据单据类型,获取对应单据系统参数值 if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg)) { } //判断调入仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "调入仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse"); if (dsWh == null || dsWh.Tables[0].Rows.Count == 0) { sErrMsg = "所选调入仓库不属于该调入组织!"; return false; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调入仓位没有选择!"; return false; } } //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断;3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStock '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillType + "'," + DBUtility.ClsPub.BoolToString(SourceFlag), "h_p_WMS_AddBarCode_MoveStock"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]); omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]); omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]); omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]); //源单可扫数量 HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } double sRelQty = 0; //获取扫码数量 if (omodel_View.HBarCodeType == "唯一条码") { if (HQty > 0 && omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } else //批次条码、品种条码 { if (HQty > 0) { sRelQty = HQty; } else if (omodel_View.HSourceQty > 0) { sRelQty = omodel_View.HSourceQty; } else { sRelQty = omodel_View.HQty; } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } double sWMSQty = 0; //条码库存数量 double sERPQty = 0; //ERP库存数量 string sWhName = ""; //仓库名称 string sSPName = ""; //仓位名称 if (omodel_View.HBarCodeType == "唯一条码") { //判断条码库存 库存控制-WMS负库存控制 if (oSystemParameterMain.WMS_WMSStockCtl == "Y" && HBillType != "1251") { //判断条码库存 返回条码库存数量 DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory"); if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!"; return false; } else { HSCWHID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]); HSCSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]); sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HSPName"]); if (sWMSQty <= 0) { sErrMsg = "所扫描物料条码:" + omodel_View.HBarCode + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无条码库存!"; return false; } //判断扫描数量与条码库存数量 else if (sRelQty > sWMSQty) { sRelQty = sWMSQty; } } } } //判断调出仓库、仓位是否有效 if (HSCWHID == 0) { sErrMsg = "调出仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse"); if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选调出仓库不属于该调出组织!"; return false; } else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调出仓位没有选择!"; return false; } } //判断ERP库存 库存控制-ERP负库存控制 私有云模式 if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && oSystemParameterMain.WMS_CloudMode == "Y" && HBillType != "1251") { //判断ERP库存 返回ERP库存数量 DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory"); if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!"; return false; } else { sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]); if (sERPQty <= 0) { sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!"; return false; } //判断扫描数量与金蝶库存数量 else if (sRelQty > sERPQty) { sRelQty = sERPQty; } } } if (HWhID == HSCWHID && HSPID == HSCSPID) { sErrMsg = "调入仓库、仓位不能与调出仓库、仓位相同!"; return false; } //唯一条码,是否启用一次扫码控制('Y'为启用) if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return false; } } } oMain.HInterID = HBillID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = omodel_View.HMaterID; oMain.HUnitID = omodel_View.HUnitID; oMain.HAuxPropID = omodel_View.HAuxPropID; oMain.HQty = sRelQty; oMain.HQtyMust = 0; oMain.HBarCode = omodel_View.HBarCode; oMain.HBatchNo = omodel_View.HBatchNo; oMain.HMTONo = omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = HSCWHID; oMain.HOutStockPlaceID = HSCSPID; oMain.HSourceInterID = omodel_View.HSourceInterID; oMain.HSourceEntryID = omodel_View.HSourceEntryID; oMain.HSourceBillNo = omodel_View.HSourceBillNo; oMain.HSourceBillType = HSourceBillType; if (omodel_View.HProduceDate < Convert.ToDateTime("1950-01-01")) { oMain.HBeginDate = ""; } else { oMain.HBeginDate = omodel_View.HProduceDate.ToShortDateString(); } if (omodel_View.HExpiryDate < Convert.ToDateTime("1950-01-01")) { oMain.HEndDate = ""; } else { oMain.HEndDate = omodel_View.HExpiryDate.ToShortDateString(); } oMain.HRedBlueFlag = false; oMain.HPieceQty = 1; oMain.HSTOCKORGID = HStockOutOrgID; oMain.HOWNERID = HStockInOrgID; oMain.HCusBarCode = HCustom1; //先进先出控制 if (HSourceBillType != "-1" && HBillType != "1251" && sFIFOCtl == "Y") { DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + oMain.HBatchNo + "','" + oMain.HBarCode + "'," + oMain.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "判断先进先出控制发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(FIFO.Tables[0].Rows[0][0]) == 0) { sRelQty = DBUtility.ClsPub.isDoule(FIFO.Tables[0].Rows[0]["HQty"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(FIFO.Tables[0].Rows[0]["HRemark"]); return false; } } } oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HUnitID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill,HBeginDate,HEndDate) " + " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HUnitID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','',0" + ",0,0,'" + oMain.HCusBarCode + "',0," + (oMain.HBeginDate == "" ? "NULL" : "'" + oMain.HBeginDate + "'") + "," + (oMain.HEndDate == "" ? "NULL" : "'" + oMain.HEndDate + "'") + ")"); return true; } //扫描物料条码 存入条码出入库临时表 调拨 森楷专用 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_MoveStock_SenKai(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, string HScanStyle, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); string sBarCode_New = ""; //判断调入仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "调入仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse"); if (dsWh == null || dsWh.Tables[0].Rows.Count == 0) { sErrMsg = "所选调入仓库不属于该调入组织!"; return false; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调入仓位没有选择!"; return false; } } //根据单个条码获取对应整托条码信息 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToBarCode_ScanStyle '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillType + "','" + HScanStyle + "'", "h_p_WMS_BeforeCheckToBarCode_ScanStyle"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "获取整托条码信息发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return false; } else if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 2) { sErrMsg = "此模块不允许反向拆码!"; return false; } else { omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillNo"]); omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSourceEntryID"]); omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSourceInterID"]); HSourceBillType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HSourceBillType"]); //获取调出仓库仓位信息 if (HSCWHID == 0) { HSCWHID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HWHID"]); HSCSPID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSPID"]); } else { if (HSCWHID != DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HWHID"]) || HSCSPID != DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0]["HSPID"])) { sErrMsg = "条码对应物料在界面所选调出仓库、调出仓位上无库存!"; return false; } } //将整托条码对应的条码编号拼成一串字符串 for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { sBarCode_New = sBarCode_New + "," + DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); } sBarCode_New = sBarCode_New.Remove(0, 1); //去掉字符串第一个字符 //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } } } //判断调出仓库、仓位是否有效 if (HSCWHID == 0) { sErrMsg = "调出仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse"); if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选调出仓库不属于该调出组织!"; return false; } else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调出仓位没有选择!"; return false; } } if (HWhID == HSCWHID && HSPID == HSCSPID) { sErrMsg = "调入仓库、仓位不能与调出仓库、仓位相同!"; return false; } //唯一条码,是否启用一次扫码控制('Y'为启用) if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.Kf_MoveStockBill_BillTypeOneScan.ToUpper() == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet ds = oCn.RunProcReturn("exec h_p_WMS_CheckBarCodeOneScan " + HBillID.ToString() + ",'" + omodel_View.HBarCode + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_CheckBarCodeOneScan"); if (ds == null || ds.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "对不起,您扫描的条形码已被扫描过,不符合一次扫码系统参数的要求!"; return false; } } } oMain.HInterID = HBillID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = omodel_View.HMaterID; oMain.HAuxPropID = omodel_View.HAuxPropID; oMain.HQty = omodel_View.HQty; oMain.HQtyMust = 0; oMain.HBarCode = omodel_View.HBarCode; oMain.HBatchNo = omodel_View.HBatchNo; oMain.HMTONo = omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = HSCWHID; oMain.HOutStockPlaceID = HSCSPID; oMain.HSourceInterID = omodel_View.HSourceInterID; oMain.HSourceEntryID = omodel_View.HSourceEntryID; oMain.HSourceBillNo = omodel_View.HSourceBillNo; oMain.HSourceBillType = HSourceBillType; oMain.HRedBlueFlag = false; oMain.HPieceQty = 1; oMain.HSTOCKORGID = HStockOutOrgID; oMain.HOWNERID = HStockInOrgID; oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " + " select " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "',HMaterID,HAuxPropID," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + ",HQty," + oMain.HPieceQty.ToString() + ",HBatchNo,HBarCode,''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','',0" + ",0,0,'" + oMain.HCusBarCode + "',0" + "from Gy_BarCodeBill with(nolock) where charindex(',' + HBarCode + ',',',' + '" + sBarCode_New + "' + ',')>0" ); return true; } //扫描物料条码(托盘条码) 存入条码出入库临时表 调拨 卓力专用 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_Pack_MoveStock_ZhuoLi(string sHBarCode_Pack, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, bool SourceFlag, string HSourceBillType, Int64 HStockInOrgID, Int64 HStockOutOrgID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); string HMaterNumber; //物料代码 string sSourceBillCtl = "N"; //是否进行源单信息核对('Y'为核对源单信息) string sBatchNoCtl = "N"; //是否进行批号核对('Y'为核对批号) string sMultilineCtl = "N"; //是否存在多行相同物料时自动拆分换行('Y'为自动拆分) string sMustQtyCtl = "不控制"; //扫码数量能否可超单据数量控制(小于等于应收、完全等于应收、不控制) string sMaterWHSPCtl = "N"; //是否取物料默认仓库仓位('Y'为是) string sSourceWHSPCtl = "N"; //是否取源单中仓库仓位('Y'为是) string sOneScanCtl = "N"; //一次扫码控制('Y'为控制) string sFIFOCtl = "N"; //先进先出控制('Y'为控制) string sMulSourceCtl = "N"; //是否启用多源单扫码模式('Y'为启用) string sBarCode = sHBarCode_Pack.Substring(0, sHBarCode_Pack.Length - 2);//截掉条码后两位字符串 double sRelQty = 0; //根据单据类型,获取对应单据系统参数值 if (get_SystemParameter_BarCode(HBillType, oSystemParameterMain, ref sSourceBillCtl, ref sBatchNoCtl, ref sMultilineCtl, ref sMustQtyCtl, ref sMaterWHSPCtl, ref sSourceWHSPCtl, ref sOneScanCtl, ref sFIFOCtl, ref sMulSourceCtl, ref sErrMsg)) { } //判断调入仓库、仓位是否有效 if (HWhID == 0) { sErrMsg = "调入仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsWh = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HWhID.ToString() + " and HUSEORGID= " + HStockInOrgID.ToString(), "Gy_Warehouse"); if (dsWh == null || dsWh.Tables[0].Rows.Count == 0) { sErrMsg = "所选调入仓库不属于该调入组织!"; return false; } else if (HSPID == 0 && DBUtility.ClsPub.isBool(dsWh.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调入仓位没有选择!"; return false; } } //无源单状态,设置源单类型为-1 if (SourceFlag == false) { HSourceBillType = "-1"; } if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "托条码对应条码: " + sBarCode + " 已被禁用,不允许扫描!"; return false; } else { //1、首次扫码防串单判断; 2、源单类型是否在源单列表里判断;3、唯一条码是否存在相同条码判断; 4、有源单,物料是否在源单中判断 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStock_Pack_ZhuoLi '" + sHBarCode_Pack + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillType + "'," + DBUtility.ClsPub.BoolToString(SourceFlag), "h_p_WMS_AddBarCode_MoveStock_Pack_ZhuoLi"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceEntryID"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]); dal.omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HQtyMust"]); //源单可扫数量 sRelQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HBarCodeQty_Sum"]); //托条码总数量 HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } //有源单扫码,根据系统参数 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (dal.omodel_View.HSourceInterID != 0 && (sMustQtyCtl == "小于等于应收" || sMustQtyCtl == "完全等于应收")) { if (dal.omodel_View.HSourceQty == 0) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫物料在列表中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > dal.omodel_View.HSourceQty) { sErrMsg = "启用条码扫描数量不能超源单可扫数量,所扫描条码数量为 " + sRelQty.ToString() + " 大于列表中剩余可扫描数量" + dal.omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } double sERPQty = 0; //ERP库存数量 string sWhName = ""; //仓库名称 string sSPName = ""; //仓位名称 if (dal.omodel_View.HBarCodeType == "唯一条码") { //判断条码库存 库存控制-WMS负库存控制 if (oSystemParameterMain.WMS_WMSStockCtl == "Y" && HBillType != "1251") { //判断条码库存 返回条码库存数量 DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi " + HBillID.ToString() + ",'" + HBillType + "','" + sHBarCode_Pack + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory_Pack_ZhuoLi"); if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) { sErrMsg = "判断条码库存发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HRemark"]); return false; } } } } //判断调出仓库、仓位是否有效 if (HSCWHID == 0) { sErrMsg = "调出仓库没有选择!"; return false; } else { //根据仓库ID,判断是否启用仓位 DataSet dsSCWH = oCn.RunProcReturn(" select HSPFlag from Gy_Warehouse with(nolock) where HItemID= " + HSCWHID.ToString() + " and HUSEORGID= " + HStockOutOrgID.ToString(), "Gy_Warehouse"); if (dsSCWH == null || dsSCWH.Tables[0].Rows.Count == 0) { sErrMsg = "所选调出仓库不属于该调出组织!"; return false; } else if (HSCSPID == 0 && DBUtility.ClsPub.isBool(dsSCWH.Tables[0].Rows[0]["HSPFlag"]) == true) { sErrMsg = "调出仓位没有选择!"; return false; } } //判断ERP库存 库存控制-ERP负库存控制 if (oSystemParameterMain.WMS_ERPStockCtl == "Y" && HBillType != "1251") { //判断ERP库存 返回ERP库存数量 DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + dal.omodel_View.HAuxPropID.ToString() + ",'" + dal.omodel_View.HBatchNo + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + HStockOutOrgID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory"); if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描托条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!"; return false; } else { sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]); if (sERPQty <= 0) { sErrMsg = "所扫描托条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!"; return false; } //判断扫描数量与金蝶库存数量 else if (sRelQty > sERPQty) { sErrMsg = "所扫描托条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,金蝶云库存数量为 " + sERPQty.ToString() + " 小于托条码总数量" + sRelQty.ToString() + " !"; return false; } } } if (HWhID == HSCWHID && HSPID == HSCSPID) { sErrMsg = "调入仓库、仓位不能与调出仓库、仓位相同!"; return false; } //唯一条码,是否启用一次扫码控制('Y'为启用) if (dal.omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "Y") { //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi '" + sHBarCode_Pack + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + "," + HSCWHID.ToString() + "," + HSCSPID.ToString() + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan_Pack_ZhuoLi"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return false; } } } //是否多源单标志(0为非多源单模式,1为多源单模式) if (sMulSourceCtl == "Y") { oMain.HMulSourceBill = 1; } else { oMain.HMulSourceBill = 0; } //条码类型为唯一条码,扫码存入时 HRelationEntryID=1,用于判断刷新列表时区分是否重复扫入 if (dal.omodel_View.HBarCodeType == "唯一条码") { oMain.HRelationEntryID = 1; } oMain.HInterID = HBillID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = dal.omodel_View.HMaterID; oMain.HQtyMust = 0; oMain.HMTONo = dal.omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = HSCWHID; oMain.HOutStockPlaceID = HSCSPID; oMain.HSourceInterID = dal.omodel_View.HSourceInterID; oMain.HSourceEntryID = dal.omodel_View.HSourceEntryID; oMain.HSourceBillNo = dal.omodel_View.HSourceBillNo; oMain.HSourceBillType = HSourceBillType; oMain.HRedBlueFlag = false; oMain.HPieceQty = 1; oMain.HSTOCKORGID = HStockOutOrgID; oMain.HOWNERID = HStockInOrgID; //先进先出控制 if ((HBillType == "1207" && oSystemParameterMain.Kf_MoveStockBill_FIFOCtl == "Y") //系统参数 直接调拨单-先进先出控制 ) { DataSet FIFO = oCn.RunProcReturn("exec h_p_Kf_ICInventory_FIFO_Tmp_BarCode " + HBillID.ToString() + ",'" + HBillType + "','" + oMain.HBatchNo + "','" + oMain.HBarCode + "'," + oMain.HQty.ToString(), "h_p_Kf_ICInventory_FIFO_Tmp_BarCode"); if (FIFO == null || FIFO.Tables[0].Rows.Count == 0) { sErrMsg = "启用先进先出控制,所扫条码不在先进先出列表清单中!"; return false; } } oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " + " select " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + ",HAuxPropID," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + ",HQty," + oMain.HPieceQty.ToString() + ",HBatchNo,HBarCode,''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + "," + oMain.HSTOCKORGID.ToString() + ",'','','" + oMain.HSubBillType + "'" + ",0,0,'" + oMain.HCusBarCode + "'," + oMain.HMulSourceBill.ToString() + "from Gy_BarCodeBill with(nolock) where HBarCode_Pack= '" + sHBarCode_Pack + "' and HBarCodeType='唯一条码' order by HItemID" ); return true; } } else { sErrMsg = "条码档案中不存在该托条码所对应条码: " + sBarCode + " ,请确认该条码是否已被删除!"; return false; } } #endregion #endregion #region 模具条码处理方法 #region 扫描模具源单条码 [WebMethod] public Model.ClsKf_ICStockBill_Mould get_CheckTypeByMouldSource(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HHMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_Mould oBar = new Model.ClsKf_ICStockBill_Mould(); oBar = getMouldSourceBillList(HInterID, HBillNo, HBillType, HSourceBillNo, HSourceBillType, HHMaker, HOWNERID, ref sErrMsg); if (oBar == null) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描源单失败!" + sErrMsg; return null; } else { return oBar; } } //将模具源单信息存入模具出入库临时表 [WebMethod] public Model.ClsKf_ICStockBill_Mould getMouldSourceBillList(Int64 HInterID, string HBillNo, string HBillType, string HSourceBillNo, string HSourceBillType, string HHMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_Mould oBar = new Model.ClsKf_ICStockBill_Mould(); DataSet ds1 = oCn.RunProcReturn("exec h_p_Sc_MouldStockBillMain_Temp_AddSource " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HSourceBillNo + "','" + HSourceBillType + "','" + HHMaker + "'," + HOWNERID.ToString(), "h_p_Sc_MouldStockBillMain_Temp_AddSource"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "将源单信息存入器具出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HSourceBillType = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillType"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSourceBillNo"]); oBar.HSupID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSupID"]); oBar.HSupName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSupName"]); oBar.HDeptID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HDeptID"]); oBar.HDeptName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HDeptName"]); oBar.HStockStyle = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockStyle"]); oBar.HStockInOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockInOrgID"]); oBar.HStockInOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockInOrgName"]); oBar.HStockOutOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockOutOrgID"]); oBar.HStockOutOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockOutOrgName"]); return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 盘点单模块 扫描模治具条码 [WebMethod] //扫描模治具条码存入模治具条码临时表,盘点单专用 public bool Get_CheckTypeByMouldBarCode_ProdCheckStock(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, Int64 HWhID, Int64 HSPID, Int64 HStockCheckItemID, string HStockCheckNumber, Int64 HCorrespondentTypeID, Int64 HCorrespondentID, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AddMouldBarCode_ProdCheckStock '" + sBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HStockCheckItemID.ToString() + ",'" + HStockCheckNumber + "'," + HCorrespondentTypeID.ToString() + "," + HCorrespondentID.ToString() + ",'" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddMouldBarCode_ProdCheckStock"); 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; } } } #endregion //显示模治具列表信息 [WebMethod] public DataSet GetMouldBillEntry_TmpList(long HInterID, string HBillNo, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_WMS_MouldBillEntryTmpList " + HInterID.ToString() + ",'" + HBillType + "'", "h_p_WMS_MouldBillEntryTmpList"); return DS; } //删除模治具列表中选中行记录 [WebMethod] public bool set_DelSc_MouldStockBillMain_Temp(long HInterID, long HMouldInterID, string sHBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from Sc_MouldStockBillMain_Temp where HInterID=" + HInterID.ToString() + " and HBillType='" + sHBillType + "' and HMouldID=" + HMouldInterID.ToString() + " and HQty<>0", ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除模治具出入库临时表记录失败!" + e.Message; return false; } } //上传生成模具出入库单 [WebMethod] public bool set_SaveMouldStockBill_New(Model.ClsSc_MouldStockBillMain oMain, string sHSourceType, ref string sErrMsg) { //上传前判断 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_Sc_PreUpload_MouldStockBill " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "'," + oMain.HSupID.ToString(), "h_p_Sc_PreUpload_MouldStockBill"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "上传前判断数据完整性失败!"; return false; } else { if (DBUtility.ClsPub.isLong(Ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRemark"]); return false; } } try { oCn.BeginTran(); string HMouldBillType = oMain.HBillType; oCn.RunProc("EXEC h_p_Sc_MouldStockBill_Insert_New " + oMain.HInterID.ToString() + ",'" + oMain.HBillType + "','" + HMouldBillType + "'," + oMain.HSupID.ToString() + "," + oMain.HKeeperID.ToString() + "," + oMain.HSecManagerID.ToString() + "," + oMain.HDeptID.ToString() + "," + oMain.HCorrespondentTypeID.ToString()); //更新关联数量 if (oMain.HBillType == "3841" && sHSourceType == "3840") { //器具分步调入单,源单:器具分步调出单 oCn.RunProc("exec h_p_Sc_UpDateMouldMoveStockStepOutRelation_Add " + oMain.HInterID.ToString()); } oCn.Commit(); return true; } catch (Exception e) { sErrMsg = "生成模具出入库单失败!" + e.Message; oCn.RollBack(); return false; } } #region 模具缓存列表处理方法 //缓存列表界面,选择编辑时,判断所选单据是否存在已上传记录 [WebMethod] public bool MouldTempList_Modify(Int64 sHInterID, string sHBillNo, string sHBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_MouldTempList_Modify " + sHInterID + ",'" + sHBillNo + "','" + sHBillType + "'", "h_p_WMS_MouldTempList_Modify"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { sErrMsg = "模具缓存列表编辑前判断失败!"; return false; } 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; } } //缓存列表界面,返回缓存表头信息 [WebMethod] public DataSet GetMouldSource(string HBillType, string HSourceBillNo, string HSourceType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_Sc_MouldSourceList '" + HBillType.ToString() + "','" + HSourceBillNo + "','" + HSourceType + "'", "h_p_Sc_MouldSourceList"); return DS; } //缓存列表界面,返回缓存列表信息 [WebMethod] public DataSet GetSc_MouldStockBillMain_TempList(string sHBillType, string sHMaker, Int64 sHOWNERID) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_Sc_GetMouldStockBillMain_TempList '" + sHBillType + "','" + sHMaker + "'," + sHOWNERID.ToString(), "h_p_Sc_GetMouldStockBillMain_TempList"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } //缓存列表界面,删除缓存列表单据 [WebMethod] public bool DeleteMouldBillList(Int64 HInterID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from Sc_MouldStockBillMain_Temp where HInterID=" + HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除失败!" + e.Message; return false; } } #endregion #endregion #region 单据列表数据处理 //显示物料明细列表、模治具列表、先进先出列表信息 [WebMethod] public DataSet GetBillEntry_TmpList(long HInterID, string HBillNo, string HBillType, ref string sMouldManagerCtl, ref string sFIFOCtl, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); string sSimpleMode = "N"; //是否启用扫码简易模式,只显示已扫码源单记录(Y,N) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";返回物料明细列表时获取系统参数失败! " + sErrMsg; return null; } //判断是否启用器具管理(Y,N) if (oSystemParameter.omodel.WMS_MouldManagerCtl == "Y") //启用模治具管理 { sMouldManagerCtl = "Y"; } //判断是否启用先进先出管理(Y,N),是否启用扫码简易模式,只显示已扫码源单记录(Y,N) if (HBillType == "1204") //生产领料单 { if (oSystemParameter.omodel.Kf_MateOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MateOutBill_FIFOList == "Y") //生产领料单-先进先出控制 { sFIFOCtl = "Y"; } if (oSystemParameter.omodel.Kf_MateOutBill_SimpleMode == "Y") //生产领料单-扫码简易模式 { sSimpleMode = "Y"; } } else if (HBillType == "1205" && (oSystemParameter.omodel.Kf_SellOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_SellOutBill_FIFOList == "Y")) //销售出库单-先进先出控制 { sFIFOCtl = "Y"; } else if (HBillType == "1211" && oSystemParameter.omodel.Kf_EntrustOutBill_FIFOCtl == "Y") //委外出库单-先进先出控制 { sFIFOCtl = "Y"; } else if (HBillType == "1207" && (oSystemParameter.omodel.Kf_MoveStockBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MoveStockBill_FIFOList == "Y")) //直接调拨单-先进先出控制 { sFIFOCtl = "Y"; } DataSet DS = oCn.RunProcReturn("exec h_p_WMS_BillEntryTmpList " + HInterID.ToString() + ",'" + HBillType + "','" + sMouldManagerCtl + "','" + sFIFOCtl + "','" + sSimpleMode + "'", "h_p_WMS_BillEntryTmpList"); return DS; } //显示物料明细列表、模治具列表、先进先出列表信息(根据组织获取系统参数) [WebMethod] public DataSet GetBillEntryTmpList(long HInterID, string HBillNo, string HBillType, Int64 HStockOrgID, ref string sMouldManagerCtl, ref string sFIFOCtl, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); string sSimpleMode = "N"; //是否启用扫码简易模式,只显示已扫码源单记录(Y,N) //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID,ref sErrMsg) == false) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";返回物料明细列表时获取系统参数失败! " + sErrMsg; return null; } //判断是否启用器具管理(Y,N) if (oSystemParameter.omodel.WMS_MouldManagerCtl == "Y") //启用模治具管理 { sMouldManagerCtl = "Y"; } //判断是否启用先进先出管理(Y,N),是否启用扫码简易模式,只显示已扫码源单记录(Y,N) if (HBillType == "1204") //生产领料单 { if (oSystemParameter.omodel.Kf_MateOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MateOutBill_FIFOList == "Y") //生产领料单-先进先出控制 { sFIFOCtl = "Y"; } if (oSystemParameter.omodel.Kf_MateOutBill_SimpleMode == "Y") //生产领料单-扫码简易模式 { sSimpleMode = "Y"; } } else if (HBillType == "1205" && (oSystemParameter.omodel.Kf_SellOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_SellOutBill_FIFOList == "Y")) //销售出库单-先进先出控制 { sFIFOCtl = "Y"; } else if (HBillType == "1211" && (oSystemParameter.omodel.Kf_EntrustOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_EntrustOutBill_FIFOList == "Y")) //委外出库单-先进先出控制 { sFIFOCtl = "Y"; } else if (HBillType == "1206" && (oSystemParameter.omodel.Kf_OtherOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_OtherOutBill_FIFOList == "Y")) //其他出库单-先进先出控制 { sFIFOCtl = "Y"; } else if (HBillType == "1207" && (oSystemParameter.omodel.Kf_MoveStockBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MoveStockBill_FIFOList == "Y")) //直接调拨单-先进先出控制 { sFIFOCtl = "Y"; } else if (HBillType == "1250" && (oSystemParameter.omodel.Kf_MoveStockStepOutBill_FIFOCtl == "Y" || oSystemParameter.omodel.Kf_MoveStockStepOutBill_FIFOList == "Y")) //分步式调出单-先进先出控制 { sFIFOCtl = "Y"; } DataSet DS = oCn.RunProcReturn("exec h_p_WMS_BillEntryTmpList " + HInterID.ToString() + ",'" + HBillType + "','" + sMouldManagerCtl + "','" + sFIFOCtl + "','" + sSimpleMode + "'", "h_p_WMS_BillEntryTmpList"); return DS; } #endregion #region 生产装箱、拆箱模块调用方法 #region 扫描托条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByPackBarCode_Pack(Int64 HInterID, string HBillNo, string HBillType, string HBarCode_Pack, string HHMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DataSet ds = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_Temp_AddPackBarCode_Pack " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HHMaker + "'," + HOWNERID.ToString(), "h_p_KF_PonderationBillMain_Temp_AddPackBarCode_Pack"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描托条码判断失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceBillNo"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描托条码失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 生产装箱模块 扫描装箱条码 [WebMethod] public bool get_CheckTypeByBarCode_PackUnion(string HBarCode, Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AddBarCode_PackUnion '" + HBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_PackUnion"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描装箱条码失败!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return false; } } } #endregion #region 生产拆箱模块 扫描拆箱条码 [WebMethod] public bool get_CheckTypeByBarCode_PackSplit(string HBarCode, Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AddBarCode_PackSplit '" + HBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_PackSplit"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描拆箱条码失败!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return false; } } } #endregion #region 生产装箱、拆箱模块,返回列表信息 [WebMethod] public DataSet GetBillEntry_TmpList_Pack(Int64 HInterID, string HBillNo, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_WMS_BillEntryTmpList_Pack " + HInterID.ToString() + ",'" + HBillType + "'", "h_p_WMS_BillEntryTmpList_Pack"); return DS; } #endregion #region 上传生成生产装箱单 [WebMethod] public bool set_SavePackUnionBill_New(Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.BeginTran(); DataSet ds = oCn.RunProcReturn("exec h_p_Sc_PackUnionBill_Insert " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_Sc_PackUnionBill_Insert"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";上传失败!"; oCn.RollBack(); return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { //根据装箱单子表信息重新生成装箱单汇总子表,将汇总子表中条码写入条码档案 Int64 HPackUnionInterID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HPackUnionInterID"]); string HPackUnionBillType = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HPackUnionBillType"]); string HPackUnionBillNo = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HPackUnionBillNo"]); string HPackUnionMaker = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HPackUnionMaker"]); oCn.RunProc("EXEC h_p_Sc_PackUnionBillSub_Sum_Insert " + HPackUnionInterID.ToString() + ",'" + HPackUnionBillType + "','" + HPackUnionBillNo + "','" + HPackUnionMaker + "'"); oCn.Commit(); return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成生产装箱单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 上传生成生产拆箱单 [WebMethod] public bool set_SavePackSplitBill_New(Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.BeginTran(); DataSet ds = oCn.RunProcReturn("exec h_p_Sc_PackSplitBill_Insert " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_Sc_PackSplitBill_Insert"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";上传失败!"; oCn.RollBack(); return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { //根据组托单子表信息重新生成组托单汇总子表,将汇总子表中条码写入条码档案 Int64 HPackUnionInterID = Pub_Class.ClsPub.isLong(ds.Tables[0].Rows[0]["HPackUnionInterID"]); string HPackUnionBillType = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HPackUnionBillType"]); string HPackUnionBillNo = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HPackUnionBillNo"]); string HPackUnionMaker = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HPackUnionMaker"]); oCn.RunProc("EXEC h_p_Sc_PackUnionBillSub_Sum_Insert " + HPackUnionInterID.ToString() + ",'" + HPackUnionBillType + "','" + HPackUnionBillNo + "','" + HPackUnionMaker + "'"); oCn.Commit(); return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成生产拆箱单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 删除明细表体选中行记录 [WebMethod] public bool set_DelPonderationBillMain_Temp_Pack(Int64 HInterID, string HBarCode, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from KF_PonderationBillMain_Temp where HInterID=" + HInterID.ToString() + " and HBillType='" + HBillType + "' and HBarCode='" + HBarCode + "' and HPieceQty=1", ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除临时表记录失败!" + e.Message; return false; } } #endregion #endregion #region 生产组托单模块调用方法 20230406新增 #region 生产组托单模块 扫描托条码 [WebMethod] public Model.ClsGy_BarCodeBill_WMS_Model get_PackBarCode_PackUnionBill(Int64 HInterID, string HBillNo, string HBillType, string HBarCode_Pack, string HHMaker, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsGy_BarCodeBill_WMS_Model oBar = new Model.ClsGy_BarCodeBill_WMS_Model(); DataSet ds = oCn.RunProcReturn("exec h_p_WMS_AddPackBarCode_PackUnionBill " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HHMaker + "'," + HStockOrgID.ToString(), "h_p_WMS_AddPackBarCode_PackUnionBill"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描托条码判断失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { oBar.HBarCode = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBarCode_Pack"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描托条码失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 生产组托单模块 扫描托条码对应单个条码 [WebMethod] public bool get_BarCode_PackUnionBill(string HBarCode, Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } string sSourceBillTypeCtl = "Y"; //未入库条码进行组托时,进行同源单类型控制(Y为控制) string sSourceBillNoCtl = "Y"; //未入库条码进行组托时,进行同源单控制(Y为控制) sSourceBillTypeCtl = oSystemParameter.omodel.Sc_PackUnionBill_SourceBillTypeCtl; sSourceBillNoCtl = oSystemParameter.omodel.Sc_PackUnionBill_SourceBillNoCtl; SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AddBarCode_PackUnionBill '" + HBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + sSourceBillTypeCtl + "','" + sSourceBillNoCtl + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_PackUnionBill"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描条码判断失败!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return false; } } } #endregion #region 返回组托列表信息 [WebMethod] public DataSet GetBillEntry_Tmp_Pack(Int64 HInterID, string HBillNo, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_WMS_BillEntryTmp_Pack " + HInterID.ToString() + ",'" + HBillType + "'", "h_p_WMS_BillEntryTmp_Pack"); return DS; } #endregion #region 删除明细表体选中行记录 [WebMethod] public bool set_DelPackUnionBill_Temp_Pack(Int64 HInterID, string HBarCode, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from Sc_PackUnionBill_Temp where HInterID=" + HInterID.ToString() + " and HBillType='" + HBillType + "' and HBarCode='" + HBarCode + "' and HPieceQty=1", ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除组托记录失败!" + e.Message; return false; } } #endregion #region 上传生成生产组托单 [WebMethod] public bool set_SavePackUnionBill_Add(Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.BeginTran(); DataSet ds = oCn.RunProcReturn("exec h_p_Sc_PackUnionBill_Insert_New " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_Sc_PackUnionBill_Insert_New"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";上传失败!"; oCn.RollBack(); return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { sErrMsg = "上传失败,单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } else { sErrMsg = "生成生产组托单成功!单据号为:" + HBillNo; oCn.Commit(); return true; } } } catch (Exception e) { sErrMsg = "生成生产组托单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #endregion #region 换托调拨单模块调用方法 20230531新增 #region 换托调拨单模块 扫描调入托条码 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BarCodePack_In_MoveStockBill_HuanTuo(Int64 HInterID, string HBillNo, string HBarCode_Pack, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //判断所扫调入托条码是否有效,有效返回对应托条码、仓库、仓位信息 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddPackBarCode_MoveStockBill_HuanTuo " + HInterID.ToString() + ",'" + HBillNo + "','" + HBarCode_Pack + "'," + HStockOrgID.ToString(), "h_p_WMS_AddPackBarCode_MoveStockBill_HuanTuo"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";判断所扫调入托条码是否有效失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSourceInterID"]); oBar.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBarCode_Pack"]); oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 换托调拨单模块 扫描调出条码 [WebMethod] public bool get_BarCode_MoveStockBill_HuanTuo(Int64 HInterID, string HBillNo, string HBillType, string HBarCode, string HBarCode_Pack, Int64 HPackUnionInterID_In, Int64 HWhID, Int64 HSPID, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStockBill_HuanTuo " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode + "','" + HBarCode_Pack + "'," + HPackUnionInterID_In.ToString() + "," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HMaker + "'," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_MoveStockBill_HuanTuo"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描调出条码判断失败!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return false; } } } #endregion #region 换托调拨单模块 返回列表信息 [WebMethod] public DataSet GetBillEntry_Temp_MoveStockBill_HuanTuo(Int64 HInterID, string HBillNo, string HBillType, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_WMS_BillEntryTmp_MoveStockBill_HuanTuo " + HInterID.ToString() + ",'" + HBillType + "'", "h_p_WMS_BillEntryTmp_MoveStockBill_HuanTuo"); return DS; } #endregion #region 换托调拨单模块 扫描删除明细表体行记录 [WebMethod] public bool set_DelPackUnionBill_Temp_MoveStockBill_HuanTuo(Int64 HInterID, string HBarCode, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from KF_PonderationBillMain_Temp where HInterID=" + HInterID.ToString() + " and HBillType='" + HBillType + "' and ( HBarCode='" + HBarCode + "' or HBarCode_Pack='" + HBarCode + "')", ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除换托调拨记录失败!" + e.Message; return false; } } #endregion #region 上传生成换托调拨单 [WebMethod] public bool set_SaveMoveStockBill_HuanTuo(Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); int sStatus = 2; //1=同仓库仓位换托;2=非同仓库仓位换托 //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //上传前判断 DataSet Dsload = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBill_HuanTuo " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "'", "h_p_WMS_BeforeUpload_MoveStockBill_HuanTuo"); if (Dsload == null || Dsload.Tables[0].Rows.Count == 0) { sErrMsg = "换托调拨上传前判断,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(Dsload.Tables[0].Rows[0][0]) == 1) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(Dsload.Tables[0].Rows[0]["HRemark"]); return false; } else { sStatus = DBUtility.ClsPub.isInt(Dsload.Tables[0].Rows[0]["HStatus"]); } } //同仓库仓位换托 if (sStatus==1) { try { oCn.BeginTran(); //生成条码出入库单据、调拨单据、组托单等 DataSet dsInsert = oCn.RunProcReturn("exec h_p_Kf_MoveStockBill_Insert_HuanTuo " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_Kf_MoveStockBill_Insert_HuanTuo"); if (dsInsert == null || dsInsert.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";上传失败!"; oCn.RollBack(); return false; } else { if (DBUtility.ClsPub.isLong(dsInsert.Tables[0].Rows[0][0]) == 1) { sErrMsg = "上传失败,单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(dsInsert.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } else { sErrMsg = "生成同仓库仓位换托调拨单成功!单据号为:" + HBillNo; oCn.Commit(); return true; } } } catch (Exception e) { sErrMsg = "生成同仓库仓位换托调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else //非同仓库仓位换托 { string sRemark = ""; //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) { sErrMsg = Pub_Class.ClsPub.sExeReturnInfo; return false; } //获取CLOUD账号密码 string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; DataSet ds11 = get_SaveCLOUDUseNameandPsd(HInterID); if (ds11 == null || ds11.Tables[0].Rows.Count == 0) { } else { sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); } string HReturn; ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); try { oCn.BeginTran(); //生成条码出入库单据、调拨单据、组托单等 DataSet dsInsert2 = oCn.RunProcReturn("exec h_p_Kf_MoveStockBill_Insert_HuanTuo " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_Kf_MoveStockBill_Insert_HuanTuo"); if (dsInsert2 == null || dsInsert2.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";上传失败!"; oCn.RollBack(); return false; } else { if (DBUtility.ClsPub.isLong(dsInsert2.Tables[0].Rows[0][0]) == 1) { sErrMsg = "上传失败,单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(dsInsert2.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } } sRemark = sRemark + " ;生成换托调拨单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //根据TMP表 返回 信息 DataSet Ds; if (oSystemParameter.omodel.WMS_CloudMode == "N") //系统参数 是否为私有云模式(N为公有云模式,Y为私有云模式) { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_PUBCLD " + HInterID + ",'" + HBillNo + "'", "h_p_Kf_GetMoveOutBill_PUBCLD"); sRemark = sRemark + " ;公有云模式"; } else { Ds = oCn.RunProcReturn("exec h_p_Kf_GetMoveOutBill_CLD " + HInterID + ",'" + HBillNo + "'", "h_p_Kf_GetMoveOutBill_CLD"); sRemark = sRemark + " ;私有云模式"; } if (Ds == null || Ds.Tables[0].Rows.Count == 0 || Ds.Tables[1].Rows.Count == 0) { sErrMsg = "上传失败,单据号:" + HBillNo + ",单据ID:" + HInterID + ";获取WebAPI递入信息失败!"; oCn.RollBack(); return false; } else { string sJson_MainCustom = ""; //主表自定义字段 sJson_MainCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MainCustom"]); string sJson_Main = "{\"Creator\":\"\",\"NeedUpDateFields\":[]," + "\"Model\":{ " + "\"FBillNo\":\"" + HBillNo + "\"," + "\"FBillTypeID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBillTypeID"]) + "\" }," + "\"FBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBizType"]) + "\"," + "\"FTransferDirect\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferDirect"]) + "\"," + "\"FTransferBizType\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FTransferBizType"]) + "\"," + "\"FSettleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSettleOrgId"]) + "\" }," + "\"FSaleOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSaleOrgId"]) + "\" }," + "\"FStockOutOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOutOrgId"]) + "\" }," + "\"FOwnerTypeOutIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeOutIdHead"]) + "\"," + "\"FOwnerOutIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerOutIdHead"]) + "\" }," + "\"FStockOrgId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FStockOrgId"]) + "\" }," + "\"FIsIncludedTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsIncludedTax"]) + "," + "\"FIsPriceExcludeTax\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FIsPriceExcludeTax"]) + "," + "\"FOwnerTypeIdHead\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerTypeIdHead"]) + "\"," + "\"FSETTLECURRID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FSETTLECURRID"]) + "\" }," + "\"FOwnerIdHead\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FOwnerIdHead"]) + "\" }," + "\"FDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FDate"]) + "\"," + "\"FBaseCurrId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FBaseCurrId"]) + "\" }," + sJson_MainCustom + "\"FBillEntry\": [ "; 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_SrcStockPlace = ""; string sJson_DestStockPlace = ""; string sJson_FProduceDate = ""; //生产日期 string sJson_FExpiryDate = ""; //有效期至 string sJson_FAUXPROPID = ""; string sJson_SubCustom = ""; //子表自定义字段 //子表自定义字段 sJson_SubCustom = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["SubCustom"]); //是否启用批次管理 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 (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISKFPERIOD"]) == "1") { sJson_FProduceDate = " \"FProduceDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FProduceDate"]) + "\","; sJson_FExpiryDate = " \"FExpiryDate\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FExpiryDate"]) + "\","; } else { sJson_FProduceDate = ""; sJson_FExpiryDate = ""; } //调入仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) == "") { sJson_SrcStockPlace = ""; } else { sJson_SrcStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}},"; } //调出仓位 if (Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) == "") { sJson_DestStockPlace = ""; } else { sJson_DestStockPlace = Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}},"; } //辅助属性 sJson_FAUXPROPID = " \"FAUXPROPID\":{\"FAUXPROPID__FF100002\":{\"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FAUXPROPID"]) + "\"}},"; sJson_Entry = sJson_Entry + " {\"FSEQ\":\"" + Convert.ToString(i + 1) + "\"," + "\"FMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FMaterialId"]) + "\" }," + sJson_FAUXPROPID + "\"FUnitID\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FUnitID"]) + "\" }," + "\"FQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FQty"]) + "\"," + sJson_BatchNo + "\"FSrcStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockId"]) + "\" }," + sJson_SrcStockPlace + //"\"FSrcStockLocId\":{\"FSRCSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockLocId"]) + "\"}}," + "\"FDestStockId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockId"]) + "\" }," + sJson_DestStockPlace + //"\"FDestStockLocId\":{\"FDESTSTOCKLOCID__FF100002\":{\"FNUMBER\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockLocId"]) + "\"}}," + "\"FSrcStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FSrcStockStatusId"]) + "\" }," + "\"FDestStockStatusId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestStockStatusId"]) + "\" }," + // "\"FBusinessDate\":\"" + oMain.HDate.ToShortDateString() + "\"," + sJson_FProduceDate + sJson_FExpiryDate + "\"FOwnerTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeOutId"]) + "\"," + "\"FOwnerOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerOutId"]) + "\" }," + "\"FOwnerTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerTypeId"]) + "\"," + "\"FOwnerId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FOwnerId"]) + "\" }," + "\"FBaseUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseUnitId"]) + "\" }," + "\"FBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FBaseQty"]) + "\"," + "\"FISFREE\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FISFREE"]) + "," + "\"FKeeperTypeId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeId"]) + "\"," + "\"FKeeperId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperId"]) + "\" }," + "\"FKeeperTypeOutId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperTypeOutId"]) + "\"," + "\"FKeeperOutId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FKeeperOutId"]) + "\" }," + "\"FDestMaterialId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FDestMaterialId"]) + "\" }," + "\"FPriceUnitId\":{ \"FNumber\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceUnitId"]) + "\" }," + "\"FPriceQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," + "\"FPriceBaseQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FPriceQty"]) + "\"," + "\"FTransReserveLink\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FTransReserveLink"]) + "," + sJson_SubCustom + "\"FCheckDelivery\":" + Pub_Class.ClsPub.isStrNull(Ds.Tables[1].Rows[i]["FCheckDelivery"]) + "} "; } string sJson_End = " ] }}"; string sJson = sJson_Main + sJson_Entry + sJson_End; sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); //生成金蝶云单据 if (bLogin) { var result = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save", new object[] { "STK_TransferDirect", sJson }); sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); HReturn = result.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { sErrMsg = "生成换托调拨单失败!" + HReturn; LogService.Write("生成调拨单(源单:无源单)失败!" + HReturn + sJson); //写入txt文本 oCn.RollBack(); return false; } else { sRemark = sRemark + sJson; oCn.Commit(); } } else { sErrMsg = "生成换托调拨单失败!金蝶云登录失败!"; oCn.RollBack(); return false; } } } catch (Exception e) { LogService.Write("生成回滚" + sRemark); sErrMsg = "生成换托调拨单失败!" + e.Message; oCn.RollBack(); return false; } if (oSystemParameter.omodel.Kf_MoveStockBill_AutoCheck == "Y") //系统参数 自动审核 { try { oCn.BeginTran(); //审核WMS单据 oCn.RunProc("Update Kf_ICStockBillMain Set HChecker='" + HMaker + "',HCheckDate=convert(varchar(10),getdate(),120),HBillStatus=2 where HInterID= " + HInterID.ToString()); //提交、审核金蝶云单据 HReturn = ""; string sJson2 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + HBillNo + "\"]}"; var result2 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit", new object[] { "STK_TransferDirect", sJson2 }); string sJson3 = "{\"CreateOrgId\":0,\"Numbers\":[\"" + HBillNo + "\"]}"; var result3 = client.Execute("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit", new object[] { "STK_TransferDirect", sJson3 }); HReturn = result2.ToString() + "," + result3.ToString(); if (HReturn.Contains("\"IsSuccess\":false") == true) { LogService.Write("审核单据失败" + sRemark); sErrMsg = "生成换托调拨单成功,审核单据失败!" + HReturn; oCn.RollBack(); return true; } else { LogService.Write("生成并审核换托调拨单(源单:无源单)成功!" + sRemark); sErrMsg = "生成并审核换托调拨单成功!单据号为:" + HBillNo; oCn.Commit(); return true; } } catch (Exception e) { LogService.Write("审核回滚" + sRemark); sErrMsg = "审核换托调拨单失败!" + e.Message; oCn.RollBack(); return false; } } else { LogService.Write("生成换托调拨单(源单:无源单)成功!" + sRemark); sErrMsg = "生成换托调拨单成功!单据号为:" + HBillNo; return true; } } } #endregion #endregion #region 生产装箱追溯单模块调用方法 #region 扫描箱条码 [WebMethod] public Model.ClsGy_BarCodeBill_WMS_Model get_BarCode_PackUnionCarryUp(Int64 HInterID, string HBillNo, string HBillType, string HBarCode_Pack, string HHMaker, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsGy_BarCodeBill_WMS_Model oBar = new Model.ClsGy_BarCodeBill_WMS_Model(); DataSet ds = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_PackUnionCarryUp " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HHMaker + "'," + HStockOrgID.ToString(), "h_p_WMS_AddBarCode_PackUnionCarryUp"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描箱条码判断失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { oBar.HBarCode = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBarCode_Pack"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描箱条码失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 扫描SN条码 [WebMethod] public bool get_SNBarCode_PackUnionCarryUp(string HBarCode, Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds = oCN.RunProcReturn("exec h_p_WMS_AddSNBarCode_PackUnionCarryUp '" + HBarCode + "'," + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_WMS_AddSNBarCode_PackUnionCarryUp"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";扫描SN条码失败!"; return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return false; } } } #endregion #region 返回列表信息 [WebMethod] public DataSet GetBillEntry_TmpList_PackUnionCarryUp(Int64 HInterID, string HBillNo, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_WMS_BillEntryTmpList_PackUnionCarryUp " + HInterID.ToString() + ",'" + HBillType + "'", "h_p_WMS_BillEntryTmpList_PackUnionCarryUp"); return DS; } #endregion #region 上传生成生产装箱追溯单 [WebMethod] public bool set_SavePackUnionCarryUpBill_New(Int64 HInterID, string HBillType, string HBillNo, string HBarCode_Pack, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.BeginTran(); DataSet ds = oCn.RunProcReturn("exec h_p_Sc_PackUnionCarryUpBill_Insert " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode_Pack + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_Sc_PackUnionCarryUpBill_Insert"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";上传失败!"; oCn.RollBack(); return false; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { oCn.Commit(); return true; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HInterID + ";" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); oCn.RollBack(); return false; } } } catch (Exception e) { sErrMsg = "生成生产装箱追溯单失败!" + e.Message; oCn.RollBack(); return false; } } #endregion #region 删除明细表体选中行记录 [WebMethod] public bool set_DelPackUnionBill_Temp(Int64 HInterID, string HBarCode, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from Sc_PackUnionBill_Temp where HInterID=" + HInterID.ToString() + " and HBillType='" + HBillType + "' and (HBarCode='" + HBarCode + "' or HBarCode_Cus='" + HBarCode + "') and HPieceQty=1", ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除生产装箱追溯单扫码临时表记录失败!" + e.Message; return false; } } #endregion #region 缓存列表模块调用方法 #region 返回缓存列表信息 [WebMethod] public DataSet GetSc_PackUnionBill_TempList(string HBillType, string HMaker, Int64 HStockOrgID) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet Ds = oCn.RunProcReturn("exec h_p_Sc_PackUnionBill_TempList '" + HBillType + "','" + HMaker + "'," + HStockOrgID.ToString(), "h_p_Sc_PackUnionBill_TempList"); if (Ds == null || Ds.Tables[0].Rows.Count == 0) { return null; } else { return Ds; } } #endregion #region 删除缓存列表单据 [WebMethod] public bool DeleteTemp_PackUnionBill(Int64 HInterID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc("Delete from Sc_PackUnionBill_Temp where HInterID=" + HInterID.ToString(), ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "删除失败!" + e.Message; return false; } } #endregion #endregion #endregion #region 校验模式 扫码模块调用方法 #region 缓存列表编辑打开单据时,获取单据信息 *校验模式 [WebMethod] public Model.ClsKf_ICStockBill_WMS GetSourceBillList_BillCheck(string HBillNo, string HBillType, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //根据单据号、单据类型,获取单据信息 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_GetSourceBillList_BillCheck '" + HBillNo + "','" + HBillType + "'", "h_p_WMS_GetSourceBillList_BillCheck"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { oBar.HSPFlag = true; oBar.HSCSPFlag = true; return oBar; } else { oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]); oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]); oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]); oBar.HSCWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSCWHID"]); oBar.HSCWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSCWHName"]); oBar.HSCSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSCSPFlag"]); oBar.HSCSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSCSPID"]); oBar.HSCSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSCSPName"]); oBar.HStockInOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockInOrgID"]); oBar.HStockInOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockInOrgName"]); oBar.HStockOutOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockOutOrgID"]); oBar.HStockOutOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockOutOrgName"]); return oBar; } } #endregion #region 扫描单据条码 *校验模式 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BillBarCode_BillCheck(string HBillNo, string HBillType, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } string sSourceBarCodeCtl = "N"; //校验-是否进行源单对应条码核对('Y'为核对) if (HBillType == "1205" && oSystemParameter.omodel.Kf_SellOutBillCheck_SourceBarCodeCtl == "Y") { //销售出库单 sSourceBarCodeCtl = "Y"; } //原单据为扫码生成,对原扫描的条码进行核对 if (sSourceBarCodeCtl == "Y") { //将单据信息、单据对应条码信息写入条码出入库校验临时表KF_PonderationBillMain_Temp_Verify DataSet dsVerify = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_BillCheckVerify '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBillBarCode_BillCheckVerify"); if (dsVerify == null || dsVerify.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";将单据信息写入条码出入库校验临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(dsVerify.Tables[0].Rows[0][0]) == 0) { oBar.HInterID = DBUtility.ClsPub.isLong(dsVerify.Tables[0].Rows[0]["HInterID"]); oBar.HBillNo = DBUtility.ClsPub.isStrNull(dsVerify.Tables[0].Rows[0]["HBillNo"]); oBar.HWhID = DBUtility.ClsPub.isLong(dsVerify.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(dsVerify.Tables[0].Rows[0]["HWhName"]); oBar.HSPFlag = DBUtility.ClsPub.isBool(dsVerify.Tables[0].Rows[0]["HSPFlag"]); oBar.HSPID = DBUtility.ClsPub.isLong(dsVerify.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(dsVerify.Tables[0].Rows[0]["HSPName"]); return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(dsVerify.Tables[0].Rows[0]["HRemark"]); return null; } } } //原单据非扫码生成 else { //将单据信息写入条码出入库临时表KF_PonderationBillMain_Temp DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_BillCheck '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBillBarCode_BillCheck"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";将单据信息写入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]); oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]); oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]); return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } } #endregion #region 扫描单据条码 领料出库 *校验模式 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BillBarCode_MateOutCheck(string HBillNo, string HBillType, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //将单据信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_MateOutCheck '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBillBarCode_MateOutCheck"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";将单据信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]); oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]); oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 扫描单据条码 其他出库 *校验模式 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BillBarCode_OtherOutCheck(string HBillNo, string HBillType, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //将单据信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_OtherOutCheck '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBillBarCode_OtherOutCheck"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";将单据信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]); oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]); oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 扫描单据条码 直接调拨 *校验模式 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BillBarCode_MoveStockCheck(string HBillNo, string HBillType, string HMaker, Int64 HOWNERID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //将单据信息存入条码出入库临时表 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBillBarCode_MoveStockCheck '" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString(), "h_p_WMS_AddBillBarCode_MoveStockCheck"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";将单据信息存入条码出入库临时表失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { oBar.HInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HInterID"]); oBar.HBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HBillNo"]); oBar.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); oBar.HWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HWhName"]); oBar.HSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSPFlag"]); oBar.HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); oBar.HSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSPName"]); oBar.HSCWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSCWhID"]); oBar.HSCWhName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSCWhName"]); oBar.HSCSPFlag = DBUtility.ClsPub.isBool(ds1.Tables[0].Rows[0]["HSCSPFlag"]); oBar.HSCSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSCSPID"]); oBar.HSCSPName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HSCSPName"]); oBar.HStockInOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockInOrgID"]); oBar.HStockInOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockInOrgName"]); oBar.HStockOutOrgID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HStockOutOrgID"]); oBar.HStockOutOrgName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HStockOutOrgName"]); return oBar; } else { sErrMsg = "单据号:" + HBillNo + ";" + DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return null; } } } #endregion #region 扫描物料条码 直接调拨 *校验模式 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BarCode_MoveStockBillCheck(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, Int64 HOWNERID, ref string sErrMsg) { try { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } if (sBarCode.Trim() == "") { sErrMsg = "条码不能为空,请扫描条码!"; return null; } else { //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStockBillCheck(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, HOWNERID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } } } return oBar; } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_MoveStockBillCheck(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HSCWHID, HSCSPID, HQty, HOWNERID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } return oBar; } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } catch (Exception e) { sErrMsg = e.Message + ";" + e.StackTrace; return null; } } //扫描物料条码 存入条码出入库临时表 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_MoveStockBillCheck(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Int64 HSCWHID, Int64 HSCSPID, Double HQty, Int64 HOWNERID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); double sRelQty = 0; string sWHSPCtl = "Y"; //校验-是否校对仓库仓位('Y'为校对) if (HBillType == "1207" && oSystemParameterMain.Kf_MoveStockBillCheck_WHSPCtl == "N") { //直接调拨单 sWHSPCtl = "N"; } string sMultilineCtl = "N"; //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) if (HBillType == "1207" && oSystemParameterMain.Kf_MoveStockBillCheck_MultilineCtl == "Y") { //直接调拨单 sMultilineCtl = "Y"; } //判断是否存在相同条码,判断所扫条码是否在单据中 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_MoveStockBillCheck_New '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + "," + HSCWHID + "," + HSCSPID + ",'" + sWHSPCtl + "','" + sMultilineCtl + "'", "h_p_WMS_AddBarCode_MoveStockBillCheck_New"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]); omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HSumQtyMust"]); //HSumQtyMust为源单相同物料剩余可扫数量 HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); HSCWHID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSCWHID"]); HSCSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSCSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } //获取扫码数量 if (omodel_View.HBarCodeType == "唯一条码") { if (HQty > 0 && omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = omodel_View.HQty; } //直接调拨校验,根据系统参数:直接调拨校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (HBillType == "1207" && (oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } else //批次条码、品种条码 { if (HQty > 0) { sRelQty = HQty; } else if (omodel_View.HSourceQty > 0) { sRelQty = omodel_View.HSourceQty; } else { sRelQty = omodel_View.HQty; } //直接调拨校验,根据系统参数:直接调拨校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (HBillType == "1207" && (oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } //判断条码库存、ERP库存 double sWMSQty = 0; //条码库存数量 double sERPQty = 0; //ERP库存数量 //库存控制-WMS负库存控制 if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y") { //判断ERP库存 返回ERP库存数量 DataSet DsWMS = oCn.RunProcReturn("exec h_p_KF_ICInventory_WMS_GetWHAndSP " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString(), "h_p_KF_ICInventory_WMS_GetWHAndSP"); if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) { sRelQty = 0; } else { HSCWHID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]); HSCSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]); sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HKFQty"]); //判断扫描条码数量与条码库存数量 if (sRelQty > sWMSQty) { sRelQty = sWMSQty; } } } //判断ERP库存 返回ERP库存数量 DataSet DsERP = oCn.RunProcReturn("exec h_p_IF_CheckQtyByERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HSCWHID.ToString() + "," + HSCSPID.ToString() + "," + omodel_View.HMaterID.ToString() + "," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + sRelQty.ToString() + "," + HOWNERID.ToString(), "h_p_IF_CheckQtyByERPICInventory"); if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) { sErrMsg = "判断ERP库存,发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(DsERP.Tables[0].Rows[0][0]) == 0) { sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); sRelQty = sERPQty; } else { sErrMsg = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HRemark"]); return false; } } if (sRelQty == 0) { sErrMsg = "所扫描条码无条码库存或对应物料无ERP库存!"; return false; } if (HBillType == "1207" && oSystemParameterMain.Kf_MoveStockBill_BillTypeOneScan == "Y") { //直接调拨单 //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_CheckBarCodeOneScan_New '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + "," + HSCWHID + "," + HSCSPID + ",'" + HMaker + "'", "h_p_WMS_CheckBarCodeOneScan_New"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return false; } } } double sSumQty = 0; double sRemQty = 0; for (int i = 0; i < ds1.Tables[0].Rows.Count; i++) { omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[i]["HQtyMust"]); //存在相同物料时,其中一行源单剩余可扫数量 sSumQty = sSumQty + omodel_View.HSourceQty; sRemQty = sRelQty - sSumQty; //数量 //只存在一行数据时,数量=条码可扫数量 if (ds1.Tables[0].Rows.Count==1) { oMain.HQty = sRelQty; } //存在多行相同物料,条码剩余数量<所选行源单剩余可扫数量 或 所选行源单为最后一条数据时 ,数量=条码剩余数量 else if (sRemQty <= 0 || (i == ds1.Tables[0].Rows.Count-1 && sRemQty > 0)) { oMain.HQty = sRemQty + omodel_View.HSourceQty; } //存在多行相同物料,条码剩余数量>所选行源单剩余可扫数量 ,数量=所选行源单剩余可扫数量 else { oMain.HQty = omodel_View.HSourceQty; } //条码条数 if (i == 0) { oMain.HPieceQty = 1; } else { oMain.HPieceQty = 0; } oMain.HInterID = HBillID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = omodel_View.HMaterID; oMain.HAuxPropID = omodel_View.HAuxPropID; oMain.HQtyMust = 0; oMain.HBarCode = omodel_View.HBarCode; oMain.HBatchNo = omodel_View.HBatchNo; oMain.HMTONo = omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSCWHID = HSCWHID; oMain.HOutStockPlaceID = HSCSPID; oMain.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceInterID"]); oMain.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceEntryID"]); oMain.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[i]["HSourceBillNo"]); oMain.HSourceBillType = HBillType; oMain.HRedBlueFlag = false; oMain.HSTOCKORGID = HOWNERID; oMain.HOWNERID = HOWNERID; oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " + " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ",'','校验模式',1" + ",0,0,'" + oMain.HCusBarCode + "',0)"); if (sRemQty <= 0) { break; } } return true; } #endregion #region 扫描物料条码 *校验模式 //原单据非扫码生成,扫描物料条码 存入条码出入库临时表 [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_BillCheck(Model.ClsGy_BarCodeBill_WMS_Model_View omodel_View, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, Int64 HOWNERID, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); Model.ClsKF_PonderationBillMain_Temp oMain = new Model.ClsKF_PonderationBillMain_Temp(); double sRelQty = 0; string sWHSPCtl = "Y"; //校验-是否校对仓库仓位('Y'为校对) if (HBillType == "1203") { //其他入库单 sWHSPCtl = "Y"; } else if (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBillCheck_WHSPCtl == "N") { //领料出库单 sWHSPCtl = "N"; } else if (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBillCheck_WHSPCtl == "N") { //销售出库单 sWHSPCtl = "N"; } else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBillCheck_WHSPCtl == "N") { //委外领料单 sWHSPCtl = "N"; } else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBillCheck_WHSPCtl == "N") { //生产补料单 sWHSPCtl = "N"; } else if (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_WHSPCtl == "N") { //委外补料单 sWHSPCtl = "N"; } else if (HBillType == "1206") { //其他出库单 sWHSPCtl = "Y"; } string sMultilineCtl = "N"; //校验-多行相同物料自动拆分换行匹配('Y'为自动拆分) if (HBillType == "1203") { //其他入库单 sMultilineCtl = "N"; } else if (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBillCheck_MultilineCtl == "Y") { //领料出库单 sMultilineCtl = "Y"; } else if (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBillCheck_MultilineCtl == "Y") { //销售出库单 sMultilineCtl = "Y"; } else if (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBillCheck_MultilineCtl == "Y") { //委外领料单 sMultilineCtl = "Y"; } else if (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBillCheck_MultilineCtl == "Y") { //生产补料单 sMultilineCtl = "Y"; } else if (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MultilineCtl == "Y") { //委外补料单 sMultilineCtl = "Y"; } else if (HBillType == "1206") { //其他出库单 sMultilineCtl = "N"; } string HMaterNumber; //物料代码 //判断是否存在相同条码,判断所扫条码是否在单据中 DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_BillCheck_New '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",'" + sWHSPCtl + "','" + sMultilineCtl + "'", "h_p_WMS_AddBarCode_BillCheck_New"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "判断所扫条码是否在单据中发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { omodel_View.HMaterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HMaterID"]); omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[0]["HSumQtyMust"]); //HSumQtyMust为源单相同物料剩余可扫数量 HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } //获取扫码数量 if (omodel_View.HBarCodeType == "唯一条码") { //博日 条码数量大于源单可扫数量,取源单可扫数量 if (oSystemParameterMain.WMS_CampanyName == "博日科技" && HBillType != "1202" && HBillType != "1205") { if (omodel_View.HSourceQty == 0) { sErrMsg = "已扫描数量等于或大于单据数量,不允许扫码!"; return false; } else if (omodel_View.HQty > omodel_View.HSourceQty) { omodel_View.HQty = omodel_View.HSourceQty; } } if (HQty > 0 && omodel_View.HQty > HQty) { sRelQty = HQty; } else { sRelQty = omodel_View.HQty; } //其他入库校验,根据系统参数:其他入库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (HBillType == "1203" && (oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //领料出库校验,根据系统参数:领料出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1204" && (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //销售出库校验,根据系统参数:销售出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1205" && (oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //委外领料校验,根据系统参数:委外领料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1211" && (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //生产补料校验,根据系统参数:生产补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1254" && (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //委外补料校验,根据系统参数:委外补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1255" && (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //其他出库校验,不可超单据数量 else if (HBillType == "1206") { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应单据剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } else //批次条码、品种条码 { if (HQty > 0) { sRelQty = HQty; } else if (omodel_View.HSourceQty > 0) { sRelQty = omodel_View.HSourceQty; } else { sRelQty = omodel_View.HQty; } //其他入库校验,根据系统参数:其他入库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) if (HBillType == "1203" && (oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_OtherInBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //领料出库校验,根据系统参数:领料出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1204" && (oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //销售出库校验,根据系统参数:销售出库校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1205" && (oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_SellOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //委外领料校验,根据系统参数:委外领料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1211" && (oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //生产补料校验,根据系统参数:生产补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1254" && (oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_MateReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //委外补料校验,根据系统参数:委外补料校验-应收数量 控制扫码数量能否可超单据数量(小于等于应收、完全等于应收、不控制) else if (HBillType == "1255" && (oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "小于等于应收" || oSystemParameterMain.Kf_EntrustReplenishOutBillCheck_MustQtyCtl == "完全等于应收")) { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应源单剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } //其他出库校验,不可超单据数量 else if (HBillType == "1206") { if (omodel_View.HSourceQty == 0) { sErrMsg = "所扫物料在单据中剩余可扫数量为0,不允许扫码!"; return false; } else if (sRelQty > omodel_View.HSourceQty) { sErrMsg = "所扫描条码数量为 " + sRelQty.ToString() + " 大于对应单据剩余可扫描数量" + omodel_View.HSourceQty.ToString() + ",不允许扫码!"; return false; } } } //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211) //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) //生产补料(1254)、委外补料(1255) //出库、红字入库,判断条码库存、ERP库存 double sWMSQty = 0; //条码库存数量 double sERPQty = 0; //ERP库存数量 string sWhName = ""; //仓库名称 string sSPName = ""; //仓位名称 if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211" || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246" || HBillType == "1254" || HBillType == "1255") { //库存控制-WMS负库存控制 if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl == "Y") { //判断ERP库存 返回ERP库存数量 DataSet DsWMS = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetWMSICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + omodel_View.HBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_GetWMSICInventory"); if (DsWMS == null || DsWMS.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描物料条码: " + omodel_View.HBarCode + " ,无条码库存!"; return false; } else { HWhID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HWhID"]); HSPID = DBUtility.ClsPub.isLong(DsWMS.Tables[0].Rows[0]["HSPID"]); sWMSQty = DBUtility.ClsPub.isDoule(DsWMS.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsWMS.Tables[0].Rows[0]["HSPName"]); if (sWMSQty <= 0) { sErrMsg = "所扫描物料条码:" + omodel_View.HBarCode + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无条码库存!"; return false; } //判断扫描数量与条码库存数量 else if (sRelQty > sWMSQty) { sRelQty = sWMSQty; } } } //库存控制-ERP负库存控制 私有云模式 if (oSystemParameterMain.WMS_CloudMode == "Y") { //判断ERP库存 返回ERP库存数量 DataSet DsERP = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_GetERPICInventory " + HBillID.ToString() + ",'" + HBillType + "','" + HMaterNumber + "'," + omodel_View.HAuxPropID.ToString() + ",'" + omodel_View.HBatchNo + "'," + HWhID.ToString() + "," + HSPID.ToString() + "," + HOWNERID.ToString(), "h_p_WMS_AddBarCode_GetERPICInventory"); if (DsERP == null || DsERP.Tables[0].Rows.Count == 0) { sErrMsg = "所扫描条码对应物料代码: " + HMaterNumber + " ,无金蝶库存!"; return false; } else { sERPQty = DBUtility.ClsPub.isDoule(DsERP.Tables[0].Rows[0]["HQty"]); sWhName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HWhName"]); sSPName = DBUtility.ClsPub.isStrNull(DsERP.Tables[0].Rows[0]["HSPName"]); if (sERPQty <= 0) { sErrMsg = "所扫描条码对应物料代码:" + HMaterNumber + " ,在仓库[ " + sWhName + " ]、仓位[ " + sSPName + " ]中,无金蝶库存!"; return false; } //判断扫描数量与金蝶库存数量 else if (sRelQty > sERPQty) { sRelQty = sERPQty; } } } } //采购入库(1201)、产品入库(1202)、其他入库蓝字(1203)、委外入库(1210) //生产退料(1244)、销售退库(1247)、其他出库红字(1249)、委外退料(1238) //入库、红字出库,判断条码可扫描数量 返回剩余未扫描数量 else { //判断条码扫描数量 返回剩余未扫描数量 if (!tem.IsBarCode_New(omodel_View.HBarCode, HBillType, false, ref sRelQty, ref sErrMsg)) { sErrMsg = sErrMsg; return false; } } //一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 if ((HBillType == "1203" && oSystemParameterMain.Kf_OtherInBill_BillTypeOneScan == "Y") || (HBillType == "1204" && oSystemParameterMain.Kf_MateOutBill_BillTypeOneScan == "Y") || (HBillType == "1205" && oSystemParameterMain.Kf_SellOutBill_BillTypeOneScan == "Y") || (HBillType == "1211" && oSystemParameterMain.Kf_EntrustOutBill_BillTypeOneScan == "Y") || (HBillType == "1254" && oSystemParameterMain.Kf_MateReplenishOutBill_BillTypeOneScan == "Y") || (HBillType == "1255" && oSystemParameterMain.Kf_EntrustReplenishOutBill_BillTypeOneScan == "Y") || (HBillType == "1206" && oSystemParameterMain.Kf_OtherOutBill_BillTypeOneScan == "Y")) { DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + ",0,0,'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan"); if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 0) { } else { if (DBUtility.ClsPub.isLong(dsOneScan.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsOneScan.Tables[0].Rows[0]["HRemark"]); return false; } } } double sSumQty = 0; double sRemQty = 0; for (int i = 0; i < ds1.Tables[0].Rows.Count; i++) { omodel_View.HSourceQty = DBUtility.ClsPub.isDoule(ds1.Tables[0].Rows[i]["HQtyMust"]); //存在相同物料时,其中一行源单剩余可扫数量 sSumQty = sSumQty + omodel_View.HSourceQty; sRemQty = sRelQty - sSumQty; //数量 //只存在一行数据时,数量=条码可扫数量 if (ds1.Tables[0].Rows.Count == 1) { oMain.HQty = sRelQty; } //存在多行相同物料,条码剩余数量<所选行源单剩余可扫数量 或 所选行源单为最后一条数据时 ,数量=条码剩余数量 else if (sRemQty <= 0 || (i == ds1.Tables[0].Rows.Count - 1 && sRemQty > 0)) { oMain.HQty = sRemQty + omodel_View.HSourceQty; } //存在多行相同物料,条码剩余数量>所选行源单剩余可扫数量 ,数量=所选行源单剩余可扫数量 else { oMain.HQty = omodel_View.HSourceQty; } //条码条数 if (i == 0) { oMain.HPieceQty = 1; } else { oMain.HPieceQty = 0; } oMain.HInterID = HBillID; oMain.HBillNo = HBillNo; oMain.HBillType = HBillType; oMain.HMaker = HMaker; oMain.HMaterID = omodel_View.HMaterID; oMain.HAuxPropID = omodel_View.HAuxPropID; oMain.HQtyMust = 0; oMain.HBarCode = omodel_View.HBarCode; oMain.HBatchNo = omodel_View.HBatchNo; oMain.HMTONo = omodel_View.HMTONo; oMain.HWhID = HWhID; oMain.HStockPlaceID = HSPID; oMain.HSourceInterID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceInterID"]); oMain.HSourceEntryID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSourceEntryID"]); oMain.HSourceBillNo = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[i]["HSourceBillNo"]); oMain.HSourceBillType = HBillType; oMain.HRedBlueFlag = false; oMain.HSTOCKORGID = HOWNERID; oMain.HOWNERID = HOWNERID; oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + "(HInterID,HBillNo,HBillType,HMaterID,HAuxPropID,HProcID" + ",HWhID,HSCWHID,HStockPlaceID,HOutStockPlaceID,HGroupID,HAddr" + ",HQtyMust,HQty,HPieceQty,HBatchNo,HBarCode,HBarCode_Pack" + ",HMaker,HMakeDate,HSourceInterID,HSourceEntryID,HSourceBillType,HSourceBillNo" + ",HRelationInterID,HRelationEntryID,HRelationBillNo,HRedBlueFlag,HMTONo,HPlanMode" + ",HSTOCKORGID,HOtherOrgID,HOWNERID,HOWNERTYPEID,HExpressNumber,HSubBillType" + ",HCusID,HDeptID,HCusBarCode,HMulSourceBill) " + " Values(" + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "'," + oMain.HMaterID.ToString() + "," + oMain.HAuxPropID.ToString() + "," + oMain.HProcID.ToString() + "," + oMain.HWhID.ToString() + "," + oMain.HSCWHID.ToString() + "," + oMain.HStockPlaceID.ToString() + "," + oMain.HOutStockPlaceID.ToString() + "," + oMain.HGroupID.ToString() + ",'" + oMain.HAddr + "'" + "," + oMain.HQtyMust.ToString() + "," + oMain.HQty.ToString() + "," + oMain.HPieceQty.ToString() + ",'" + oMain.HBatchNo + "','" + oMain.HBarCode + "',''" + ",'" + oMain.HMaker + "',getdate()," + oMain.HSourceInterID.ToString() + "," + oMain.HSourceEntryID.ToString() + ",'" + oMain.HSourceBillType + "','" + oMain.HSourceBillNo + "'" + "," + oMain.HRelationInterID.ToString() + "," + oMain.HRelationEntryID.ToString() + ",'" + oMain.HRelationBillNo + "'," + Convert.ToString(oMain.HRedBlueFlag ? 1 : 0) + ",'" + oMain.HMTONo + "',0" + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HSTOCKORGID.ToString() + "," + oMain.HOWNERID.ToString() + ",'','校验模式',1" + ",0,0,'" + oMain.HCusBarCode + "',0)"); if (sRemQty <= 0) { break; } } return true; } #endregion #region 一键扫码(原单据非扫码生成) *校验模式 //一键扫码模式,根据条码前缀走 不同方法(仓库条码、仓位条码、单据号条码、物料条码) [WebMethod] public Model.ClsKf_ICStockBill_WMS get_CheckTypeByBarCode_BillCheck(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, Int64 HOWNERID, ref string sErrMsg) { try { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HOWNERID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } if (sBarCode.Trim()=="") { sErrMsg = "条码不能为空,请扫描条码!"; return null; } else { //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //根据系统参数,判断是否启用一键扫码模式,Y为启用 //未启用,只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_BillCheck(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HOWNERID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } } } return oBar; } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_BillCheck(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HOWNERID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } return oBar; } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } //启用,根据条码前缀走不同方法(仓库条码、仓位条码、单据条码、物料条码) else { string sBarCodePrefix = sBarCode.Substring(0, Math.Min(3, sBarCode.Length));//截取条码前三位字符串 //根据递入的条码前三位,判断条码类型(仓库条码、仓位条码、单据条码、物料条码) DataSet Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { DAL.ClsGy_BarCodeBill_View dal = new DAL.ClsGy_BarCodeBill_View(); if (dal.GetInfoByBarCode_View(sBarCode)) { if (dal.omodel_View.HStopflag) { sErrMsg = "条码已被禁用,不允许扫描!"; return null; } else { //判断条码类型是否为托盘条码,如果是托盘条码则分解并模拟扫码 if (dal.omodel_View.HBarCodeType == "托盘条码") { //分解托盘条码得到明细条码信息写入条码出入库临时表 DataSet dsTBarCode = oCn.RunProcReturn("exec h_p_WMS_BeforeCheckToTPBarCode '" + sBarCode + "'", "h_p_WMS_BeforeCheckToTPBarCode"); if (dsTBarCode == null || dsTBarCode.Tables[0].Rows.Count == 0) { sErrMsg = "分解托盘条码发生错误!"; return null; } else { if (DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[0]["HRemark"]); return null; } else { for (int i = 0; i < dsTBarCode.Tables[0].Rows.Count; i++) { dal.omodel_View.HBarCode = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCode"]); dal.omodel_View.HBarCodeType = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBarCodeType"]); dal.omodel_View.HMaterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HMaterID"]); dal.omodel_View.HAuxPropID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HAuxPropID"]); dal.omodel_View.HBatchNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HBatchNo"]); dal.omodel_View.HQty = DBUtility.ClsPub.isDoule(dsTBarCode.Tables[0].Rows[i]["HQty"]); dal.omodel_View.HSourceInterID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceInterID"]); dal.omodel_View.HSourceEntryID = DBUtility.ClsPub.isLong(dsTBarCode.Tables[0].Rows[i]["HSourceEntryID"]); dal.omodel_View.HSourceBillNo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HSourceBillNo"]); dal.omodel_View.HMTONo = DBUtility.ClsPub.isStrNull(dsTBarCode.Tables[0].Rows[i]["HMTONo"]); //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_BillCheck(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HOWNERID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } } } return oBar; } } else //条码类型不为托盘条码 { //将物料条码信息写入条码出入库临时表 if (!set_SavePonderationBillMain_Temp_BarCode_BillCheck(dal.omodel_View, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HOWNERID, oSystemParameter.omodel, ref sErrMsg)) { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描物料条码失败!" + sErrMsg; return null; } return oBar; } } } else { sErrMsg = "条码档案中不存在该条码,请确认条码是否正确或是否已被删除!"; return null; } } //仓库条码、仓位条码、单据条码 else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID, HOWNERID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int sHSPID; int sHWHID; string[] sArray = sBarCode.Remove(0, 3).Split(';'); if (int.TryParse(sArray[1], out sHSPID) && int.TryParse(sArray[0], out sHWHID)) { if (dal.GetInfoByID(sHSPID, sHWHID, HOWNERID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } //单据条码 else if (sBarBillType == "源单条码") { oBar = get_BillBarCode_BillCheck(HBillNo, HBillType, HMaker, HOWNERID, ref sErrMsg); if (oBar == null) { sErrMsg = "启用一键扫码模式," + sErrMsg; return null; } else { oBar.HBarType = "单据条码"; return oBar; } } else { sErrMsg = "启用一键扫码模式,所扫条码前缀设置错误!"; return null; } } } } catch (Exception e) { sErrMsg = e.Message + ";" + e.StackTrace; return null; } } #endregion #region 一键扫码(原单据为扫码生成,对原扫描的条码进行核对) *校验模式 //原单据为扫码生成,对原扫描的条码进行核对 [WebMethod] public Model.ClsKf_ICStockBill_WMS get_BillBarCode_Verify(Int64 HInterID, string HBillNo, string HBillType, string HBarCode, Double HQty, string HMaker, Int64 HStockOrgID, ref string sErrMsg) { try { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } if (HBarCode.Trim() == "") { sErrMsg = "条码不能为空,请扫描条码!"; return null; } else { //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (HBarCode.Contains("#")) { NewBarCode = HBarCode.Split(Convert.ToChar("#")); HBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); //根据系统参数,判断是否启用一键扫码模式,Y为启用 //未启用,只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { //将单据信息、单据对应条码信息写入条码出入库校验临时表KF_PonderationBillMain_Temp_Verify DataSet ds = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_BillCheckVerify " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode + "'," + HQty.ToString(), "h_p_WMS_AddBarCode_BillCheckVerify"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";扫描物料条码校验失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "物料条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return null; } } } //启用,根据条码前缀走不同方法(单据条码、物料条码) else { //根据递入的条码前三位,判断条码类型(仓库条码、仓位条码、单据条码、物料条码) string sBarCodePrefix = HBarCode.Substring(0, Math.Min(3, HBarCode.Length));//截取条码前三位字符串 DataSet Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCodePrefix + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { //将单据信息、单据对应条码信息写入条码出入库校验临时表KF_PonderationBillMain_Temp_Verify DataSet ds = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_BillCheckVerify " + HInterID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HBarCode + "'," + HQty.ToString(), "h_p_WMS_AddBarCode_BillCheckVerify"); if (ds == null || ds.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";扫描物料条码校验失败!"; return null; } else { if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 0) { oBar.HBarType = "物料条码"; return oBar; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); return null; } } } //单据条码 else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if(sBarBillType == "源单条码") { oBar = get_BillBarCode_BillCheck(HBillNo, HBillType, HMaker, HStockOrgID, ref sErrMsg); if (oBar == null) { sErrMsg = "启用一键扫码模式," + sErrMsg; return null; } else { oBar.HBarType = "单据条码"; return oBar; } } else { sErrMsg = "启用一键扫码模式,所扫条码前缀不为单据条码前缀!"; return null; } } } } catch (Exception e) { sErrMsg = e.Message + ";" + e.StackTrace; return null; } } #endregion #region 返回单据物料列表信息 *校验模式 [WebMethod] public DataSet GetKf_PonderationBillMain_Temp_BillCheck(long HInterID, string sBillType, string sWhere) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 string sErrMsg=""; Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } string sSourceBarCodeCtl = "N"; //校验-是否进行源单对应条码核对('Y'为核对) if (sBillType == "1205" && oSystemParameter.omodel.Kf_SellOutBillCheck_SourceBarCodeCtl == "Y") { //销售出库单 sSourceBarCodeCtl = "Y"; } //原单据为扫码生成,对原扫描的条码进行核对 if (sSourceBarCodeCtl == "Y") { DataSet DSVerify = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_TempList_Verify " + HInterID.ToString() + ",'" + sBillType + "','" + sWhere + "'", "h_p_KF_PonderationBillMain_TempList_Verify"); if (DSVerify == null) { return null; } else { return DSVerify; } } //原单据非扫码生成 else { DataSet DS = oCn.RunProcReturn("exec h_p_KF_PonderationBillMain_TempList_BillCheck " + HInterID.ToString() + ",'" + sBillType + "','" + sWhere + "'", "h_p_KF_PonderationBillMain_TempList_BillCheck"); if (DS == null) { return null; } else { return DS; } } } #endregion #region 界面同步单据按钮调用方法 *校验模式 [WebMethod] public bool set_UpdateTemp_BillCheck(Int64 HBillID, string HBillNo, string HBillType, string HMaker, Int64 HOWNERID, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } string sWHSPCtl = "Y"; //校验-是否校对仓库仓位('Y'为校对) if (HBillType == "1204" && oSystemParameter.omodel.Kf_MateOutBillCheck_WHSPCtl == "N") { //领料出库单 sWHSPCtl = "N"; } else if (HBillType == "1207" && oSystemParameter.omodel.Kf_MoveStockBillCheck_WHSPCtl == "N") { //直接调拨单 sWHSPCtl = "N"; } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds1 = oCn.RunProcReturn("exec h_p_WMS_UpdateTemp_BillCheck " + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "','" + HMaker + "'," + HOWNERID.ToString() + ",'" + sWHSPCtl + "'", "h_p_WMS_UpdateTemp_BillCheck"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { sErrMsg = "单据号:" + HBillNo + ";同步单据信息发生错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0][0]) == 0) { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return true; } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HRemark"]); return false; } } } #endregion #region 缓存模块调用方法 *校验模式 //缓存列表界面,返回缓存列表信息 [WebMethod] public DataSet GetKf_PonderationBillMain_TempList_BillCheck(string sHBillType, string sHMaker, Int64 sHOWNERID) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取系统参数 string sErrMsg = ""; Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } string sSourceBarCodeCtl = "N"; //校验-是否进行源单对应条码核对('Y'为核对) if (sHBillType == "1205" && oSystemParameter.omodel.Kf_SellOutBillCheck_SourceBarCodeCtl == "Y") { //销售出库单 sSourceBarCodeCtl = "Y"; } //原单据为扫码生成,对原扫描的条码进行核对 if (sSourceBarCodeCtl == "Y") { DataSet DSVerify = oCn.RunProcReturn("exec h_p_KF_GetPonderationBillMain_TempList_Verify '" + sHBillType + "','" + sHMaker + "'," + sHOWNERID.ToString(), "h_p_KF_GetPonderationBillMain_TempList_Verify"); if (DSVerify == null) { return null; } else { return DSVerify; } } //原单据非扫码生成 else { DataSet Ds = oCn.RunProcReturn("exec h_p_KF_GetPonderationBillMain_TempList_BillCheck '" + sHBillType + "','" + sHMaker + "'," + sHOWNERID.ToString(), "h_p_KF_GetPonderationBillMain_TempList_BillCheck"); if (Ds == null) { return null; } else { return Ds; } } } #endregion #endregion #region 桌面条码生成外网版 [WebMethod] public DataSet getDataSetByMasterSQL(string sSQL, string sTable, ref string sErrMsg) { SQLHelper.ClsCNmaster oCn = new SQLHelper.ClsCNmaster(); try { DataSet ds = oCn.RunProcReturn(sSQL, sTable); return ds; } catch (Exception e) { sErrMsg = "查询失败!" + e.Message; return null; } } //检查服务器名正确性 [WebMethod] public bool getCheckOpen() { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { return oCn.CheckOpen(); } catch (Exception e) { return false; } } [WebMethod] public string getGetDataBase(string sItem, ref string sK3) { SQLHelper.ClsCNmaster oCn = new SQLHelper.ClsCNmaster(); try { return oCn.GetDataBase(sItem, ref sK3); } catch (Exception e) { return ""; } } //登入账号判断 [WebMethod] public DataSet getCheckCzymc(string sUser, string sPsd) { DAL.ClsUser oUser = new DAL.ClsUser(); try { return oUser.CheckCzymc(sUser, sPsd); } catch (Exception e) { return null; } } //得到当前会计期间 [WebMethod] public bool getSub_GetCurPeriod(ref int sYear, ref int sPeriod) { try { return Pub_Class.ClsPub.Sub_GetCurPeriod(ref sYear, ref sPeriod); } catch (Exception e) { return false; } } [WebMethod] public DataSet getDataSetBySQL(string sSQL, string sTable, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet ds = oCn.RunProcReturn(sSQL, sTable); return ds; } catch (Exception e) { sErrMsg = "查询失败!" + e.Message; return null; } } [WebMethod] public void getRunProc(string sSQL, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { oCn.RunProc(sSQL); return; } catch (Exception e) { sErrMsg = e.Message; return; } } [WebMethod] public void getRunProcByMul(string[] sSQL, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { if (sSQL.Length > 0) { for (int i = 0; i < sSQL.Length; i++) { oCn.RunProc(sSQL[i]); } } return; } catch (Exception e) { sErrMsg = e.Message; return; } } //权限判断 [WebMethod] public bool getSecurity_Log(string ModRightNameCheck, string CurUserName, ref string sErrMsg) { try { if (DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName)) { return true; } else { return false; } } catch (Exception e) { return false; } } //作废条码 [WebMethod] public bool set_CancelltionBarCodeBill(string sBarCode) { DAL.ClsGy_BarCodeBill_Ctl dal = new DAL.ClsGy_BarCodeBill_Ctl(); if (dal.Cancelltion(sBarCode)) { return true; } else { return false; } } //反作废条码 [WebMethod] public bool set_UnCancelltionBarCodeBill(string sBarCode) { DAL.ClsGy_BarCodeBill_Ctl dal = new DAL.ClsGy_BarCodeBill_Ctl(); if (dal.UnCancelltion(sBarCode)) { return true; } else { return false; } } //条码打印前,判断条码是否已打印过 [WebMethod] public bool Set_BPrintQtyBarCode(string sBarCode, ref string sReturn) { DAL.ClsGy_BarCodeBill_Ctl dal = new DAL.ClsGy_BarCodeBill_Ctl(); if (dal.Set_BPrintQty(sBarCode, ref sReturn)) { return true; } else { return false; } } #region 条码生成时同步生成条码出入库记录 [WebMethod] public bool set_BarCodeAutoWMS(Int64 HInterID, string HSourceBillType, Int64 HStockOrgID, ref string sErrMsg) { //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBillByOrgID(HStockOrgID, ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } string sAutoWMS = "N"; //条码生成时是否同步生成条码出入库记录('Y'为同步生成) if (HSourceBillType == "1201" && oSystemParameter.omodel.BarCode_AutoPOStockInBillWMS == "Y") { //采购入库单 sAutoWMS = "Y"; } else if (HSourceBillType == "1202" && oSystemParameter.omodel.BarCode_AutoProductInBillWMS == "Y") { //生产入库单 sAutoWMS = "Y"; } else if (HSourceBillType == "1244" && oSystemParameter.omodel.BarCode_AutoMateOutBackBillWMS == "Y") { //生产退料单 sAutoWMS = "Y"; } else if (HSourceBillType == "1247" && oSystemParameter.omodel.BarCode_AutoSellOutBackBillWMS == "Y") { //销售退货单 sAutoWMS = "Y"; } else { sAutoWMS = "N"; } if (sAutoWMS == "Y") { try { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); oCn.RunProc("exec h_p_Kf_ICStockBillSub_WMS_Insert_AutoBarCode " + HInterID.ToString() + "", ref DBUtility.ClsPub.sExeReturnInfo); return true; } catch (Exception e) { sErrMsg = "生成条码时同步生成条码出入库记录失败,未生成对应条码出入库记录!" + e.Message; return false; } } return true; } #endregion #endregion //器具一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) [WebMethod] // sCode, sInterID, HBillType, sBillNo, sMaker, WhID, SPID, sQty, sRedBlue, SourceFlag, sSourceBillNo, sSourceType, HOWNERID, sExpressNumber, SCWhID, HStockInOrgID, HStockOutOrgID public Model.ClsKf_ICStockBill_Mould get_CheckTypeByBarCode_Mould(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber,Int64 SCWhID, Int64 HStockInOrgID,Int64 HStockOutOrgID, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); Model.ClsKf_ICStockBill_Mould oBar = new Model.ClsKf_ICStockBill_Mould(); DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould(); Model.ClsSc_MouldStockBillMain_Temp model = new Model.ClsSc_MouldStockBillMain_Temp(); string sHSourceBillType = ""; string sHSourceBillNo = ""; Int64 sHSupID = 0; string sHSupName = ""; Int64 sHDeptID = 0; string sHDeptName = ""; string sHBarType = ""; //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return null; } //判断是否启用一键扫码模式,Y为启用,未启用时只扫描物料条码 if (oSystemParameter.omodel.WMS_OneKeyMode.ToUpper() == "N") { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_Mould(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber,SCWhID, HStockInOrgID, HStockOutOrgID, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } //一键扫码模式,根据条码前缀走 不同方法(仓库、仓位、部门)(源单、物料条码) else { string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } DataSet Dss; //根据递入的条码前三位,判断条码类型(仓库、仓位、部门、源单、物料条码) Dss = oCn.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + sBarCode.Substring(0, 3) + "'", "Xt_BarCodeType"); //无返回数据则为物料条码 if (Dss == null || Dss.Tables[0].Rows.Count == 0) { //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_BarCode_Mould(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, SCWhID, HStockInOrgID, HStockOutOrgID, ref sHSourceBillNo, ref sHSourceBillType, ref sHSupID, ref sHSupName, ref sHDeptID, ref sHDeptName, ref sErrMsg)) { oBar.HSourceBillType = sHSourceBillType; oBar.HSourceBillNo = sHSourceBillNo; oBar.HSupID = sHSupID; oBar.HSupName = sHSupName; oBar.HDeptID = sHDeptID; oBar.HDeptName = sHDeptName; } else { sErrMsg = "单据号:" + HBillNo + ",单据ID:" + HBillID + ";扫描失败!" + sErrMsg; return null; } return oBar; } else { string sBarBillName = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["HSourceName"]); string sBarBillType = Pub_Class.ClsPub.isStrNull(Dss.Tables[0].Rows[0]["BarCodeType"]); //判断条码类型为 基础资料条码 或 源单条码 if (sBarBillType == "基础资料条码") { //仓库条码 if (sBarBillName == "仓库") { DAL.ClsIF_Warehouse_View dal = new DAL.ClsIF_Warehouse_View(); //将递入的条码去掉前三位后转化成整形,TryParse不能转换成整数时返回false,并返回ID=0 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID, HOWNERID)) { oBar.HBarType = "仓库条码"; oBar.HWhID = dal.omodel.HItemID; oBar.HWhNumber = dal.omodel.HNumber; oBar.HWhName = dal.omodel.HName; oBar.HSPFlag = dal.omodel.HIsStockMgr; return oBar; } else { sErrMsg = "无效仓库条码!"; return null; } } else { sErrMsg = "错误的仓库条码!"; return null; } } //仓位条码 else if (sBarBillName == "仓位") { DAL.ClsIF_StockPlace_View dal = new DAL.ClsIF_StockPlace_View(); //将递入的条码去掉前三位后转化成整形 int sHSPID; int sHWHID; string[] sArray = sBarCode.Remove(0, 3).Split(';'); if (int.TryParse(sArray[1], out sHSPID) && int.TryParse(sArray[0], out sHWHID)) { if (dal.GetInfoByID(sHSPID, sHWHID, HOWNERID)) { oBar.HBarType = "仓位条码"; oBar.HSPID = dal.omodel.HItemID; oBar.HSPNumber = dal.omodel.HNumber; oBar.HSPName = dal.omodel.HName; oBar.HWhID = dal.omodel.HWHID; oBar.HWhNumber = dal.omodel.HWhNumber; oBar.HWhName = dal.omodel.HWhName; return oBar; } else { sErrMsg = "无效仓位条码!"; return null; } } else { sErrMsg = "错误的仓位条码!"; return null; } } //部门条码 else if (sBarBillName == "部门") { DAL.ClsIF_Department_View dal = new DAL.ClsIF_Department_View(); //将递入的条码去掉前三位后转化成整形 int ID; if (int.TryParse(sBarCode.Remove(0, 3), out ID)) { if (dal.GetInfoByID(ID)) { oBar.HBarType = "部门条码"; oBar.HDeptID = dal.omodel.HItemID; oBar.HDeptNumber = dal.omodel.HNumber; oBar.HDeptName = dal.omodel.HName; return oBar; } else { sErrMsg = "无效部门条码!"; return null; } } else { sErrMsg = "错误的部门条码!"; return null; } } else { sErrMsg = "无效基础资料条码!"; return null; } } else { sErrMsg = "无效条码类型!"; return null; } } } } //删除出入库条码临时表 扫描记录 [WebMethod] public bool DeleteMould(long HInterID, long HItemID, string HBillType, ref string sErrMsg) { DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould(); if (dal.DeleteMould(HInterID, HItemID, HBillType)) { sErrMsg = "删除成功!"; return true; } else { sErrMsg = "删除失败!"; return false; } } //扫描物料条码 保存到出入库条码临时表(物料) [WebMethod] public bool set_SavePonderationBillMain_Temp_BarCode_Mould(string sBarCode, Int64 HBillID, string HBillType, string HBillNo, string HMaker, Int64 HWhID, Int64 HSPID, Double HQty, bool HRedBlueFlag, bool SourceFlag, string HSourceBillNo, string HSourceBillType, Int64 HOWNERID, string HExpressNumber, Int64 SCWhID, Int64 HStockInOrgID, Int64 HStockOutOrgID, ref string sHSourceBillNo, ref string sHSourceBillType, ref long sHSupID, ref string sHSupName, ref long sHDeptID, ref string sHDeptName, ref string sErrMsg) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould tem = new DAL.ClsKF_PonderationBillMain_Temp_Ctl_Mould(); Model.ClsSc_MouldStockBillMain_Temp model = new Model.ClsSc_MouldStockBillMain_Temp(); double sRelQty = 0; string sRedBlue = "蓝字"; if (HRedBlueFlag) { sRedBlue = "红字"; } else { sRedBlue = "蓝字"; } //判断条码是否含特殊符号 # ,如果含有则 拆分 string[] NewBarCode; if (sBarCode.Contains("#")) { NewBarCode = sBarCode.Split(Convert.ToChar("#")); sBarCode = NewBarCode[0]; if (HQty == 0) { HQty = DBUtility.ClsPub.isDoule(NewBarCode[1]); } } //获取系统参数 Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); if (oSystemParameter.ShowBill(ref sErrMsg) == false) { sErrMsg = "获取系统参数失败! " + sErrMsg; return false; } //蓝字产品入库、外购入库、委外入库、生产汇报,根据物料条码得到对应源单信息,非多源单模式 //未扫描源单的情况下,第一次扫描物料条码获取源单信息并存入临时表 //采购入库(1201)、产品入库(1202)、委外入库(1210)、生产汇报(3711) if (SourceFlag == false && (HBillType == "1201" || HBillType == "1202" || HBillType == "1210" || HBillType == "3711")) { } else { //无源单状态,设置源单类型为-1 if (SourceFlag == false) { //销售出库不允许无源单出库 if (HBillType == "1205") { sErrMsg = "不允许无源单出库,请先扫描源单!"; return false; } HSourceBillType = "-1"; } } //根据条码获取条码信息,存在相同物料时自动获取一行源单信息 DAL.ClsGy_BarCodeBill_View_Mould dal = new DAL.ClsGy_BarCodeBill_View_Mould(); if (dal.GetInfoByNumber(sBarCode)) { } else { sErrMsg = "无效条码"; return false; } //判断并获取 仓库 仓位信息 DataSet ds4 = oCn.RunProcReturn("exec h_p_WMS_GetBillWHID " + HBillID.ToString() + ",'" + HBillType + "','" + sBarCode + "'," + HWhID.ToString() + "," + HSPID.ToString(), "h_p_WMS_GetBillWHID"); if (ds4 == null || ds4.Tables[0].Rows.Count == 0) { sErrMsg = "判断并获取仓库仓位信息,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0][0]) == 0) { HWhID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HWHID"]); HSPID = DBUtility.ClsPub.isLong(ds4.Tables[0].Rows[0]["HSPID"]); } else { sErrMsg = DBUtility.ClsPub.isStrNull(ds4.Tables[0].Rows[0]["HRemark"]); return false; } } //判断条码扫描数量 返回剩余未扫描数量 //if (tem.IsBarCode_New(sBarCode, HBillType, HRedBlueFlag, ref sRelQty, ref sErrMsg)) //{ //} //else //{ // sErrMsg = sErrMsg; // return false; //} model.HInterID = HBillID; model.HBillNo = HBillNo; model.HBillType = HBillType; model.HMaker = HMaker; // model.HMouldID = dal.omodel_View.HMaterID; model.HAuxPropID = dal.omodel_View.HAuxPropID; //model.HQty = sRelQty; //model.HQtyMust = dal.omodel_View.HinitQty; model.HQty = 1; model.HQtyMust = 1; model.HBarCode = sBarCode; model.HBatchNo = dal.omodel_View.HBatchNo; model.HMTONo = dal.omodel_View.HMTONo; model.HWhID = HWhID; model.HStockPlaceID = HSPID; model.HSCWHID = SCWhID; model.HStockOrgID = HStockInOrgID; model.HSourceInterID = dal.omodel_View.HSourceInterID; model.HSourceEntryID = dal.omodel_View.HSourceEntryID; model.HSourceBillNo = dal.omodel_View.HSourceBillNo; model.HSourceBillType = HSourceBillType; model.HRedBlueFlag = HRedBlueFlag; model.HPieceQty = 1; model.HOtherOrgID = HStockOutOrgID; model.HOWNERID = HOWNERID; ////获取系统参数 //Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); //if (oSystemParameter.ShowBill(ref sErrMsg) == false) //{ // sErrMsg = "获取系统参数失败! " + sErrMsg; // return false; //} //物料条码写入临时表时,判断仓库仓位是否正确 DataSet ds5 = oCn.RunProcReturn("exec h_p_WMS_CheckWHandSP " + model.HWhID.ToString() + "," + model.HStockPlaceID.ToString(), "h_p_WMS_CheckWHandSP"); if (ds5 == null || ds5.Tables[0].Rows.Count == 0) { sErrMsg = "扫描物料条码存入临时表时判断仓库仓位是否正确,未知错误!"; return false; } else { if (DBUtility.ClsPub.isLong(ds5.Tables[0].Rows[0][0]) == 1) { sErrMsg = DBUtility.ClsPub.isStrNull(ds5.Tables[0].Rows[0]["HRemark"]); return false; } } //将物料条码信息写入出入库条码临时表 if (set_SavePonderationBillMain_Temp_Select_Qty_Mould(model, HQty, ref sErrMsg)) { } else { sErrMsg = "扫描失败!" + sErrMsg; return false; } return true; } } }