diff --git a/MyCode.Project.Domain/Message/Response/PurchaseOrder/PurchaseOrderPageList.cs b/MyCode.Project.Domain/Message/Response/PurchaseOrder/PurchaseOrderPageList.cs index 30c0669..9a83edd 100644 --- a/MyCode.Project.Domain/Message/Response/PurchaseOrder/PurchaseOrderPageList.cs +++ b/MyCode.Project.Domain/Message/Response/PurchaseOrder/PurchaseOrderPageList.cs @@ -117,7 +117,7 @@ namespace MyCode.Project.Domain.Message.Response.PurchaseOrder /// - /// Desc:累计收料数量 + /// Desc:已发货数量 /// Default: /// Nullable:True /// @@ -128,6 +128,13 @@ namespace MyCode.Project.Domain.Message.Response.PurchaseOrder /// public decimal? NotSendQty { get; set; } + /// + /// Desc:美塞斯认可的累计收料数量 + /// Default: + /// Nullable:True + /// + public decimal? MSSReceiveQty { get; set; } + /// /// Desc:规格型号 /// Default: diff --git a/MyCode.Project.Domain/Model/PurchaseOrderItem.cs b/MyCode.Project.Domain/Model/PurchaseOrderItem.cs index 734c787..8981ff5 100644 --- a/MyCode.Project.Domain/Model/PurchaseOrderItem.cs +++ b/MyCode.Project.Domain/Model/PurchaseOrderItem.cs @@ -53,10 +53,10 @@ namespace MyCode.Project.Domain.Model /// /// Desc:采购数量 - /// Default: - /// Nullable:True + /// Default:0 + /// Nullable:False /// - public decimal? Qty {get;set;} + public decimal Qty {get;set;} /// /// Desc: @@ -150,18 +150,18 @@ namespace MyCode.Project.Domain.Model public decimal? FBillTaxAmount {get;set;} /// - /// Desc:累计收料数量 - /// Default: - /// Nullable:True + /// Desc:供应商已发货数量 + /// Default:0 + /// Nullable:False /// - public decimal? FReceiveQty {get;set;} + public decimal FReceiveQty {get;set;} /// /// Desc:剩余收料数量 - /// Default: - /// Nullable:True + /// Default:0 + /// Nullable:False /// - public decimal? FRemainReceiveQty {get;set;} + public decimal FRemainReceiveQty {get;set;} /// /// Desc:业务关闭 A=正常 B=业务关闭 @@ -205,5 +205,12 @@ namespace MyCode.Project.Domain.Model /// public string FDEMANDBILLNO {get;set;} + /// + /// Desc:美塞斯认可的累计收料数量 + /// Default:0 + /// Nullable:False + /// + public decimal MSSReceiveQty {get;set;} + } } diff --git a/MyCode.Project.Repositories/PurchaseOrderRepository.cs b/MyCode.Project.Repositories/PurchaseOrderRepository.cs index 4fdc0cb..e47f508 100644 --- a/MyCode.Project.Repositories/PurchaseOrderRepository.cs +++ b/MyCode.Project.Repositories/PurchaseOrderRepository.cs @@ -62,6 +62,7 @@ namespace MyCode.Project.Repositories ,[FBillNo] ,FPurchaseOrgId,FPurchaseOrgName , FReceiveQty as SendedQty , B.FRemainReceiveQty as NotSendQty + ,b.* FROM [PurchaseOrder] a left join PurchaseOrderItem b on a.fid=b.fid "; var list= this.SelectListPage(sql, where, search.Page, search.PageSize, " [FiD] desc,MaterialCode "); diff --git a/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs b/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs index 29faa54..da323e8 100644 --- a/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs +++ b/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs @@ -102,8 +102,8 @@ namespace MyCode.Project.Services.Implementation var temp = orderItems.FirstOrDefault(h => h.PurchaseOrderItemId == t.Id); if (temp != null) { - t.FRemainReceiveQty = t.FRemainReceiveQty + temp.Qty; - t.FReceiveQty = t.FReceiveQty - temp.Qty; + t.FRemainReceiveQty = t.FRemainReceiveQty + temp.Qty.SafeValue(); + t.FReceiveQty = t.FReceiveQty - temp.Qty.SafeValue(); } }); _purchaseOrderItemRepository.Update(purchaseItem); diff --git a/MyCode.Project.Services/Implementation/PurchaseOrder/PurchaseOrderService.cs b/MyCode.Project.Services/Implementation/PurchaseOrder/PurchaseOrderService.cs index d79b4b6..a2ec3b0 100644 --- a/MyCode.Project.Services/Implementation/PurchaseOrder/PurchaseOrderService.cs +++ b/MyCode.Project.Services/Implementation/PurchaseOrder/PurchaseOrderService.cs @@ -320,6 +320,12 @@ namespace MyCode.Project.Services.Implementation { throw new BaseException("不能跨采购组织创建发货通知单"); } + + if (loginInfo.IfForeign == 1 && string.IsNullOrWhiteSpace(act.F_VHUB_Text)) + { + throw new BaseException("国外的供应商发票号和发票日期是必填."); + } + InvoiceOrder NewInvoiceOrder = new InvoiceOrder(); NewInvoiceOrder.Id = Guid.NewGuid(); NewInvoiceOrder.FiD = null; @@ -363,7 +369,7 @@ namespace MyCode.Project.Services.Implementation var purchaseOrder = orderHeadList.FirstOrDefault(h=>h.FiD==t.Fid); if (purchaseOrder == null) throw new BaseException("找不到对应的采购订单主表信息"); - if ((temp.Qty + allqty) > (t.Qty - t.FReceiveQty)) + if ((temp.Qty ) > (t.Qty - t.FReceiveQty)) { string error = $@"{t.MaterialName}"; errorList.Add(error); @@ -406,8 +412,8 @@ namespace MyCode.Project.Services.Implementation billPush.CustomParams.F_URXD_Date = act.F_URXD_Date; if (string.IsNullOrWhiteSpace(billPush.CustomParams.F_URXD_Date)) billPush.CustomParams.F_URXD_Date = null; - t.FReceiveQty = t.FReceiveQty.SafeValue() + temp.Qty; - t.FRemainReceiveQty = t.FRemainReceiveQty.SafeValue() - temp.Qty; + t.FReceiveQty = t.FReceiveQty + temp.Qty; + t.FRemainReceiveQty = t.FRemainReceiveQty - temp.Qty; } @@ -479,7 +485,9 @@ namespace MyCode.Project.Services.Implementation userList = userList.Where(t => t.SupplierId == SupplierId).ToList(); userList.ForEach(t => { - var maxDate = _purchaseOrderRepository.Queryable().Where(h => h.SupplierId == t.SupplierId).Max(h => h.FModifyDate); + + var items = _purchaseOrderItemRepository.Queryable().Where(h => h.SupplierId == t.SupplierId && h.Qty > h.MSSReceiveQty).Select(h=>h.Fid).ToList().Distinct().ToList(); + var maxDate = _purchaseOrderRepository.Queryable().Where(h => h.SupplierId == t.SupplierId && items.Contains(h.FiD)).Min(h => h.FModifyDate); DateTime begin = DateTime.Parse("2024-01-01"); if (maxDate.HasValue) { @@ -604,7 +612,8 @@ namespace MyCode.Project.Services.Implementation purchaseOrderItem.FBillTaxAmount = item["FEntryTaxAmount"]; purchaseOrderItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"]; purchaseOrderItem.FReceiveQty = item["FBaseJoinQty"]; - purchaseOrderItem.FRemainReceiveQty = purchaseOrderItem.Qty - purchaseOrderItem.FReceiveQty.SafeValue(); + purchaseOrderItem.FRemainReceiveQty = purchaseOrderItem.Qty - purchaseOrderItem.FReceiveQty; + purchaseOrderItem.MSSReceiveQty= item["FReceiveQty"]; purchaseOrderItem.FMRPCloseStatus = item["FMRPCloseStatus"]; purchaseOrderItem.EntityId = item["FPOOrderEntry_FEntryId"]; purchaseOrderItem.MSSSupplierLot = item["FLot"]; @@ -629,11 +638,12 @@ namespace MyCode.Project.Services.Implementation oldItem.TaxRate = item["FEntryTaxRate"]; oldItem.FBillTaxAmount = item["FEntryTaxAmount"]; oldItem.FReceiveQty = item["FBaseJoinQty"]; - oldItem.FRemainReceiveQty = oldItem.Qty - oldItem.FReceiveQty.SafeValue(); + oldItem.MSSReceiveQty = item["FReceiveQty"]; + oldItem.FRemainReceiveQty = oldItem.Qty - oldItem.FReceiveQty; oldItem.SpecificationModel = item["FMaterialId.FSpecification"]; //oldItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"]; //purchaseOrderItem.FReceiveQty = item["FBaseDeliveryMaxQty"]; - oldItem.FReceiveQty = oldItem.Qty - oldItem.FRemainReceiveQty.SafeValue(); + oldItem.FReceiveQty = oldItem.Qty - oldItem.FRemainReceiveQty; oldItem.FMRPCloseStatus = item["FMRPCloseStatus"]; oldItem.EntityId = item["FPOOrderEntry_FEntryId"]; oldItem.MSSSupplierLot = item["FLot"];