| | |
| | | public string HDeptName { get; set; }//部门 |
| | | public string HJLStatus { get; set; }//拣料状态 |
| | | public string user { get; set; }//制单人 |
| | | public string Arbitrarily { get; set; }//任意参数 |
| | | } |
| | | |
| | | [Route("Sc_ComplementGoods/ComplementGoodsList")] |
| | |
| | | //反序列化传递的值 |
| | | ComplementGoods com = JsonConvert.DeserializeObject<ComplementGoods>(sWhere.ToString()); |
| | | |
| | | |
| | | 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); |
| | | $"'{com.HWHName}','{com.HDeptName}','{com.Organization}','{com.user}','{com.HJLStatus}','{com.HBeginDate}','{com.HEndDate}'", "h_p_JIT_ComplementGoodsBillList_Query"); |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | |
| | | } |
| | | } |
| | | |
| | | bool flag = false; |
| | | flag = AddSendGoodsBill(listCa, SourceInterID, SourceBillNo, user, ref DBUtility.ClsPub.sExeReturnInfo); |
| | | |
| | | objJsonResult = AddSendGoodsBill(listCa, SourceInterID, SourceBillNo, user); |
| | | |
| | | |
| | | if (flag) |
| | | if (objJsonResult.count==1) |
| | | { |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "配送成功!"; |
| | | objJsonResult.Message = "调拨单生成成功!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "配送失败!"; |
| | | objJsonResult.Message = objJsonResult.Message; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | |
| | | } |
| | | } |
| | | //新增 |
| | | public bool AddSendGoodsBill(List<SendGoodsBill> listCa, string SourceInterID, string SourceBillNo, string user, ref string sReturn) |
| | | public json AddSendGoodsBill(List<SendGoodsBill> listCa, string SourceInterID, string SourceBillNo, string user) |
| | | { |
| | | try |
| | | { |
| | | oCN.BeginTran(); |
| | | |
| | | //oCN.RunProc($"delete from JIT_SendGoodsBillMain where HMainSourceInterID={SourceInterID} and HMainSourceBillNo='{SourceBillNo}' and HBillStatus=1"); |
| | | |
| | | //oCN.RunProc($"delete from JIT_SendGoodsBillSub where HInterID in (select HInterID from JIT_SendGoodsBillMain where HMainSourceInterID={SourceInterID} and HMainSourceBillNo='{SourceBillNo}' and HBillStatus=1)"); |
| | | |
| | | 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++) |
| | | //{ |
| | | // 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 (i == 0) |
| | | { |
| | | InterID = DBUtility.ClsPub.CreateBillID_Prod("460201", ref DBUtility.ClsPub.sExeReturnInfo); |
| | |
| | | ",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].HStockOutOrgID},{listCa[i].HStockInOrgID},{listCa[i].HSCWHID})"); |
| | | |
| | | //同步金蝶直接调拨单 |
| | | if (AddSendGoodsBillSynChronizAtion(HBillNo, ref DBUtility.ClsPub.sExeReturnInfo)) |
| | | { |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //修改配送单的配送数量 |
| | | oCN.RunProc($"update b set b.HQty=b.HQty+{listCa[i].本次拣料数量} from JIT_SendGoodsBillMain a with(nolock) inner join JIT_SendGoodsBillSub b with(nolock) on a.HInterID = b.HInterID " + |
| | | $"where HMainSourceInterID ={SourceInterID} and b.HMaterID ={listCa[i].HMaterID} and a.HBillStatus =1 "); |
| | | } |
| | | |
| | | |
| | | DataSet dsTable = new DataSet(); |
| | | //查询JIT_ComplementGoodsBillSub_LK |
| | | dsTable = oCN.RunProcReturn($"select * from JIT_ComplementGoodsBillSub_LK where HMaterID={listCa[i].HMaterID} and HInterID={SourceInterID} order by HSourceInterID ", "JIT_ComplementGoodsBillSub_LK"); |
| | | dsTable = oCN.RunProcReturn($"select * from JIT_ComplementGoodsBillSub_LK where HMaterID={listCa[i].HMaterID} and HInterID={SourceInterID} and HCallQTY<>HSendQTY order by HSourceInterID ", "JIT_ComplementGoodsBillSub_LK"); |
| | | |
| | | var HqtyCount = double.Parse(listCa[i].本次拣料数量.ToString()); |
| | | for (int j = 0; j < dsTable.Tables[0].Rows.Count; j++) |
| | | { |
| | | if (double.Parse(dsTable.Tables[0].Rows[j]["HCallQTY"].ToString()) != double.Parse(dsTable.Tables[0].Rows[j]["HSendQTY"].ToString())) |
| | | { |
| | | if (double.Parse(dsTable.Tables[0].Rows[j]["HSendQTY"].ToString()) + listCa[i].本次拣料数量 > double.Parse(dsTable.Tables[0].Rows[j]["HCallQTY"].ToString())) |
| | | { |
| | | var HCallQTY = double.Parse(dsTable.Tables[0].Rows[j]["HCallQTY"].ToString()) - double.Parse(dsTable.Tables[0].Rows[j]["HSendQTY"].ToString()); |
| | | //修改调拨数量 超出部分给予下一列数据 |
| | | oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{HCallQTY} where HMaterID={listCa[i].HMaterID} " + |
| | | $" and HSourceInterID={double.Parse(dsTable.Tables[0].Rows[j]["HSourceInterID"].ToString())} and HInterID={SourceInterID} "); |
| | | var HCallQTY = double.Parse(dsTable.Tables[0].Rows[j]["HCallQTY"].ToString()) - double.Parse(dsTable.Tables[0].Rows[j]["HSendQTY"].ToString()); |
| | | |
| | | oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{(listCa[i].本次拣料数量 - HCallQTY)} where HMaterID={listCa[i].HMaterID} " + |
| | | $" and HSourceInterID={dsTable.Tables[0].Rows[j + 1]["HSourceInterID"].ToString()} and HInterID={SourceInterID} "); |
| | | break; |
| | | } |
| | | else |
| | | { |
| | | //修改调拨数量 |
| | | oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{listCa[i].本次拣料数量} where HMaterID={listCa[i].HMaterID} " + |
| | | $" and HSourceInterID={dsTable.Tables[0].Rows[j]["HSourceInterID"].ToString()} and HInterID={SourceInterID} "); |
| | | break; |
| | | } |
| | | //修改调拨数量 |
| | | oCN.RunProc($"update JIT_ComplementGoodsBillSub_LK set HSendQTY=HSendQTY+{(HCallQTY < HqtyCount ? HCallQTY : HqtyCount)} where HMaterID={listCa[i].HMaterID} " + |
| | | $" and HSourceInterID={double.Parse(dsTable.Tables[0].Rows[j]["HSourceInterID"].ToString())} and HInterID={SourceInterID} "); |
| | | |
| | | HqtyCount -= HCallQTY; |
| | | if (HqtyCount <= 0) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | sReturn = "新增单据成功!"; |
| | | //同步金蝶直接调拨单 |
| | | objJsonResult = AddSendGoodsBillSynChronizAtion(HBillNo); |
| | | |
| | | oCN.Commit(); |
| | | return true; |
| | | |
| | | if (objJsonResult.count == 1) |
| | | { |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = null; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = objJsonResult.Message; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | oCN.RollBack(); |
| | | sReturn = e.Message; |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = objJsonResult.Message; |
| | | return objJsonResult; |
| | | throw (e); |
| | | } |
| | | } |
| | | |
| | | //同步金蝶直接调拨单 |
| | | public bool AddSendGoodsBillSynChronizAtion(string HBillNo, ref string sReturn) |
| | | public json AddSendGoodsBillSynChronizAtion(string HBillNo) |
| | | { |
| | | ds = oCN.RunProcReturn("exec JIT_SendGoodsBillSynChronizAtion '" + HBillNo + "'", "JIT_SendGoodsBillSynChronizAtion"); |
| | | |
| | | foreach (DataRow dr in ds.Tables[0].Rows) |
| | | if (ds.Tables[0].Rows.Count != 0) |
| | | { |
| | | 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() |
| | | foreach (DataRow dr in ds.Tables[0].Rows) |
| | | { |
| | | ["Creator"] = "", |
| | | ["NeedUpDateFields"] = new JArray(), |
| | | ["NeedReturnFields"] = new JArray(), |
| | | ["IsDeleteEntry"] = "false", |
| | | ["SubSystemId"] = "", |
| | | ["IsVerifyBaseDataField"] = "false", |
| | | ["Model"] = model |
| | | }; |
| | | 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"] = ds.Tables[1].Rows[0]["FStockOrgId"].ToString() }); |
| | | model.Add("FOwnerTypeIdHead", dr["FOwnerTypeIdHead"].ToString()); |
| | | model.Add("FTransferBizType", ds.Tables[1].Rows[0]["FTransferBizType"].ToString()); |
| | | model.Add("FOwnerTypeOutIdHead", dr["FOwnerTypeOutIdHead"].ToString()); |
| | | model.Add("FTransferDirect", dr["FTransferDirect"].ToString()); |
| | | model.Add("FStockOutOrgId", new JObject() { ["Fnumber"] = ds.Tables[1].Rows[0]["FStockOutOrgId"].ToString() }); |
| | | |
| | | JArray Fentity = new JArray(); |
| | | foreach (DataRow item in ds.Tables[1].Rows) |
| | | { |
| | | JObject FentityModel = new JObject(); |
| | | FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = item["FMaterialId"].ToString() }); |
| | | FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = item["FUnitID"].ToString() }); |
| | | FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = item["FBaseUnitId"].ToString() }); |
| | | FentityModel.Add("FOwnerTypeId", item["FOwnerTypeId"].ToString()); |
| | | FentityModel.Add("FOwnerId", new JObject() { ["Fnumber"] = item["FOwnerId"].ToString() }); |
| | | FentityModel.Add("FOwnerTypeOutId", item["FOwnerTypeOutId"].ToString()); |
| | | FentityModel.Add("FOwnerOutId", new JObject() { ["Fnumber"] = item["FOwnerOutId"].ToString() }); |
| | | FentityModel.Add("FKeeperTypeId", item["FKeeperTypeId"].ToString()); |
| | | FentityModel.Add("FKeeperId", new JObject() { ["Fnumber"] = item["FKeeperId"].ToString() }); |
| | | FentityModel.Add("FKeeperTypeOutId", item["FKeeperTypeOutId"].ToString()); |
| | | FentityModel.Add("FKeeperOutId", new JObject() { ["Fnumber"] = item["FKeeperOutId"].ToString() }); |
| | | FentityModel.Add("FDestStockId", new JObject() { ["Fnumber"] = item["FDestStockId"].ToString() }); |
| | | FentityModel.Add("FSrcStockId", new JObject() { ["Fnumber"] = item["FSrcStockId"].ToString() }); |
| | | FentityModel.Add("FQty", item["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 |
| | | }; |
| | | var loginRet = InvokeHelper.Login(); |
| | | var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>(); |
| | | if (isSuccess < 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = loginRet; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | var result = InvokeHelper.Save("STK_TransferDirect", jsonRoot.ToString()); |
| | | if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") |
| | | { |
| | | oCN.RollBack(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = result; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | var json = new |
| | | { |
| | | Numbers = HBillNo, |
| | | }; |
| | | //提交 |
| | | var _result = InvokeHelper.Submit("STK_TransferDirect", JsonConvert.SerializeObject(json)); |
| | | var _saveObj = JObject.Parse(_result); |
| | | if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") |
| | | { |
| | | LogService.Write("收料通知单提交失败jsonRoot:" + jsonRoot.ToString()); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "金蝶收料通知单提交失败" + _result; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | |
| | | } |
| | | //审核 |
| | | _result = InvokeHelper.Audit("STK_TransferDirect", JsonConvert.SerializeObject(json)); |
| | | _saveObj = JObject.Parse(_result); |
| | | if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE") |
| | | { |
| | | LogService.Write("收料通知单审核失败jsonRoot:" + jsonRoot.ToString()); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "金蝶收料通知单审核失败jsonRoot" + _result; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "操作成功!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | return true; |
| | | else |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "调拨单已经存在,无法生成!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = null; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | #endregion |
| | | |