| | |
| | | [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) |
| | | if (oSystemParameter.ShowBillByOrgID(oMain.HSTOCKORGID, ref sErrMsg) == false) |
| | | { |
| | | sErrMsg = "获取系统参数失败! " + sErrMsg; |
| | | return false; |
| | | } |
| | | //WMS系统同步至ERP的类型(WISE、CLOUD、MES) |
| | | if (oSystemParameter.omodel.Kf_MoveStockBillCheck_ERPMode.ToUpper() == "WISE") |
| | | { |
| | | sErrMsg = "暂无此功能!"; |
| | | return false; |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_MoveStockBillCheck_ERPMode.ToUpper() == "CLOUD") |
| | | { |
| | | //原单据为扫码生成,对原扫描的条码进行核对 |
| | | if (oSystemParameter.omodel.Kf_MoveStockBillCheck_SourceBarCodeCtl == "Y") |
| | | { |
| | | sErrMsg = "暂不支持扫码生成单据的校验功能!"; |
| | | return false; |
| | | } |
| | | //原单据非扫码生成 |
| | | else |
| | | { |
| | | if (set_SaveMoveStockBill_CLD_BillCheck(oMain, oSystemParameter.omodel, ref sErrMsg) == true) |
| | | { |
| | | //上传成功 |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | //上传失败 |
| | | sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | else if (oSystemParameter.omodel.Kf_MoveStockBillCheck_ERPMode.ToUpper() == "WMS") //只生成WMS单据 |
| | | { |
| | | //原单据为扫码生成,对原扫描的条码进行核对 |
| | | if (oSystemParameter.omodel.Kf_MoveStockBillCheck_SourceBarCodeCtl == "Y") |
| | | { |
| | | sErrMsg = "暂不支持扫码生成单据的校验功能!"; |
| | | return false; |
| | | } |
| | | //原单据非扫码生成 |
| | | else |
| | | { |
| | | if (set_SaveMoveStockBill_WMS_BillCheck(oMain, oSystemParameter.omodel, ref sErrMsg) == true) |
| | | { |
| | | //上传成功 |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | //上传失败 |
| | | sErrMsg = "单据号:" + oMain.HBillNo + ",单据ID:" + oMain.HInterID + ";上传单据失败!" + sErrMsg; |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "WMS系统同步至ERP的类型对应系统参数设置错误!"; |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //CLOUD 原单据非扫码生成 |
| | | |
| | | [WebMethod] |
| | | private bool set_SaveMoveStockBill_CLD_BillCheck(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | | //上传前判断 |
| | | 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"); |
| | | DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBillCheck " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl + "'", "h_p_WMS_BeforeUpload_MoveStockBillCheck"); |
| | | if (Ds == null || Ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "校验上传前判断,发生错误!"; |
| | |
| | | sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); |
| | | } |
| | | |
| | | if (oSystemParameter.omodel.Kf_MoveStockBillCheck_MustQtyCtl == "完全等于应收") |
| | | if (oSystemParameterMain.Kf_MoveStockBillCheck_MustQtyCtl == "完全等于应收") |
| | | { |
| | | string HReturn; |
| | | ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); |
| | |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | sErrMsg = "审核直接调拨单失败!" + HReturn; |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "校验审核直接调拨单失败!" + strErrorMsg; |
| | | LogService.Write("校验审核直接调拨单失败!" + HReturn); //写入txt文本 |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "审核直接调拨单成功!单据号为:" + oMain.HBillNo; |
| | | LogService.Write("校验审核直接调拨单成功!单据号为:" + oMain.HBillNo); //写入txt文本 |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | sErrMsg = "修改直接调拨单失败!" + HReturn + sJson; |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "校验修改直接调拨单失败!" + strErrorMsg; |
| | | LogService.Write("校验修改直接调拨单失败!" + HReturn + sJson); //写入txt文本 |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | sErrMsg = "校验审核直接调拨单失败!" + HReturn + sJson; |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "校验审核直接调拨单失败!" + strErrorMsg; |
| | | LogService.Write("校验审核直接调拨单失败!" + HReturn + sJson); //写入txt文本 |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | |
| | | { |
| | | //重新同步直接调拨单 |
| | | oCn.RunProc("exec h_p_IFCLD_ERPSourceBillToLocal_MoveStock '" + oMain.HBillNo + "'"); |
| | | sErrMsg = "修改并审核直接调拨单成功!单据号为:" + oMain.HBillNo; |
| | | LogService.Write("校验修改并审核直接调拨单成功!单据号为:" + oMain.HBillNo); //写入txt文本 |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | |
| | | catch (Exception e) |
| | | { |
| | | sErrMsg = "校验审核直接调拨单失败!" + e.Message; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | //WMS 原单据非扫码生成 只生成WMS单据 |
| | | private bool set_SaveMoveStockBill_WMS_BillCheck(Model.ClsKf_MoveStockBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | | //上传前判断 |
| | | DataSet Ds = oCn.RunProcReturn("exec h_p_WMS_BeforeUpload_MoveStockBillCheck_WMS " + oMain.HInterID.ToString() + ",'" + oMain.HBillNo + "','" + oMain.HBillType + "','" + oSystemParameterMain.WMS_WMSStockCtl_ERPMode + "'", "h_p_WMS_BeforeUpload_MoveStockBillCheck_WMS"); |
| | | 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 + "'"); |
| | | |
| | | sErrMsg = "校验直接调拨单成功!单据号为:" + oMain.HBillNo; |
| | | LogService.Write("校验直接调拨单成功!单据号为:" + oMain.HBillNo); //写入txt文本 |
| | | oCn.Commit(); |
| | | return true; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | sErrMsg = "校验直接调拨单失败!" + e.Message; |
| | | oCn.RollBack(); |
| | | return false; |
| | | } |
| | |
| | | } |
| | | |
| | | //CLOUD 原单据非扫码生成 |
| | | public bool set_SaveMateOutBill_CLD_BillCheck(Model.ClsKf_MateOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | private bool set_SaveMateOutBill_CLD_BillCheck(Model.ClsKf_MateOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | //原单据非扫码生成 |
| | | //CLOUD 原单据非扫码生成 |
| | | public bool set_SaveOtherOutBill_CLD_BillCheck(Model.ClsKf_OtherOutBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | |
| | | } |
| | | } |
| | | |
| | | //原单据非扫码生成 |
| | | public bool set_SavePOStockInBill_CLD_BillCheck(Model.ClsKf_POStockInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | //CLOUD 原单据非扫码生成 |
| | | private bool set_SavePOStockInBill_CLD_BillCheck(Model.ClsKf_POStockInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | //原单据非扫码生成 |
| | | public bool set_SaveProductInBill_CLD_BillCheck(Model.ClsKf_ProductInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | //CLOUD 原单据非扫码生成 |
| | | private bool set_SaveProductInBill_CLD_BillCheck(Model.ClsKf_ProductInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | |
| | | } |
| | | |
| | | //CLOUD 原单据非扫码生成 |
| | | public bool set_SaveOtherInBill_CLD_BillCheck(Model.ClsKf_OtherInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | private bool set_SaveOtherInBill_CLD_BillCheck(Model.ClsKf_OtherInBillMain oMain, Pub_Class.ClsXt_SystemParameterMain oSystemParameterMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | |
| | |
| | | } |
| | | |
| | | //CLOUD 原单据为扫码生成,对原扫描的条码进行核对 |
| | | public bool set_SaveOtherInBill_CLD_BillCheck_Verify(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg) |
| | | private bool set_SaveOtherInBill_CLD_BillCheck_Verify(Model.ClsKf_OtherInBillMain oMain, ref string sErrMsg) |
| | | { |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | //上传前判断 |
| | |
| | | } |
| | | #endregion |
| | | |
| | | string HMaterNumber; //物料代码 |
| | | 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) |
| | |
| | | { |
| | | 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"]); |
| | | HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["sHWhID"]); |
| | | HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["sHSPID"]); |
| | | HMaterNumber = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HMaterNumber"]); |
| | | } |
| | | else |
| | |
| | | |
| | | //生产领料(1204)、销售出库(1205)、其他出库蓝字(1206)、委外出库(1211) |
| | | //外购退料(1239)、产品退库(1245)、其他入库红字(1248)、委外退库(1246) |
| | | //生产补料(1254)、委外补料(1255) |
| | | //生产补料(1254)、委外补料(1255)、直接调拨单(1207)、分步式调出单(1250) |
| | | //出库、红字入库,判断条码库存、ERP库存 |
| | | double sWMSQty = 0; //条码库存数量 |
| | | double sERPQty = 0; //ERP库存数量 |
| | |
| | | string sSPName = ""; //仓位名称 |
| | | if (HBillType == "1204" || HBillType == "1205" || HBillType == "1206" || HBillType == "1211" |
| | | || HBillType == "1239" || HBillType == "1245" || HBillType == "1248" || HBillType == "1246" |
| | | || HBillType == "1254" || HBillType == "1255") |
| | | || HBillType == "1254" || HBillType == "1255" || HBillType == "1207" || HBillType == "1250") |
| | | { |
| | | //库存控制-WMS负库存控制 |
| | | if (omodel_View.HBarCodeType == "唯一条码" && oSystemParameterMain.WMS_WMSStockCtl.ToUpper() == "Y") |
| | | { |
| | | //判断ERP库存 返回ERP库存数量 |
| | | //判断WMS库存 返回WMS库存数量 |
| | | 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) |
| | | { |
| | |
| | | //唯一条码,一次扫码控制,同一条码、同一单据类型,在WMS表和TEMP表里,只允许进行一次扫码 |
| | | if (omodel_View.HBarCodeType == "唯一条码" && sOneScanCtl == "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"); |
| | | Int64 HSCWHID = 0; //调出仓库ID |
| | | Int64 HSCSPID = 0; //调出仓位ID |
| | | //直接调拨单(1207)、分步式调出单(1250)、分步式调入单(1251) |
| | | if (HBillType == "1207" || HBillType == "1250" || HBillType == "1251") |
| | | { |
| | | HSCWHID = HWhID; |
| | | HSCSPID = HSPID; |
| | | HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HWhID"]); |
| | | HSPID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[0]["HSPID"]); |
| | | } |
| | | DataSet dsOneScan = oCn.RunProcReturn("exec h_p_WMS_AddBarCode_OneScan '" + omodel_View.HBarCode + "'," + HBillID.ToString() + ",'" + HBillNo + "','" + HBillType + "'," + HWhID + "," + HSPID + "," + HSCWHID + "," + HSCSPID + ",'" + HMaker + "'", "h_p_WMS_AddBarCode_OneScan"); |
| | | if (dsOneScan == null || dsOneScan.Tables[0].Rows.Count == 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; |
| | | if (HBillType == "1207" || HBillType == "1250" || HBillType == "1251") |
| | | { |
| | | oMain.HWhID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HWhID"]); |
| | | oMain.HStockPlaceID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HSPID"]); |
| | | oMain.HSCWHID = HWhID; |
| | | oMain.HOutStockPlaceID = HSPID; |
| | | } |
| | | else |
| | | { |
| | | oMain.HWhID = HWhID; |
| | | oMain.HStockPlaceID = HSPID; |
| | | oMain.HSCWHID = 0; |
| | | oMain.HOutStockPlaceID = 0; |
| | | } |
| | | 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.HEndDate = omodel_View.HExpiryDate.ToShortDateString(); |
| | | } |
| | | oMain.HSTOCKORGID = HOWNERID; |
| | | oMain.HOWNERID = HOWNERID; |
| | | oMain.HOWNERID = DBUtility.ClsPub.isLong(ds1.Tables[0].Rows[i]["HOtherOrgID"]); |
| | | |
| | | oCn.RunProc("Insert into KF_PonderationBillMain_Temp " + |
| | | "(HInterID,HBillNo,HBillType,HMaterID,HUnitID,HAuxPropID,HProcID" + |