using Newtonsoft.Json.Linq;
|
using Pub_Class;
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.Web.Http;
|
using WebAPI.Models;
|
using Newtonsoft.Json;
|
using DBUtility;
|
|
namespace WebAPI.Controllers.SCGL
|
{
|
public class Sc_ComplementGoodBillController : ApiController
|
{
|
private json objJsonResult = new json();
|
public DataSet ds = new DataSet();
|
public WebServer webserver = new WebServer();
|
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
|
public ClsXt_BaseBillMain omodel = new ClsXt_BaseBillMain();
|
public JIT_CallGoodsBillSub oSub = new JIT_CallGoodsBillSub();
|
|
#region 生产叫料平台列表
|
|
//创建临时类 查询条件子段
|
public class ComplementGoodBill
|
{
|
public string HSeOrderBillNo { get; set; }//销售订单
|
public string DepartmentName { get; set; }//生产车间
|
public string Organization { get; set; }//组织
|
public string MaterialNumber { get; set; }//物料代码
|
public string MaterialName { get; set; }//物料名称
|
public string MaterialModel { get; set; }//规格型号
|
public string CPNumber { get; set; }//产品代码
|
public string CPName { get; set; }//产品名称
|
public string CPModel { get; set; }//规格型号
|
public string HICMOBillNo { get; set; }//生产订单号
|
public DateTime HBeginDate { get; set; }//开始时间
|
public DateTime HEndDate { get; set; }//结束时间
|
public int ps { get; set; }//仅显示未完全配送
|
public string user { get; set; }//当前登录人
|
public string Arbitrarily { get; set; }//任意参数
|
}
|
|
[Route("Sc_ComplementGoodBill/ComplementGoodBillList")]
|
[HttpGet]
|
public object ComplementGoodBillList(string sWhere, string user)
|
{
|
try
|
{
|
//查看权限
|
if (!DBUtility.ClsPub.Security_Log("JIT_ComplementGoodBillMain_Query", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无查看权限!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (sWhere == null || sWhere.Equals(""))
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = new DataTable();
|
return objJsonResult;
|
}
|
//反序列化传递的值
|
ComplementGoodBill com = JsonConvert.DeserializeObject<ComplementGoodBill>(sWhere.ToString());
|
|
ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_Query '{com.HSeOrderBillNo}','{com.DepartmentName}','{com.MaterialNumber}','{com.MaterialName}'," +
|
$"'{com.MaterialModel}','{com.HICMOBillNo}','{com.CPNumber}','{com.CPName}','{com.CPModel}'," +
|
$"{com.ps},{com.Organization},'{com.user}' ", "h_p_JIT_CallGoodsPlatForm_Query");
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[0];
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 叫料新增
|
|
//临时表 叫料单据字段
|
public class CallGoodsBill
|
{
|
public static readonly string ModName = "4601";
|
public long HSouceInterID = 0;//HSourceInterIDCol
|
public long HSourceEntryID = 0;//HSourceEntryIDCol
|
public int? 叫料数量 = 0;//HBHGQtyCol
|
public int? 配套数量 = 0;
|
public int? 已叫料数量 = 0;//HBHGQtyCol
|
public int? 已配送数量 = 0;//HBHGQtyCol
|
public double? 退料数量 = 0;//退料数量
|
public long HSTOCKID = 0;//HSTOCKID
|
public string 退料原因 { get; set; }//退料原因
|
public int HMaterialID = 0; //HMaterialIDCol
|
public string 物料代码 = "";
|
public string HSourceBillNo { get; set; }//HSourceBillNoCol
|
public int 调出仓库可用库存数量 = 0;//HKFQtyKYCol
|
public int 调出仓库库存数量 = 0;//HKFQtySCol
|
public double 计划发料数量 = 0;//HPlanQtyCol
|
public int HWHID = 0;//HWHIDCol
|
public int? 调出仓库id = 0;//调出仓库id
|
public int? 调入仓库id = 0;//调入仓库id
|
public string HMaterialNumberCol { get; set; }
|
public string HMaterialModelCol { get; set; }
|
public string HProcID { get; set; }//HProcIDCol
|
public string HProcNameCol { get; set; }//工段
|
public int HOutOrgID = 0;//HOutOrgID
|
public string HICMOBillNo { get; set; }// HICMOBillNoCol
|
public long HICMOInterID = 0;// HICMOInterIDCol
|
public long HICMOEntryID = 0;// HICMOEntryIDCol
|
public long HDeptID = 0;//HDeptID
|
public long 库存数量 = 0;
|
public double HBHGQtyCol = 0;
|
public string 销售订单号 { get; set; }//HSeOrderNOCol
|
public DateTime? 计划开工日期 = null;//HBPlanDateCol
|
}
|
|
//临时表 叫料子表
|
public class JIT_CallGoodsBillSub: ClsXt_BaseBillSub
|
{
|
public double HQty;
|
public long HMaterID;
|
public string HMaterNumber;
|
public string HProcName;
|
public string HModel;
|
public string HProcID;
|
public string HICMOBillNo;
|
public string HSeOrderNOCol;
|
public string HSeOrderNo;
|
public string HSeOrderBillNo;
|
public int HWHID = 0;
|
public int HSCWHID = 0;
|
public long HOutOrgID = 0;
|
public long HICMOInterID = 0;
|
public long HICMOEntryID = 0;
|
public long HSeOrderInterID = 0;
|
public long HSeOrderEntryID = 0;
|
public long HDeptID = 0;
|
public double HPlanQty = 0;
|
public int HSPID = 0;
|
public DateTime? HBPlanDate = null;
|
}
|
|
[Route("Sc_ComplementGoodBill/InsertCallGoodsBill")]
|
[HttpPost]
|
public object InsertCallGoodsBill([FromBody] JObject msg)
|
{
|
var _value = msg["msg"].ToString();
|
string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
string msg2 = sArray[0].ToString();
|
string user = sArray[1].ToString();
|
omodel.HPRDORGID = long.Parse(sArray[2].ToString());
|
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBill_Edit", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", "");
|
|
List<CallGoodsBill> listCa = new List<CallGoodsBill>();
|
//获取表格数据集合
|
listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
|
|
int j = 0;
|
var flag = false;
|
var txt = "";
|
|
for (int i = 0; i < listCa.Count; i++)
|
{
|
if (listCa[i].HMaterialID != 0 && listCa[i].叫料数量 > 0)
|
{
|
var Hqty = 0.0;
|
var TuiHqty = 0.0;
|
//当前单据已叫料 和 已退料数量
|
ds = oCN.RunProcReturn($@"
|
select isnull(a.HQty,0) 已叫料数量,isnull(b.HQty,0) 已退料申请数量 from (
|
select sum(b.HQty) HQty,c.HNumber ,b.HSourceBillNo
|
from JIT_CallGoodsBillMain a
|
join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID
|
left join Gy_Material c on b.HMaterID=c.HItemID
|
where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
|
group by c.HNumber,b.HSourceBillNo
|
) a
|
left join (
|
select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo
|
from JIT_CallGoodsBackRequestBillMain a
|
inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID
|
left join Gy_Material c on b.HMaterID=c.HItemID
|
where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
|
group by c.HNumber,b.HSourceBillNo
|
) b on a.HNumber=b.HNumber and a.HSourceBillNo=b.HSourceBillNo where a.HNumber='{listCa[i].物料代码}'", "JIT_CallGoodsBillMain");
|
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
Hqty = double.Parse(ds.Tables[0].Rows[0]["已叫料数量"].ToString());
|
TuiHqty = double.Parse(ds.Tables[0].Rows[0]["已退料申请数量"].ToString());
|
}
|
|
if (listCa[i].叫料数量 > listCa[i].计划发料数量)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{(i + 1)}行叫料数量大于计划发料数量!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if((listCa[i].叫料数量 + Hqty - TuiHqty)> listCa[i].计划发料数量)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{(i + 1)}行叫料总数量大于计划发料数量!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 仓库ID=" + listCa[i].调出仓库id + " and 物料编码 = '" + listCa[i].物料代码 + "' and 库存组织=" + listCa[i].HOutOrgID, "h_v_JIT_WarehouseList");
|
|
var HSCWHIDCount= double.Parse(ds.Tables[0].Rows[0]["调出仓库可用库存数量"].ToString());
|
|
if (HSCWHIDCount == 0 && listCa[i].叫料数量 > 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{(i + 1)}行库存数量为0,无法叫料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].叫料数量 > HSCWHIDCount)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{(i + 1)}行库存数量小于叫料数量,无法叫料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].叫料数量 > 0 && listCa[i].调入仓库id == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{(i + 1)}行请选择调入仓库!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].叫料数量 > 0 && listCa[i].调出仓库id == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{(i + 1)}行请选择调出仓库!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].调出仓库id == listCa[i].调入仓库id)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{(i + 1)}行调出仓库和调入仓库不能一样!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
j = 1;
|
|
var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
|
omodel.HInterID = DBUtility.ClsPub.CreateBillID_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo);
|
omodel.HYear = DateTime.Now.Year;
|
omodel.HPeriod = DateTime.Now.Month;
|
//固定赋值=================================
|
omodel.HBillNo = txtHBillNo.Trim(); //在赋值类前就处理好字符串和数字
|
omodel.HDate = DateTime.Now;
|
omodel.HMaker = user;
|
omodel.HMakeDate = DateTime.Today.ToString();
|
omodel.HUpDater = "";
|
omodel.HUpDateDate = "";
|
omodel.HCloseType = false;
|
//明细类赋值
|
|
//固定赋值========================================
|
oSub.HEntryID = i + 1;
|
oSub.HSourceInterID =listCa[i].HSouceInterID;
|
oSub.HSourceEntryID = listCa[i].HSourceEntryID;
|
oSub.HSourceBillType = "88";
|
oSub.HSourceBillNo = listCa[i].HSourceBillNo;
|
oSub.HQty =double.Parse(listCa[i].叫料数量.ToString());
|
|
oSub.HMaterID = listCa[i].HMaterialID;
|
oSub.HMaterNumber = listCa[i].HMaterialNumberCol;
|
oSub.HModel = listCa[i].HMaterialModelCol;
|
oSub.HWHID = int.Parse(listCa[i].调入仓库id.ToString());
|
oSub.HSCWHID = int.Parse(listCa[i].调出仓库id.ToString());
|
oSub.HProcName = listCa[i].HProcNameCol;
|
oSub.HProcID = listCa[i].HProcID;
|
oSub.HOutOrgID = listCa[i].HOutOrgID;
|
oSub.HICMOBillNo = listCa[i].HICMOBillNo;
|
oSub.HICMOInterID = listCa[i].HICMOInterID;
|
oSub.HICMOEntryID = listCa[i].HICMOEntryID;
|
oSub.HDeptID = listCa[i].HDeptID;
|
oSub.HPlanQty = listCa[i].计划发料数量;
|
oSub.HSeOrderNo = listCa[i].销售订单号;
|
oSub.HBPlanDate = listCa[i].计划开工日期;
|
|
|
flag = AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
|
|
if (flag == false)
|
{
|
txt = txt + DBUtility.ClsPub.isStrNull(i + 1) + "、";
|
}
|
}
|
}
|
if (txt != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{txt}行叫料失败,重新叫料";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
if (flag == true)
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "叫料成功!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
if (j == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无任何叫料数量或叫料数量小于0,无法叫料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = null;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
//新增单据
|
public bool AddBill(ref string sReturn)
|
{
|
try
|
{
|
//插入子表
|
oCN.RunProc("Insert into JIT_CallGoodsBillSub " +
|
" (HInterID,HEntryID,HRemark" +
|
",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
|
",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" +
|
",HDeptID,HMaterID,HQty,HProcID,HWHID,HSCWHID,HSPID,HBillNo_bak,HOutOrgID,HStockOutOrgID,HStockInOrgID" +
|
") values("
|
+ omodel.HInterID.ToString() + "," + oSub.HEntryID.ToString() + ",'" + oSub.HRemark + "'" +
|
"," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() + ",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
|
"," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'," + oSub.HICMOInterID.ToString() + "," + oSub.HICMOEntryID.ToString() + ",'" + oSub.HICMOBillNo + "'" +
|
"," + oSub.HDeptID.ToString() + "," + oSub.HMaterID.ToString() + "," + oSub.HQty.ToString() + ",'" + oSub.HProcID + "'," + oSub.HWHID.ToString() + ", " + oSub.HSCWHID.ToString()+"," + oSub.HSPID.ToString() +",'',"+oSub.HOutOrgID+ ","+oSub.HOutOrgID+ "," + omodel.HPRDORGID +") ", ref DBUtility.ClsPub.sExeReturnInfo);
|
|
//主表
|
|
oCN.RunProc("Insert Into JIT_CallGoodsBillMain " +
|
"(HBillType,HBillSubType,HInterID,HBillNo,HDate" +
|
",HYear,HPeriod,HRemark,HMaker,HMakeDate" +
|
",HBillStatus,HCheckItemNowID,HCheckItemNextID,HCheckFlowID" +
|
",HMainSourceBillType,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo" +
|
",HBacker,HBackDate,HBackRemark,HChecker,HCheckDate,HUpDater,HUpDateDate " +
|
",HCloseMan,HCloseDate,HCloseType,HDeleteMan,HDeleteDate " +
|
",HPrintQty,HCallManID,HSendManID,HCallType,HWareManID,HOrgID) " +
|
" values('" + CallGoodsBill.ModName + "','" + CallGoodsBill.ModName + "'," + omodel.HInterID.ToString() + ",'" + omodel.HBillNo + "','" + omodel.HDate + "'" +
|
", " + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + omodel.HRemark + "','" + omodel.HMaker + "',getdate()" +
|
",'" + omodel.HBillStatus + "'," + omodel.HCheckItemNowID.ToString() + "," + omodel.HCheckItemNextID.ToString() + ", " + omodel.HCheckFlowID.ToString() +
|
",'" + omodel.HMainSourceBillType + "'," + omodel.HMainSourceInterID.ToString() + "," + omodel.HMainSourceEntryID.ToString() + ", '" + omodel.HMainSourceBillNo + "'" +
|
",'" + omodel.HBacker + "','" + omodel.HBackDate + "','" + omodel.HBackRemark + "', '" + omodel.HChecker + "','" + omodel.HCheckDate + "', '" + omodel.HUpDater + "',''" +
|
",'" + omodel.HCloseMan + "','" + omodel.HCloseDate + "','" + omodel.HCloseType + "', '" + omodel.HDeleteMan + "','" + omodel.HDeleteDate + "'" +
|
",0,0,0,'普通',0," + omodel.HPRDORGID + ") ", ref DBUtility.ClsPub.sExeReturnInfo);
|
|
sReturn = "新增单据成功!";
|
//oCn.Commit();
|
return true;
|
}
|
catch (Exception e)
|
{
|
sReturn = e.Message;
|
oCN.RollBack();
|
throw (e);
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 不良品退料申请单新增
|
[Route("Sc_ComplementGoodBill/Insert_BLP_ICStockTuiBill")]
|
[HttpPost]
|
public object Insert_BLP_ICStockTuiBill([FromBody] JObject msg)
|
{
|
var _value = msg["msg"].ToString();
|
string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
string msg2 = sArray[0].ToString();
|
DBUtility.ClsPub.CurUserName = sArray[1].ToString();
|
string HOrgID = sArray[2].ToString();
|
json flag =new json();
|
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("JIT_BLP_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", "");
|
|
List<CallGoodsBill> listCa = new List<CallGoodsBill>();
|
//获取表格数据集合
|
listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
|
|
int j=0;
|
for (int i = 0; i < listCa.Count; i++)
|
{
|
if (listCa[i].退料数量 > 0)
|
{
|
flag = (json)AddICStockTuiBill(listCa[i], "666601", "不良品退料", HOrgID);
|
j = 1;
|
|
if (flag.code == "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = objJsonResult.Message;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
}
|
if (j == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无任何退料数量或退料数量小于0,无法退料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "不良品退料成功!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
//新增
|
public object AddICStockTuiBill(CallGoodsBill listCa,string HBillType,string HBackType,string HOrgID)
|
{
|
try
|
{
|
|
|
if (listCa.退料数量 > listCa.已配送数量 && listCa.已配送数量 > 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "退料数量大于已配送数量!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa.调入仓库id == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "请选择调入仓库!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa.调出仓库id == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "请选择调出仓库!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
var THqty = 0.0;
|
ds = oCN.RunProcReturn($@"
|
select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo
|
from JIT_CallGoodsBackRequestBillMain a
|
inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID
|
left join Gy_Material c on b.HMaterID=c.HItemID
|
where c.HNumber='{listCa.物料代码}' and b.HSourceBillNo='{listCa.HSourceBillNo}'
|
group by c.HNumber,b.HSourceBillNo
|
", "JIT_CallGoodsBackRequestBillMain");
|
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
THqty = double.Parse(ds.Tables[0].Rows[0]["HQty"].ToString());
|
}
|
|
if ((listCa.退料数量 + THqty) > listCa.已配送数量)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "累计退料数量大于已配送数量!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
Int64 lngBillKey = listCa.HSouceInterID == 0 ? 0 : listCa.HSouceInterID;
|
Int64 lngBillKeyEntry = listCa.HSourceEntryID == 0 ? 0 : listCa.HSourceEntryID;
|
double HQty = (double)(listCa.退料数量 == 0 ? 0 : listCa.退料数量);
|
long HDeptWHID = int.Parse(listCa.调入仓库id.ToString()) == 0 ? 0 : int.Parse(listCa.调入仓库id.ToString());
|
string HTuiResult = listCa.退料原因 == "" ? "" : listCa.退料原因;
|
var HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
|
var HBillInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
|
|
oCN.BeginTran();
|
//插入子表
|
oCN.RunProc("Insert into JIT_CallGoodsBackRequestBillSub ( HInterID,HEntryID,HSourceInterID,HSourceEntryID," +
|
"HSourceBillNo,HSourceBillType, HMaterID, HQty, HSCWHID," +
|
" HWHID, HSPID, HResult, HDeptID, HProcID,HBackReason) " +
|
$"values({HBillInterID},1,{lngBillKey},{ lngBillKeyEntry}," +
|
$"'{listCa.HSourceBillNo}',88,{listCa.HMaterialID},{HQty},{(listCa.调出仓库id==null?0:listCa.调出仓库id)}," +
|
$"{HDeptWHID},'','',{listCa.HDeptID},'','{HTuiResult}')");
|
|
//插入主表
|
oCN.RunProc("insert into JIT_CallGoodsBackRequestBillMain(HYear,HPeriod,HInterid,HBillSubType,HBillStatus," +
|
"HBillType,HDate,HBillNo,HOrgID,HMaker,HMakeDate,HRemark,HBackRemark,HMainSourceBillType , HMainSourceInterID, HMainSourceEntryID, HMainSourceBillNo," +
|
" HItemMainID, HSendManID, HWareManID, HStockOutOrgID, HStockInOrgID, HBackType)" +
|
$"values({DateTime.Now.Year},{DateTime.Now.Month},{HBillInterID},'{HBillType}',1," +
|
$" '{HBillType}','{DateTime.Now}','{HBillNo}',{HOrgID},'{ DBUtility.ClsPub.CurUserName}','{DateTime.Now}','','',0,0,0,''," +
|
$" 0, 0, {listCa.HOutOrgID}, {HOrgID}, 0,'{HBackType}')");
|
|
oCN.Commit();
|
|
objJsonResult.code = "1";
|
objJsonResult.Message = "新增单据成功!";
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.Message = e.Message; ;
|
return objJsonResult;
|
throw (e);
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 余量退料申请单新增
|
[Route("Sc_ComplementGoodBill/Insert_YL_ICStockTuiBill")]
|
[HttpPost]
|
public object Insert_YL_ICStockTuiBill([FromBody] JObject msg)
|
{
|
var _value = msg["msg"].ToString();
|
string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
string msg2 = sArray[0].ToString();
|
DBUtility.ClsPub.CurUserName = sArray[1].ToString();
|
string HOrgID = sArray[2].ToString();
|
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("JIT_YL_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", "");
|
|
List<CallGoodsBill> listCa = new List<CallGoodsBill>();
|
//获取表格数据集合
|
listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
|
json flag = new json();
|
|
int j = 0;
|
for (int i = 0; i < listCa.Count; i++)
|
{
|
if (listCa[i].退料数量 > 0)
|
{
|
flag =(json)AddICStockTuiBill(listCa[i], "666602", " 余量退料", HOrgID);
|
j = 1;
|
if (flag.code == "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = objJsonResult.Message;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
}
|
if (j == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无任何退料数量,无法退料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "余量退料成功!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 报废退料申请单新增
|
[Route("Sc_ComplementGoodBill/Insert_BF_ICStockTuiBill")]
|
[HttpPost]
|
public object Insert_BF_ICStockTuiBill([FromBody] JObject msg)
|
{
|
var _value = msg["msg"].ToString();
|
string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
string msg2 = sArray[0].ToString();
|
DBUtility.ClsPub.CurUserName = sArray[1].ToString();
|
string HOrgID = sArray[2].ToString();
|
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("JIT_BF_ComplementGoods_Edit", 1, false, DBUtility.ClsPub.CurUserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", "");
|
|
List<CallGoodsBill> listCa = new List<CallGoodsBill>();
|
//获取表格数据集合
|
listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
|
|
json flag = new json();
|
int j = 0;
|
for (int i = 0; i < listCa.Count; i++)
|
{
|
if (listCa[i].退料数量 > 0)
|
{
|
flag =(json) AddICStockTuiBill(listCa[i], "666603", "报废退料", HOrgID);
|
j = 1;
|
if (flag.code == "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = objJsonResult.Message;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
}
|
if (j == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无任何退料数量,无法退料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "报废退料成功!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 叫料拣料信息查询 上查/下查
|
//查询条件
|
public class HlpBill
|
{
|
public int HSouceInterID = 0;
|
public int HSourceEntryID = 0;
|
public int Type = 0;
|
public string user { get; set; }
|
}
|
[Route("Sc_ComplementGoodBill/HlpBillList")]
|
[HttpGet]
|
public object HlpBillList(string sWhere)
|
{
|
try
|
{
|
List<object> columnNameList = new List<object>();
|
//反序列化传递的值
|
HlpBill com = JsonConvert.DeserializeObject<HlpBill>(sWhere.ToString());
|
|
if (com.Type == 1)
|
{
|
//生产叫料平台 下查
|
ds = oCN.RunProcReturn($"exec h_p_JIT_CallGoodsPlatForm_DownQuery 0,0,'',0,0,{com.HSouceInterID},{com.HSourceEntryID}" +
|
$",'{com.user}'", "h_p_JIT_CallGoodsPlatForm_DownQuery");
|
}
|
else if (com.Type == 2)
|
{
|
//拣料配送 上查
|
ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_UpQuery '{com.HSouceInterID}',{com.HSourceEntryID}", "h_p_JIT_ComplementGoodsBillList_UpQuery");
|
}
|
else if (com.Type == 3)
|
{
|
//拣料配送 下查
|
ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_DownQuery '{com.HSouceInterID}',{com.HSourceEntryID}", "h_p_JIT_ComplementGoodsBillList_DownQuery");
|
}
|
else if (com.Type == 3772)
|
{
|
//生产订单 下查 工序流转卡
|
ds = oCN.RunProcReturn($"select * from h_v_Sc_ProcessExchangeBillQuery where HICMOInterID='{com.HSouceInterID}' and HICMOEntryID={com.HSourceEntryID} and HBillSubType<>'SUB'", "h_v_Sc_ProcessExchangeBillQuery");
|
}
|
|
//添加列名
|
foreach (DataColumn col in ds.Tables[0].Columns)
|
{
|
Type dataType = col.DataType;
|
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
|
columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
|
}
|
|
//type==1 存储过程里面查询了两次 所有需要判断两张表都有没有数据
|
if (ds.Tables[0].Rows.Count != 0)
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[0];
|
objJsonResult.list = columnNameList;
|
return objJsonResult;
|
}
|
else if ((com.Type == 1 ? ds.Tables[1].Rows.Count : ds.Tables[0].Rows.Count) != 0)
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[1];
|
objJsonResult.list = columnNameList;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[0];
|
objJsonResult.list = columnNameList;
|
return objJsonResult;
|
}
|
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 拣料单新增
|
[Route("Sc_ComplementGoodBill/Insert_JL_ICStockTuiBill")]
|
[HttpPost]
|
public object Insert_JL_ICStockTuiBill([FromBody] JObject msg)
|
{
|
var _value = msg["msg"].ToString();
|
string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
string msg2 = sArray[0].ToString();
|
string user = sArray[1].ToString();
|
string HOrgID = sArray[2].ToString();
|
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("Cj_ComplementGoodsBill_Edit", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", "");
|
|
ds = oCN.RunProcReturn("select * from h_v_IF_JIT_CallGoodsBillList ", "h_v_IF_JIT_CallGoodsBillList ");
|
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
ds.Clear();
|
long HInterID = DBUtility.ClsPub.CreateBillID_Prod("4602", ref DBUtility.ClsPub.sExeReturnInfo);
|
string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("4602", ref DBUtility.ClsPub.sExeReturnInfo, true);
|
|
ds= oCN.RunProcReturn($"exec h_p_JIT_ComplementGoods_Insert {HInterID},'{HBillNo}',{HOrgID},'{user}',0,0", "h_p_JIT_ComplementGoods_Insert");
|
|
objJsonResult.code = ds.Tables[0].Rows[0][0].ToString();
|
objJsonResult.count = int.Parse(ds.Tables[0].Rows[0][0].ToString());
|
objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无数据,无法拣料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 退料单新增
|
[Route("Sc_ComplementGoodBill/Insert_TL_ICStockTuiBill")]
|
[HttpPost]
|
public object Insert_TL_ICStockTuiBill([FromBody] JObject msg)
|
{
|
var _value = msg["msg"].ToString();
|
string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
string msg2 = sArray[0].ToString();
|
string user = sArray[1].ToString();
|
string HOrgID = sArray[2].ToString();
|
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBillBack_Edit", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", "");
|
|
ds = oCN.RunProcReturn("select * from JIT_CallGoodsBackRequestBillMain where HISCheck=0 ", "JIT_CallGoodsBackRequestBillMain ");
|
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
|
long HInterID = DBUtility.ClsPub.CreateBillID_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo);
|
string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("6666", ref DBUtility.ClsPub.sExeReturnInfo, true);
|
//long HOutOrgID = int.Parse(listCa[i].HOutOrgID.ToString());
|
//long HWHID = int.Parse(listCa[i].HWHID.ToString());
|
|
ds= oCN.RunProcReturn($"exec h_p_JIT_GetCallGoodsBillCount_Back {HInterID},'{HBillNo}',{HOrgID},'{user}'", "h_p_JIT_GetCallGoodsBillCount_Back");
|
|
objJsonResult.code = ds.Tables[0].Rows[0][0].ToString();
|
objJsonResult.count = int.Parse(ds.Tables[0].Rows[0][0].ToString());
|
objJsonResult.Message = ds.Tables[0].Rows[0][1].ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无数据,无法退料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 仓库库存列表
|
|
[Route("Sc_ComplementGoodBill/GetWarehouseList_JIT")]
|
[HttpGet]
|
public object GetWarehouseList_JIT(string sWhere)
|
{
|
try
|
{
|
ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 1=1 "+ sWhere, "h_v_JIT_WarehouseList");
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[0];
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 未生成拣料申请单 未生成退料单
|
[Route("Sc_ComplementGoodBill/NotGeneratedMaterialList")]
|
[HttpGet]
|
public object NotGeneratedMaterialList(string sWhere, string user)
|
{
|
try
|
{
|
//查询叫料单 未生成 拣料单 的条数
|
//查询退料申请单 未生成 退料单的 条数
|
ds = oCN.RunProcReturn($@"select count(*) 未生成 from JIT_CallGoodsBackRequestBillMain as a
|
inner join JIT_CallGoodsBackRequestBillSub as b on a.HInterID=b.HInterID
|
where a.HISCheck =0 and a.HOrgID={sWhere}
|
and a.HMaker = '{user}'
|
union all
|
select count(*) 未生成 from JIT_CallGoodsBillMain a
|
join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID
|
where b.HPSQty=0 and a.HOrgID={sWhere}
|
and a.HMaker = '{user}'", "JIT_CallGoodsBackRequestBillMain");
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[0];
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 配套叫料查询
|
|
[Route("Sc_ComplementGoodBill/JIT_ComplementGoodPT")]
|
[HttpGet]
|
public object JIT_ComplementGoodPT(string sWhere,string user)
|
{
|
try
|
{
|
ds = oCN.RunProcReturn("exec h_p_JIT_ComplementGoodPT " + sWhere, "h_p_JIT_ComplementGoodPT");
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[0];
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 生产叫料平台 配套叫料新增
|
[Route("Sc_ComplementGoodBill/InsertCallGoodsBill_PTJL")]
|
[HttpPost]
|
public object InsertCallGoodsBill_PTJL([FromBody] JObject msg)
|
{
|
var _value = msg["msg"].ToString();
|
string[] sArray = _value.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
|
string msg2 = sArray[0].ToString();
|
string user = sArray[1].ToString();
|
omodel.HPRDORGID = long.Parse(sArray[2].ToString());
|
|
try
|
{
|
if (!DBUtility.ClsPub.Security_Log("Cj_CallGoodsBill_Edit", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", "");
|
|
List<CallGoodsBill> listCa = new List<CallGoodsBill>();
|
//获取表格数据集合
|
listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString());
|
|
var flag = false;
|
var txt = "";
|
|
for (int i = 0; i < listCa.Count; i++)
|
{
|
if (listCa[i].配套数量 <= 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i + 1}行配套数量小于0,无法叫料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
ds = oCN.RunProcReturn("select * from h_v_JIT_WarehouseList where 仓库ID=" + listCa[i].调出仓库id + " and 物料编码 = '" + listCa[i].物料代码 + "' and 库存组织=" + listCa[i].HOutOrgID, "h_v_JIT_WarehouseList");
|
|
var HSCWHIDCount = double.Parse(ds.Tables[0].Rows[0]["调出仓库可用库存数量"].ToString());
|
|
if (HSCWHIDCount == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i + 1}行库存数量为0,无法叫料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].配套数量 > HSCWHIDCount)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i+1}行库存数量小于叫料数量,无法叫料!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].调入仓库id == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i + 1}行请选择调入仓库!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].调出仓库id == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i + 1}行请选择调出仓库!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if (listCa[i].调出仓库id == listCa[i].调入仓库id)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i + 1}行调出仓库和调入仓库不能一样!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
var Hqty = 0.0;
|
var TuiHqty = 0.0;
|
//当前单据已叫料 和 已退料数量
|
ds = oCN.RunProcReturn($@"
|
select isnull(a.HQty,0) 已叫料数量,isnull(b.HQty,0) 已退料申请数量 from (
|
select sum(b.HQty) HQty,c.HNumber ,b.HSourceBillNo
|
from JIT_CallGoodsBillMain a
|
join JIT_CallGoodsBillSub b on a.HInterID=b.HInterID
|
left join Gy_Material c on b.HMaterID=c.HItemID
|
where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
|
group by c.HNumber,b.HSourceBillNo
|
) a
|
left join (
|
select sum(b.HQty) HQty,c.HNumber,b.HSourceBillNo
|
from JIT_CallGoodsBackRequestBillMain a
|
inner join JIT_CallGoodsBackRequestBillSub b on a.HInterID=b.HInterID
|
left join Gy_Material c on b.HMaterID=c.HItemID
|
where b.HSourceBillNo='{listCa[i].HSourceBillNo}'
|
group by c.HNumber,b.HSourceBillNo
|
) b on a.HNumber=b.HNumber and a.HSourceBillNo=b.HSourceBillNo where a.HNumber='{listCa[i].物料代码}'", "JIT_CallGoodsBillMain");
|
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
Hqty = double.Parse(ds.Tables[0].Rows[0]["已叫料数量"].ToString());
|
TuiHqty = double.Parse(ds.Tables[0].Rows[0]["已退料申请数量"].ToString());
|
}
|
|
if (listCa[i].配套数量 > listCa[i].计划发料数量)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i + 1}行叫料数量大于计划发料数量!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
if ((listCa[i].配套数量 + Hqty - TuiHqty) > listCa[i].计划发料数量)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{i + 1}行叫料总数量大于计划发料数量!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
|
var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号
|
omodel.HInterID = DBUtility.ClsPub.CreateBillID_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo);
|
omodel.HYear = DateTime.Now.Year;
|
omodel.HPeriod = DateTime.Now.Month;
|
//固定赋值=================================
|
omodel.HBillNo = txtHBillNo.Trim(); //在赋值类前就处理好字符串和数字
|
omodel.HDate = DateTime.Now;
|
omodel.HMaker = user;
|
omodel.HMakeDate = DateTime.Today.ToString();
|
omodel.HUpDater = "";
|
omodel.HUpDateDate = "";
|
omodel.HCloseType = false;
|
//明细类赋值
|
|
//固定赋值========================================
|
oSub.HEntryID = i + 1;
|
oSub.HSourceInterID = listCa[i].HSouceInterID;
|
oSub.HSourceEntryID = listCa[i].HSourceEntryID;
|
oSub.HSourceBillType = "88";
|
oSub.HSourceBillNo = listCa[i].HSourceBillNo;
|
oSub.HQty = double.Parse(listCa[i].配套数量.ToString());
|
|
oSub.HMaterID = listCa[i].HMaterialID;
|
oSub.HMaterNumber = listCa[i].HMaterialNumberCol;
|
oSub.HModel = listCa[i].HMaterialModelCol;
|
oSub.HWHID = int.Parse(listCa[i].调入仓库id.ToString());
|
oSub.HSCWHID = int.Parse(listCa[i].调出仓库id.ToString());
|
oSub.HProcName = listCa[i].HProcNameCol;
|
oSub.HProcID = listCa[i].HProcID;
|
oSub.HOutOrgID = listCa[i].HOutOrgID;
|
oSub.HICMOBillNo = listCa[i].HICMOBillNo;
|
oSub.HICMOInterID = listCa[i].HICMOInterID;
|
oSub.HICMOEntryID = listCa[i].HICMOEntryID;
|
oSub.HDeptID = listCa[i].HDeptID;
|
oSub.HPlanQty = listCa[i].计划发料数量;
|
oSub.HSeOrderNo = listCa[i].销售订单号;
|
oSub.HBPlanDate = listCa[i].计划开工日期;
|
|
|
flag = AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
|
|
if (flag == false)
|
{
|
txt = txt + DBUtility.ClsPub.isStrNull(i + 1) + "、";
|
}
|
|
}
|
if (txt != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"第{txt}行叫料失败,重新叫料";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
if (flag == true)
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "叫料成功!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = null;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
|
#endregion
|
}
|
}
|