| | |
| | | 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 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 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; |
| | |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].库存数量 == 0 && listCa[i].叫料数量 > 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "库存数量为0,无法叫料!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].叫料数量 > listCa[i].库存数量) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "库存数量小于叫料数量,无法叫料!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].叫料数量 > 0 && listCa[i].调入仓库id == 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "请选择调入仓库!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (listCa[i].叫料数量 > 0 && listCa[i].调出仓库id == 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "请选择调出仓库!"; |
| | | 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; |
| | | |
| | | var txtHBillNo = DBUtility.ClsPub.CreateBillCode_Prod(CallGoodsBill.ModName, ref DBUtility.ClsPub.sExeReturnInfo, true);//获得一个新的单据号 |
| | |
| | | oSub.HSourceBillNo = listCa[i].HSourceBillNo; |
| | | oSub.HQty =double.Parse(listCa[i].叫料数量.ToString()); |
| | | |
| | | //if (oSub.HQty <= 0) |
| | | //{ |
| | | // objJsonResult.code = "0"; |
| | | // objJsonResult.count = 0; |
| | | // objJsonResult.Message = $"第{i+1}行,叫料数量不能为0或者小于0"; |
| | | // objJsonResult.data = null; |
| | | // return objJsonResult; |
| | | //} |
| | | |
| | | //if (oSub.HQty > listCa[i].调出仓库可用库存数量) |
| | | //{ |
| | | // objJsonResult.code = "0"; |
| | | // objJsonResult.count = 0; |
| | | // objJsonResult.Message = $"第{i+1}行,叫料数量大于该物料调出仓库可用库存数量"; |
| | | // objJsonResult.data = null; |
| | | // return objJsonResult; |
| | | //} |
| | | |
| | | oSub.HMaterID = listCa[i].HMaterialID; |
| | | oSub.HMaterNumber = listCa[i].HMaterialNumberCol; |
| | | oSub.HModel = listCa[i].HMaterialModelCol; |
| | | oSub.HWHID = listCa[i].HWHID; |
| | | 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; |
| | |
| | | " (HInterID,HEntryID,HRemark" + |
| | | ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" + |
| | | ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo,HICMOInterID,HICMOEntryID,HICMOBillNo" + |
| | | ",HDeptID,HMaterID,HQty,HProcID,HWHID,HSPID,HBillNo_bak,HOutOrgID" + |
| | | ",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.HSPID.ToString() +",'',"+oSub.HOutOrgID+") ", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | "," + 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); |
| | | |
| | | //主表 |
| | | |
| | |
| | | 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); |
| | | j = 1; |
| | | } |
| | |
| | | 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 = listCa.HSTOCKID == 0 ? 0 : listCa.HSTOCKID; |
| | | 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); |
| | |
| | | " 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, 0, {HOrgID}, 0,'{HBackType}')"); |
| | | $" 0, 0, {listCa.HOutOrgID}, {HOrgID}, 0,'{HBackType}')"); |
| | | |
| | | sReturn = "新增单据成功!"; |
| | | oCN.Commit(); |
| | |
| | | ds = oCN.RunProcReturn($"exec h_p_JIT_ComplementGoodsBillList_Query '{com.MaterialNumber}','{com.MaterialName}','{com.MaterialModel}','{com.HGD}'," + |
| | | $"'{com.HWHName}','{com.HDeptName}','{com.Organization}','{com.user}','{com.HJLStatus}','{com.HBeginDate}','{com.HEndDate}'", "h_p_JIT_ComplementGoodsBillList_Query"); |
| | | |
| | | //bool a = AddSendGoodsBillSynChronizAtion("PLD00000112", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "Sucess!"; |
| | |
| | | public int? HMaterID = 0; |
| | | public int? HWHID = 0; |
| | | public int? HSPID = 0; |
| | | public int? HStockOutOrgID = 0; |
| | | public int? HStockInOrgID = 0; |
| | | public int? HSCWHID = 0; |
| | | } |
| | | |
| | | [Route("Sc_ComplementGoods/JIT_SendGoodsBill")] |
| | |
| | | |
| | | ds = oCN.RunProcReturn($"select a.HMainSourceEntryID,b.HMaterID from JIT_SendGoodsBillMain a with(nolock) inner join JIT_SendGoodsBillSub b with(nolock) on a.HInterID = b.HInterID where a.HMainSourceInterID={SourceInterID} and a.HBillStatus=1", "JIT_SendGoodsBillMain"); |
| | | |
| | | long InterID = 0; |
| | | string HBillNo = ""; |
| | | for (int i = 0; i < listCa.Count; i++) |
| | | { |
| | | int a = -1; |
| | | for (int j = 0; j < ds.Tables[0].Rows.Count; j++) |
| | | //int a = -1; |
| | | //for (int j = 0; j < ds.Tables[0].Rows.Count; j++) |
| | | //{ |
| | | // if (ds.Tables[0].Rows[j]["HMaterID"].ToString() == listCa[i].HMaterID.ToString() && ds.Tables[0].Rows[j]["HMainSourceEntryID"].ToString() == listCa[i].HEntryID.ToString()) |
| | | // { |
| | | // a = j; |
| | | // break; |
| | | // } |
| | | //} |
| | | |
| | | // 则代表配送单没有数据 需要添加数据 |
| | | if (ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | if (ds.Tables[0].Rows[j]["HMaterID"].ToString() == listCa[i].HMaterID.ToString()&& ds.Tables[0].Rows[j]["HMainSourceEntryID"].ToString() == listCa[i].HEntryID.ToString()) |
| | | if (i == 0) |
| | | { |
| | | a = j; |
| | | break; |
| | | InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | |
| | | //添加主表数据 |
| | | oCN.RunProc("insert into JIT_SendGoodsBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate" + |
| | | ",HBillNo,HBillStatus,HMaker,HMakeDate,HISCheck, HMainSourceInterID, HMainSourceEntryID" + |
| | | ", HMainSourceBillNo, HMainSourceBillType)" + |
| | | $"values({DateTime.Now.Year},{DateTime.Now.Month},'460201','460201',{InterID}, GETDATE(), '{HBillNo}'," + |
| | | $" 1,'{user}', GETDATE(), 0, {SourceInterID}, {listCa[i].HEntryID}, '{SourceBillNo}', '4602')"); |
| | | } |
| | | } |
| | | |
| | | //a=0 则代表配送单没有数据 需要添加数据 |
| | | if (a == -1 ) |
| | | { |
| | | long InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo); |
| | | string HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | |
| | | //添加主表数据 |
| | | oCN.RunProc("insert into JIT_SendGoodsBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate" + |
| | | ",HBillNo,HBillStatus,HMaker,HMakeDate,HISCheck, HMainSourceInterID, HMainSourceEntryID" + |
| | | ", HMainSourceBillNo, HMainSourceBillType)" + |
| | | $"values({DateTime.Now.Year},{DateTime.Now.Month},'460201','460201',{InterID}, GETDATE(), '{HBillNo}'," + |
| | | $" 1,'{user}', GETDATE(), 0, {SourceInterID}, {listCa[i].HEntryID}, '{SourceBillNo}', '4602')"); |
| | | |
| | | //添加子表数据 |
| | | oCN.RunProc("insert into JIT_SendGoodsBillSub(HInterID,HBillNo_bak,HEntryID" + |
| | | ",HMaterID,HQty,HWHID,HSPID,HISCheck,HCheckSubMan,HCheckSubDate)" + |
| | | ",HMaterID,HQty,HWHID,HSPID,HISCheck,HCheckSubMan,HCheckSubDate,HStockOutOrgID,HStockInOrgID,HSCWHID)" + |
| | | $"values({InterID},'{HBillNo}',{i + 1}, {listCa[i].HMaterID},{listCa[i].本次拣料数量}," + |
| | | $" {listCa[i].HWHID},{listCa[i].HSPID},0,'{user}', GETDATE())"); |
| | | $" {listCa[i].HWHID},{listCa[i].HSPID},0,'{user}', GETDATE(),{listCa[i].HStockOutOrgID},{listCa[i].HStockInOrgID},{listCa[i].HSCWHID})"); |
| | | |
| | | //同步金蝶直接调拨单 |
| | | if (AddSendGoodsBillSynChronizAtion(HBillNo, ref DBUtility.ClsPub.sExeReturnInfo)) |
| | | { |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | throw (e); |
| | | } |
| | | } |
| | | |
| | | //同步金蝶直接调拨单 |
| | | public bool AddSendGoodsBillSynChronizAtion(string HBillNo, ref string sReturn) |
| | | { |
| | | ds = oCN.RunProcReturn("exec JIT_SendGoodsBillSynChronizAtion '" + HBillNo + "'", "JIT_SendGoodsBillSynChronizAtion"); |
| | | |
| | | foreach (DataRow dr in ds.Tables[0].Rows) |
| | | { |
| | | JObject model = new JObject(); |
| | | model.Add("FBillTypeID", new JObject() { ["Fnumber"] = dr["FBillTypeID"].ToString() }); //单据类型 |
| | | model.Add("FDate", dr["FDate"].ToString()); |
| | | model.Add("FBILLNO", dr["FBILLNO"].ToString()); |
| | | model.Add("FStockOrgId", new JObject() { ["Fnumber"] = dr["FStockOrgId"].ToString() }); |
| | | model.Add("FOwnerTypeIdHead", dr["FOwnerTypeIdHead"].ToString()); |
| | | model.Add("FTransferBizType", dr["FTransferBizType"].ToString()); |
| | | model.Add("FOwnerTypeOutIdHead", dr["FOwnerTypeOutIdHead"].ToString()); |
| | | model.Add("FTransferDirect", dr["FTransferDirect"].ToString()); |
| | | model.Add("FStockOutOrgId", new JObject() { ["Fnumber"] = dr["FStockOutOrgId"].ToString() }); |
| | | |
| | | JArray Fentity = new JArray(); |
| | | JObject FentityModel = new JObject(); |
| | | FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr["FMaterialId"].ToString() }); |
| | | FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = dr["FUnitID"].ToString() }); |
| | | FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = dr["FBaseUnitId"].ToString() }); |
| | | FentityModel.Add("FOwnerTypeId", dr["FOwnerTypeId"].ToString()); |
| | | FentityModel.Add("FOwnerId", new JObject() { ["Fnumber"] = dr["FOwnerId"].ToString() }); |
| | | FentityModel.Add("FOwnerTypeOutId", dr["FOwnerTypeOutId"].ToString()); |
| | | FentityModel.Add("FOwnerOutId", new JObject() { ["Fnumber"] = dr["FOwnerOutId"].ToString() }); |
| | | FentityModel.Add("FKeeperTypeId", dr["FKeeperTypeId"].ToString()); |
| | | FentityModel.Add("FKeeperId", new JObject() { ["Fnumber"] = dr["FKeeperId"].ToString() }); |
| | | FentityModel.Add("FKeeperTypeOutId", dr["FKeeperTypeOutId"].ToString()); |
| | | FentityModel.Add("FKeeperOutId", new JObject() { ["Fnumber"] = dr["FKeeperOutId"].ToString() }); |
| | | FentityModel.Add("FQty", dr["FQty"].ToString()); |
| | | |
| | | Fentity.Add(FentityModel); |
| | | model.Add("FBillEntry", Fentity); |
| | | |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["Creator"] = "", |
| | | ["NeedUpDateFields"] = new JArray(), |
| | | ["NeedReturnFields"] = new JArray(), |
| | | ["IsDeleteEntry"] = "false", |
| | | ["SubSystemId"] = "", |
| | | ["IsVerifyBaseDataField"] = "false", |
| | | ["Model"] = model |
| | | }; |
| | | |
| | | } |
| | | return true; |
| | | } |
| | | #endregion |
| | | |
| | | #region 上查 |
| | |
| | | ") "); |
| | | double sumqty = omodel.HQty + omodel.HBadQty + omodel.HWasterQty; //汇报数量+不良+报废 |
| | | //回写生产状态临时表Sc_ICMOBillStatus_Tmp拆分汇报数量 HSplitRelationQty |
| | | oCn.RunProc("update Sc_ICMOBillStatus_Tmp set HSplitRelationQty=HSplitRelationQty+" + sumqty + " where HICMOBillNo='" + omodel.HICMOBillNo + "' and HSourceID='" + omodel.HSourceID + "' and HICMOInterID='" + omodel.HICMOInterID + "' and HICMOEntryID='" + omodel.HICMOEntryID + "'"); |
| | | oCn.RunProc("update Sc_ICMOBillStatus_Tmp set HSplitRelationQty=HSplitRelationQty+" + sumqty + " where HICMOBillNo='" + omodel.HICMOBillNo + "' and HSourceID='" + omodel.HSourceID + "' and HICMOInterID='" + omodel.HICMOInterID + "' and HICMOEntryID='" + omodel.HICMOEntryID + "' and HInterID="+ omodel.HSourceInterID.ToString()); |
| | | |
| | | //再次验证 保存是否 合理 |
| | | DataSet ds = oCn.RunProcReturn("exec h_p_JIT_ICMOBillWorkQtyStatus_SaveCtrl @HInterId=" + omodel.HInterID + "", "h_p_JIT_ICMOBillWorkQtyStatus_SaveCtrl"); |
| | |
| | | //更新生产状态临时状态表数量 |
| | | //oCn.RunProc("exec h_p_Sc_UpDateRelation_ICMOToICMOReport_Qty " + HICMOInterID.ToString() + "," + HICMOEntryID.ToString() + ""); |
| | | //根据源单主内码 设置 生产状态表 完工状态(设置本单对应得源单 为完工状态) 更新生产状态临时状态表数量 |
| | | oCn.RunProc("exec h_p_JIT_ICMOBillWorkQtyStatus_AddRelation " + HSourceID.ToString() + "," + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo.ToString() + "',"+ HICMOInterID.ToString() + ","+ HICMOEntryID.ToString()+ ""); |
| | | oCn.RunProc("exec h_p_JIT_ICMOBillWorkQtyStatus_AddRelation " + HSourceID.ToString() + "," + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo.ToString() + "'," + HICMOInterID.ToString() + "," + HICMOEntryID.ToString() + ""); |
| | | sReturn = "审核单据成功!"; |
| | | oCn.Commit(); |
| | | //生成调拨单 |