From c9c27ac3dce0883be539792b1081369fd6617229 Mon Sep 17 00:00:00 2001
From: yuyubo <1870149533@qq.com>
Date: Thu, 15 May 2025 12:36:05 +0800
Subject: [PATCH] 222
---
.../PurchaseOrder/PurchaseOrderPageList.cs | 9 ++++++-
.../Model/PurchaseOrderItem.cs | 27 ++++++++++++-------
.../PurchaseOrderRepository.cs | 1 +
.../InvoiceOrder/InvoiceOrderService.cs | 4 +--
.../PurchaseOrder/PurchaseOrderService.cs | 24 ++++++++++++-----
5 files changed, 45 insertions(+), 20 deletions(-)
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"];