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;
}
}
}
}