| | |
| | | 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 |
| | |
| | | { |
| | | 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 = "叫料数量大于计划发料数量!"; |
| | | objJsonResult.Message = $"第{(i + 1)}行叫料数量大于计划发料数量!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].库存数量 == 0 && listCa[i].叫料数量 > 0) |
| | | if((listCa[i].叫料数量 + Hqty - TuiHqty)> listCa[i].计划发料数量) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "库存数量为0,无法叫料!"; |
| | | objJsonResult.Message = $"第{(i + 1)}行叫料总数量大于计划发料数量!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].叫料数量 > listCa[i].库存数量) |
| | | 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 = "库存数量小于叫料数量,无法叫料!"; |
| | | 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; |
| | | } |
| | |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "请选择调入仓库!"; |
| | | objJsonResult.Message = $"第{(i + 1)}行请选择调入仓库!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "请选择调出仓库!"; |
| | | objJsonResult.Message = $"第{(i + 1)}行请选择调出仓库!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "调出仓库和调入仓库不能一样!"; |
| | | objJsonResult.Message = $"第{(i + 1)}行调出仓库和调入仓库不能一样!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | //if (listCa[i].调出仓库可用库存数量 == 0) |
| | | //{ |
| | | // objJsonResult.code = "0"; |
| | | // objJsonResult.count = 0; |
| | | // objJsonResult.Message = "调出仓库可用库存数量为0!"; |
| | | // objJsonResult.data = null; |
| | | // return objJsonResult; |
| | | //} |
| | | |
| | | j = 1; |
| | | |
| | |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"第{txt}行叫料失败,重新叫料,其他行数叫料成功"; |
| | | objJsonResult.Message = $"第{txt}行叫料失败,重新叫料"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | |
| | | catch (Exception e) |
| | | { |
| | | sReturn = e.Message; |
| | | oCN.RollBack(); |
| | | throw (e); |
| | | } |
| | | } |
| | |
| | | string msg2 = sArray[0].ToString(); |
| | | DBUtility.ClsPub.CurUserName = sArray[1].ToString(); |
| | | string HOrgID = sArray[2].ToString(); |
| | | bool flag = false; |
| | | json flag =new json(); |
| | | |
| | | try |
| | | { |
| | |
| | | { |
| | | if (listCa[i].退料数量 > 0) |
| | | { |
| | | if (listCa[i].退料数量 > listCa[i].已配送数量&& listCa[i].已配送数量>0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "退料数量大于已配送数量!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | ds = oCN.RunProcReturn("select isnull(sum(d.HQty),0) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " + |
| | | $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub"); |
| | | |
| | | if ((double.Parse(ds.Tables[0].Rows[0][0].ToString()==""?"0": ds.Tables[0].Rows[0][0].ToString()) +listCa[i].退料数量) > listCa[i].已叫料数量) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].调入仓库id == 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "请选择调入仓库!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].调出仓库id == 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "请选择调出仓库!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | flag = AddICStockTuiBill(listCa[i], "666601", "不良品退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo); |
| | | 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) |
| | |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (flag) |
| | | { |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "不良品退料成功!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | 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) |
| | | { |
| | |
| | | } |
| | | |
| | | //新增 |
| | | public bool AddICStockTuiBill(CallGoodsBill listCa,string HBillType,string HBackType,string HOrgID, ref string sReturn) |
| | | 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.退料数量); |
| | |
| | | $" '{HBillType}','{DateTime.Now}','{HBillNo}',{HOrgID},'{ DBUtility.ClsPub.CurUserName}','{DateTime.Now}','','',0,0,0,''," + |
| | | $" 0, 0, {listCa.HOutOrgID}, {HOrgID}, 0,'{HBackType}')"); |
| | | |
| | | sReturn = "新增单据成功!"; |
| | | oCN.Commit(); |
| | | return true; |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.Message = "新增单据成功!"; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | sReturn = e.Message; |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.Message = e.Message; ; |
| | | return objJsonResult; |
| | | throw (e); |
| | | } |
| | | } |
| | |
| | | List<CallGoodsBill> listCa = new List<CallGoodsBill>(); |
| | | //获取表格数据集合 |
| | | listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString()); |
| | | bool flag = false; |
| | | json flag = new json(); |
| | | |
| | | int j = 0; |
| | | for (int i = 0; i < listCa.Count; i++) |
| | | { |
| | | if (listCa[i].退料数量 > 0) |
| | | { |
| | | if (listCa[i].退料数量 > listCa[i].已配送数量 && listCa[i].已配送数量 > 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "退料数量大于已配送数量!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | ds = oCN.RunProcReturn("select sum(d.HQty) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " + |
| | | $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub"); |
| | | |
| | | if ((double.Parse(ds.Tables[0].Rows[0][0].ToString() == "" ? "0" : ds.Tables[0].Rows[0][0].ToString()) + listCa[i].退料数量) > listCa[i].已叫料数量) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | flag = AddICStockTuiBill(listCa[i], "666602", " 余量退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo); |
| | | 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) |
| | |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (flag) |
| | | { |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "余量退料成功!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | 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) |
| | | { |
| | |
| | | //获取表格数据集合 |
| | | listCa = JsonConvert.DeserializeObject<List<CallGoodsBill>>(msg2.ToString()); |
| | | |
| | | bool flag = false; |
| | | json flag = new json(); |
| | | int j = 0; |
| | | for (int i = 0; i < listCa.Count; i++) |
| | | { |
| | | if (listCa[i].退料数量 > 0) |
| | | { |
| | | if (listCa[i].退料数量 > listCa[i].已配送数量 && listCa[i].已配送数量 > 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "退料数量大于已配送数量!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | ds = oCN.RunProcReturn("select sum(d.HQty) HQty from JIT_CallGoodsBackRequestBillSub c inner join JIT_CallGoodsBackBillSub d on c.HInterID = d.HSourceInterID and c.HEntryID = d.HSourceEntryID and c.HMaterID = d.HMaterID " + |
| | | $"where c.HSourceInterID={listCa[i].HSouceInterID} and c.HSourceEntryID ={listCa[i].HSourceEntryID} and c.HSourceBillNo = '{listCa[i].HSourceBillNo}' and c.HMaterID={listCa[i].HMaterialID}", "JIT_CallGoodsBackRequestBillSub"); |
| | | |
| | | if ((double.Parse(ds.Tables[0].Rows[0][0].ToString() == "" ? "0" : ds.Tables[0].Rows[0][0].ToString()) + listCa[i].退料数量) > listCa[i].已叫料数量) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = $"已经退料数量:{double.Parse(ds.Tables[0].Rows[0][0].ToString())},可退料数量为:{(listCa[i].已叫料数量 - double.Parse(ds.Tables[0].Rows[0][0].ToString()))}!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | flag = AddICStockTuiBill(listCa[i], "666603", "报废退料", HOrgID, ref DBUtility.ClsPub.sExeReturnInfo); |
| | | 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) |
| | |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (flag) |
| | | { |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "报废退料成功!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | 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) |
| | | { |
| | |
| | | { |
| | | //拣料配送 下查 |
| | | 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}", "h_v_Sc_ProcessExchangeBillQuery"); |
| | | } |
| | | |
| | | //添加列名 |
| | |
| | | } |
| | | #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 |
| | | } |
| | | } |