| | |
| | | return "-1:关单失败!"; |
| | | } |
| | | #region 采购计划,若是采购订单根据采购计划单自动生成入库单信息 |
| | | if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode)) |
| | | { |
| | | // 获取采购总单信息 |
| | | var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0"); |
| | | //入库单明细 |
| | | var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>() |
| | | .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList(); |
| | | foreach (var item in noticeDetailList) |
| | | { |
| | | //采购单明细 |
| | | var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>() |
| | | .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0"); |
| | | planDetail.CompleteQty += item.CompleteQty; |
| | | if (planDetail.CompleteQty >= planDetail.Qty) |
| | | { |
| | | planDetail.Status = "2"; |
| | | planDetail.CompleteTime = comTime; |
| | | } |
| | | else |
| | | { |
| | | planDetail.Status = "1"; |
| | | } |
| | | Db.Updateable(planDetail).ExecuteCommand(); |
| | | } |
| | | // 维护采购总单信息 |
| | | var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2"); |
| | | if (planDetailNum == 0) |
| | | { |
| | | planOrd.Status = "2"; |
| | | planOrd.CompleteTime = comTime; |
| | | Db.Updateable(planOrd).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | if (planOrd.Status == "0") |
| | | { |
| | | planOrd.Status = "1"; |
| | | Db.Updateable(planOrd).ExecuteCommand(); |
| | | } |
| | | } |
| | | //采购单明细 |
| | | var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>() |
| | | .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList(); |
| | | foreach (var item in planDetailList) |
| | | { |
| | | //判断有无正在执行的 |
| | | var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0"); |
| | | if (noticeDetail != null) |
| | | { |
| | | continue; |
| | | } |
| | | // 获取物料详细信息 |
| | | var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0"); |
| | | if (skuModel == null) |
| | | { |
| | | continue; |
| | | } |
| | | // 验证包装信息是否存在 |
| | | var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0"); |
| | | if (packagModel == null) |
| | | { |
| | | continue; |
| | | } |
| | | // 入库总表信息 |
| | | string asnNo = new Common().GetMaxNo("ASN"); |
| | | var asnModel1 = new BllArrivalNotice() |
| | | { |
| | | ASNNo = asnNo, |
| | | Status = "0",//执行状态,0:等待执行 |
| | | Type = "1",//单据类型,1:采购入库 |
| | | Origin = "采购单", |
| | | CustomerNo = item.CustomerNo, |
| | | CustomerName = item.CustomerName, |
| | | OrderCode = planOrd.OrderCode, |
| | | CreateUser = 0 |
| | | }; |
| | | // 插入入库总表信息 |
| | | Db.Insertable(asnModel1).ExecuteCommand(); |
| | | //入库单明细 |
| | | var arrDetailModel = new BllArrivalNoticeDetail() |
| | | { |
| | | ASNNo = asnNo, |
| | | SkuNo = skuModel.SkuNo, |
| | | SkuName = skuModel.SkuName, |
| | | Standard = skuModel.Standard, |
| | | LotNo = "", |
| | | LotText = "", |
| | | Qty = 0, |
| | | FactQty = 0, |
| | | CompleteQty = 0, |
| | | PackagNo = packagModel.PackagNo, |
| | | SupplierLot = "", |
| | | Status = "0", |
| | | IsSampling = "0", |
| | | InspectStatus = "0", |
| | | OrderDetailCode = item.OrderDetailCode, |
| | | CreateUser = 0 |
| | | }; |
| | | // 插入入库总表信息 |
| | | Db.Insertable(arrDetailModel).ExecuteCommand(); |
| | | } |
| | | } |
| | | //if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode)) |
| | | //{ |
| | | // // 获取采购总单信息 |
| | | // var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0"); |
| | | // //入库单明细 |
| | | // var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>() |
| | | // .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList(); |
| | | // foreach (var item in noticeDetailList) |
| | | // { |
| | | // //采购单明细 |
| | | // var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>() |
| | | // .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0"); |
| | | // planDetail.CompleteQty += item.CompleteQty; |
| | | // if (planDetail.CompleteQty >= planDetail.Qty) |
| | | // { |
| | | // planDetail.Status = "2"; |
| | | // planDetail.CompleteTime = comTime; |
| | | // } |
| | | // else |
| | | // { |
| | | // planDetail.Status = "1"; |
| | | // } |
| | | // Db.Updateable(planDetail).ExecuteCommand(); |
| | | // } |
| | | // // 维护采购总单信息 |
| | | // var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2"); |
| | | // if (planDetailNum == 0) |
| | | // { |
| | | // planOrd.Status = "2"; |
| | | // planOrd.CompleteTime = comTime; |
| | | // Db.Updateable(planOrd).ExecuteCommand(); |
| | | // } |
| | | // else |
| | | // { |
| | | // if (planOrd.Status == "0") |
| | | // { |
| | | // planOrd.Status = "1"; |
| | | // Db.Updateable(planOrd).ExecuteCommand(); |
| | | // } |
| | | // } |
| | | // //采购单明细 |
| | | // var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>() |
| | | // .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList(); |
| | | // foreach (var item in planDetailList) |
| | | // { |
| | | // //判断有无正在执行的 |
| | | // var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0"); |
| | | // if (noticeDetail != null) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // // 获取物料详细信息 |
| | | // var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0"); |
| | | // if (skuModel == null) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // // 验证包装信息是否存在 |
| | | // var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0"); |
| | | // if (packagModel == null) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // // 入库总表信息 |
| | | // string asnNo = new Common().GetMaxNo("ASN"); |
| | | // var asnModel1 = new BllArrivalNotice() |
| | | // { |
| | | // ASNNo = asnNo, |
| | | // Status = "0",//执行状态,0:等待执行 |
| | | // Type = "1",//单据类型,1:采购入库 |
| | | // Origin = "采购单", |
| | | // CustomerNo = item.CustomerNo, |
| | | // CustomerName = item.CustomerName, |
| | | // OrderCode = planOrd.OrderCode, |
| | | // CreateUser = 0 |
| | | // }; |
| | | // // 插入入库总表信息 |
| | | // Db.Insertable(asnModel1).ExecuteCommand(); |
| | | // //入库单明细 |
| | | // var arrDetailModel = new BllArrivalNoticeDetail() |
| | | // { |
| | | // ASNNo = asnNo, |
| | | // SkuNo = skuModel.SkuNo, |
| | | // SkuName = skuModel.SkuName, |
| | | // Standard = skuModel.Standard, |
| | | // LotNo = "", |
| | | // LotText = "", |
| | | // Qty = 0, |
| | | // FactQty = 0, |
| | | // CompleteQty = 0, |
| | | // PackagNo = packagModel.PackagNo, |
| | | // SupplierLot = "", |
| | | // Status = "0", |
| | | // IsSampling = "0", |
| | | // InspectStatus = "0", |
| | | // OrderDetailCode = item.OrderDetailCode, |
| | | // CreateUser = 0 |
| | | // }; |
| | | // // 插入入库总表信息 |
| | | // Db.Insertable(arrDetailModel).ExecuteCommand(); |
| | | // } |
| | | //} |
| | | #endregion |
| | | |
| | | Db.Ado.CommitTran(); |
| | |
| | | //系统对接后放开 |
| | | var jsonData = JsonConvert.SerializeObject(soInfo); |
| | | |
| | | var response = HttpHelper.DoPost(url, jsonData, "入库单完成上传", "ERP"); |
| | | var response = HttpHelper.DoPost(url, jsonData, "入库单完成上传", "SAP"); |
| | | |
| | | var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据 |
| | | if (obj.Success != 0) |