using DBUtility; using Model; using Newtonsoft.Json.Linq; using SQLHelper; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; using WebAPI; using WebAPI.Code; using WebAPI.Models; namespace WebAPI.Controllers { public class EntrustOutController : ApiController { public Int64 HSupID;//供应商ID public Int64 HDeptID;//部门ID public Int64 HWhID;//仓库ID public Int64 HSPID;//仓位ID public string HSupName; public string HDeptName; public string HWhName; public string HSPName; public Int64 HInterID;//本单ID public string HBillNo; public string HSourceBillNo; public string HBillType = "1211";//单据类型 public string sBillCode = "ICStockBill"; public string sTranType = "24"; public bool sRedBlueFlag = false; public bool SourceFlag = false; //public string sSourceType = "3720"; public WebServer webserver =new WebServer(); public DataSet ds =new DataSet(); public ClsGy_BarCodeBill_WMS_Model_View oView =new ClsGy_BarCodeBill_WMS_Model_View(); public ClsKF_PonderationBillMain_Temp model =new ClsKF_PonderationBillMain_Temp(); public ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); public double sRelQty = 0; // private DataBaseServices objDataBaseServices = new DataBaseServices(); private json objJsonResult = new json(); // private string msgModel = "{{\"count\":{0},\"code\":{0},\"message\":\"{1}\",\"result\":{2}}}"; public static string GetSession(string sMsg) { try { string s = Common.GetSession(); return s; } catch (Exception e) { return ""; } } /// /// 根据源单号 源单类型 返回相关信息 /// /// /// [Route("EntrustOut/get_GetWW_WWPPBomList")] [HttpGet] public object get_GetWW_WWPPBomList(string HSourceBillType, string HSourceBillNo, Int64 sInterID, string sBillNo) { try { string sWhere = " Where 单据号 like '%" + HSourceBillNo.Trim() + "%'"; ds = webserver.GetWW_WWPPBomList(sWhere); if (ds == null || ds.Tables[0].Rows.Count <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "写入临时表失败!" + DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception ex) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + ex.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 写入临时表 扫源单的方法 /// /// /// [Route("EntrustOut/set_SavePonderationBillMain_Temp_Entrust_Source_Fast_Json")] [HttpGet] public object set_SavePonderationBillMain_Temp_Entrust_Source_Fast_Json(long sNewInterID, string sNewBillNo,string sSourceBillNo, string HSourceBillType ) { string sNewBillType = "1211"; string sSourceBillType = "1604"; string sRedBlueflag = "蓝字"; try { string sWhere = "where 单据号 like '%" + sSourceBillNo + "%'"; //ds = BLL.ClsSourceBill.getSourceBillList(sWhere, HSourceBillType); ds = new BLL.ClsKf_EntrustOutBill().GetWW_WWPPBomList(sWhere, ref DBUtility.ClsPub.sExeReturnInfo); if (ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无此源单号!"; objJsonResult.data = null; return objJsonResult; } //else //{ // objJsonResult.code = "0"; // objJsonResult.count = 1; // objJsonResult.Message = "Success"; // objJsonResult.data = ds; // return objJsonResult; //} DAL.ClsKF_PonderationBillMain_Temp_Ctl dal = new DAL.ClsKF_PonderationBillMain_Temp_Ctl(); if (dal.AddNew_Source(sNewInterID, sNewBillNo, sNewBillType, sSourceBillNo, sSourceBillType, sRedBlueflag, ref DBUtility.ClsPub.sExeReturnInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "保存到出入库条码临时表成功!"; objJsonResult.data = ds; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存到出入库条码临时表失败!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception ex) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!异常"+ex.ToString(); objJsonResult.data = null; return objJsonResult; } } public bool AddNew_Source(long sNewInterID, string sNewBillNo, string sNewBillType, string sSourceBillNo, string sSourceBillType, string sRedBlueflag, ref string sReturn) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); try { DataSet oDs = new DataSet(); oCn.BeginTran(); oCn.RunProc("exec h_p_WMS_ERPSourceBillToLocal '" + sSourceBillNo + "','1604'"); oDs = oCn.RunProcReturn("exec h_p_IF_SourceBill_Check_Add " + sNewInterID.ToString() + ",'" + sNewBillNo + "','" + sNewBillType + "','" + sSourceBillNo + "','" + sSourceBillType + "','" + sRedBlueflag + "'", "h_p_IF_SourceBill_Check_Add"); if (oDs.Tables[0].Rows.Count == 0 || oDs == null) { oCn.Commit(); oCn.CnClose(); oCn.CnDispose(); sReturn = "null未知错误!"; return false; } if (DBUtility.ClsPub.isLong(oDs.Tables[0].Rows[0][0]) == 1) { oCn.Commit(); oCn.CnClose(); oCn.CnDispose(); sReturn = "您扫描的源单已经被关联!不能再次操作!"; return false; } else if (DBUtility.ClsPub.isLong(oDs.Tables[0].Rows[0][0]) == 2) { //输入源单信息不准确,请输入较完整的单据号 oCn.Commit(); oCn.CnClose(); oCn.CnDispose(); sReturn = "输入源单信息不准确,请输入较完整的单据号!"; return false; } else if (DBUtility.ClsPub.isLong(oDs.Tables[0].Rows[0][0]) == 9) { //保存成功 oCn.Commit(); oCn.CnClose(); oCn.CnDispose(); sReturn = "保存成功!"; return true; } else { oCn.Commit(); oCn.CnClose(); oCn.CnDispose(); sReturn = "else未知错误!"; return false; } // } catch (Exception e) { sReturn = e.Message; oCn.RollBack(); throw (e); } } /// /// 返回出入库条码临时表 /// /// [Route("EntrustOut/DisBillEntryList_Entrust_Webs_Json")] [HttpGet] public object DisBillEntryList_Entrust_Webs_Json(long HBillID, string HBillType, string sWhere) { try { //BLL.ClsKF_PonderationBillMain_Temp bll = new ClsKF_PonderationBillMain_Temp(); //return bll.GetKf_PonderationBillMain_Temp(HInterID, sBillType, sWhere, ref DBUtility.ClsPub.sExeReturnInfo); //BLL.ClsKF_PonderationBillMain_Temp bll = new ClsKF_PonderationBillMain_Temp(); //ds = bll.GetKf_PonderationBillMain_Temp(HInterID, HBillType, sWhere, ref DBUtility.ClsPub.sExeReturnInfo); ds = webserver.GetKf_PonderationBillMain_Temp(HBillID, HBillType, sWhere); if (ds == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!"; objJsonResult.data = ds; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!"+e.ToString(); objJsonResult.data = null; return objJsonResult; } } [Route("EntrustOut/DisBillEntryList_Mate_Webs_Json")] [HttpGet] public object DisBillEntryList_Webs_Json(string HBillType, string sWhere) { try { ds = webserver.GetKf_PonderationBillMain_TempList(HBillType, sWhere); if (ds == null || ds.Tables[0].Rows.Count <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!"; objJsonResult.data = null; return objJsonResult; //DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning); } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 根据条码得到相应信息(条码档案) 扫条码的方法 /// /// /// /// /// /// [Route("EntrustOut/get_InfoByBarCode_Source_Entrust_Json")] [HttpGet] public object get_InfoByBarCode_Source_Entrust_Json(string sBarCode, Int64 sInterID, string sBillNo, Double sQty,int sWHID,int sSPID) { try { string sErrMsg = ""; bool sBool = false; oView = webserver.get_InfoByBarCode_Source(sBarCode, sInterID, ref sBool, ref sErrMsg); model.HInterID = DBUtility.ClsPub.isLong(sInterID); model.HBillNo = DBUtility.ClsPub.isStrNull(sBillNo); model.HBillType = this.HBillType; model.HMaker = ""; // model.HMaterID = oView.HMaterID; model.HAuxPropID = oView.HAuxPropID; model.HErpClsID = oView.HErpClsID; model.HQty = oView.HQty; model.HQtyMust = oView.HinitQty; model.HBarCode = oView.HBarCode; model.HBatchNo = oView.HBatchNo; model.HMTONo = oView.HMTONo; model.HWhID = sWHID; model.HStockPlaceID = sSPID; //model.HWhID = oView.HWHID; //model.HStockPlaceID = oView.HSPID; model.HSourceInterID = oView.HSourceInterID; model.HSourceEntryID = oView.HSourceEntryID; model.HSourceBillNo = oView.HSourceBillNo; model.HSourceBillType = oView.HSourceBillType; model.HRedBlueFlag = false; model.HPieceQty = 1; model.HSTOCKORGID = 0; model.HOWNERID = 0; if (webserver.set_SavePonderationBillMain_Temp_Qty(model, sQty, ref DBUtility.ClsPub.sErrInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "扫码成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "扫码失败!" + DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "扫码失败,此条码不存在!"+e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 生成委外领料单 /// /// [Route("EntrustOut/set_SaveEntrustOutBill_Json")] [HttpPost] public object set_SaveEntrustOutBill_Json([FromBody]JObject oMain) { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); try { List lsmain = new List(); ListModels oListModels = new ListModels(); lsmain = oListModels.getEntrustOutBillMainByJson(msg1); lsmain[0].HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); lsmain[0].HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd")); string sSourceBillType = "1604"; WebAPI.WebS.ClsKf_EntrustOutBillMain websLsmain = new WebS.ClsKf_EntrustOutBillMain(); websLsmain.HInterID = lsmain[0].HInterID; websLsmain.HDate = lsmain[0].HDate; websLsmain.HBillNo = lsmain[0].HBillNo; websLsmain.HDeptID = lsmain[0].HDeptID; //websLsmain.HEmpID = lsmain[0].HEmpID; websLsmain.HRemark = lsmain[0].HRemark; websLsmain.HMaker = lsmain[0].HMaker; websLsmain.HWHID = lsmain[0].HWHID; websLsmain.HMainSourceBillType = "委外订单-投料"; websLsmain.HSupID = lsmain[0].HSupID; if (webserver.set_SaveEntrustOutBill_New(websLsmain, sSourceBillType, ref DBUtility.ClsPub.sErrInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成委外出库单成功!单据号为:"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败![webserver.set_SaveEntrustOutBill_New]" + DBUtility.ClsPub.sErrInfo; objJsonResult.data = websLsmain; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!异常" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 生成委外领料单(红字) /// /// [Route("EntrustOut/set_SaveEntrustOutBackBill_Json")] [HttpPost] public object set_SaveEntrustOutBackBill_Json([FromBody]JObject oMain) { //var _value = oMain["oMain"].ToString(); //string msg1 = _value.ToString(); //List lsmain = new List(); //ListModels oListModels = new ListModels(); //lsmain = oListModels.getICStockBillMainByJson(msg1); //lsmain[0].HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); //lsmain[0].HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd")); //string sSourceBillType = lsmain[0].HBillType; //BLL.ClsKf_EntrustOutBackBill bll = new BLL.ClsKf_EntrustOutBackBill(); //return bll.set_SaveEntrustOutBackBill_New(lsmain[0], sSourceBillType, ref DBUtility.ClsPub.sErrInfo); var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); try { List lsmain = new List(); ListModels oListModels = new ListModels(); lsmain = oListModels.getICStockBillMainByJson(msg1); lsmain[0].HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year); lsmain[0].HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd")); string sSourceBillType = lsmain[0].HBillType; WebAPI.WebS.ClsKf_ICStockBillMain websLsmain = new WebS.ClsKf_ICStockBillMain(); websLsmain.HInterID = lsmain[0].HInterID; websLsmain.HDate = lsmain[0].HDate; websLsmain.HBillNo = lsmain[0].HBillNo; websLsmain.HDeptID = lsmain[0].HDeptID; websLsmain.HEmpID = lsmain[0].HEmpID; websLsmain.HRemark = lsmain[0].HRemark; websLsmain.HMaker = lsmain[0].HMaker; if (webserver.set_SaveEntrustOutBackBill_New(websLsmain, sSourceBillType, ref DBUtility.ClsPub.sErrInfo)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "生成产品退库单成功!单据号为:"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "上传失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 一键扫码 红字 /// /// [Route("Kf_EntrustInBill/get_CheckTypeByBarCode_All_Json")] [HttpGet] public Object get_CheckTypeByBarCode_All_Json(string sCode, Int64 sInterID, string HBillType, string sBillNo, string sMaker, Int64 WhID, Int64 SPID, Double sQty, bool sRedBlue, bool SourceFlag, string sSourceBillNo, string sSourceType, Int64 HOWNERID, string sExpressNumber) { oBar = webserver.get_CheckTypeByBarCode_All(sCode, sInterID, HBillType, sBillNo, sMaker, WhID, SPID, sQty, sRedBlue, SourceFlag, sSourceBillNo, sSourceType, HOWNERID,sExpressNumber, ref DBUtility.ClsPub.sErrInfo); if (oBar == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = oBar; return objJsonResult; } } [Route("Kf_EntrustInBillList/Delete_Json")] [HttpGet] public object Delete_Json(long sHInterID) { string sErrMsg = string.Empty; try { if (webserver.DeleteBillList(sHInterID, ref sErrMsg)) { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "删除成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!"; objJsonResult.data = null; return objJsonResult; } } catch (Exception) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!"; objJsonResult.data = null; return objJsonResult; } } [Route("Kf_EntrustInBillList/DisBillEntryList_Mate_Webs_Json")] [HttpGet] public object DisBillEntryList_Mate_Webs_Json(string HBillType, string sWhere) { try { ds = webserver.GetKf_PonderationBillMain_TempList(HBillType, sWhere); if (ds == null || ds.Tables[0].Rows.Count <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!"; objJsonResult.data = null; return objJsonResult; //DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning); } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 一键扫码 蓝字 /// /// [Route("Kf_EntrustInBill/get_CheckTypeByBarCode_All_Blue_Json")] [HttpGet] public Object get_CheckTypeByBarCode_All_Blue_Json(string sBarCode, long HBillID,string HBillType, string HBillNo,string HMaker, long HWhID, long HSPID, double HQty, bool HRedBlueFlag,bool SourceFlag, string HSourceBillNo, string HSourceBillType,long HOWNERID, string HExpressNumber) { Model.ClsKf_ICStockBill_WMS oBar = new Model.ClsKf_ICStockBill_WMS(); BLL.ClsKF_PonderationBillMain_Temp bll = new BLL.ClsKF_PonderationBillMain_Temp(); HBillType = "1211"; HRedBlueFlag = false; SourceFlag = false; HSourceBillType = "1604"; HExpressNumber = ""; oBar = bll.get_CheckTypeByBarCode_All(sBarCode, HBillID, HBillType, HBillNo, HMaker, HWhID, HSPID, HQty, HRedBlueFlag, SourceFlag, HSourceBillNo, HSourceBillType, HOWNERID, HExpressNumber, ref DBUtility.ClsPub.sErrInfo); if (oBar == null) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = DBUtility.ClsPub.sErrInfo; objJsonResult.data = oBar; return objJsonResult; } } } }