This commit is contained in:
余宇波 2025-05-15 12:36:05 +08:00
parent 0684d8e4f5
commit c9c27ac3dc
5 changed files with 45 additions and 20 deletions

View File

@ -117,7 +117,7 @@ namespace MyCode.Project.Domain.Message.Response.PurchaseOrder
/// <summary> /// <summary>
/// Desc:累计收料数量 /// Desc:已发货数量
/// Default: /// Default:
/// Nullable:True /// Nullable:True
/// </summary> /// </summary>
@ -128,6 +128,13 @@ namespace MyCode.Project.Domain.Message.Response.PurchaseOrder
/// </summary> /// </summary>
public decimal? NotSendQty { get; set; } public decimal? NotSendQty { get; set; }
/// <summary>
/// Desc:美塞斯认可的累计收料数量
/// Default:
/// Nullable:True
/// </summary>
public decimal? MSSReceiveQty { get; set; }
/// <summary> /// <summary>
/// Desc:规格型号 /// Desc:规格型号
/// Default: /// Default:

View File

@ -53,10 +53,10 @@ namespace MyCode.Project.Domain.Model
/// <summary> /// <summary>
/// Desc:采购数量 /// Desc:采购数量
/// Default: /// Default:0
/// Nullable:True /// Nullable:False
/// </summary> /// </summary>
public decimal? Qty {get;set;} public decimal Qty {get;set;}
/// <summary> /// <summary>
/// Desc: /// Desc:
@ -150,18 +150,18 @@ namespace MyCode.Project.Domain.Model
public decimal? FBillTaxAmount {get;set;} public decimal? FBillTaxAmount {get;set;}
/// <summary> /// <summary>
/// Desc:累计收料数量 /// Desc:供应商已发货数量
/// Default: /// Default:0
/// Nullable:True /// Nullable:False
/// </summary> /// </summary>
public decimal? FReceiveQty {get;set;} public decimal FReceiveQty {get;set;}
/// <summary> /// <summary>
/// Desc:剩余收料数量 /// Desc:剩余收料数量
/// Default: /// Default:0
/// Nullable:True /// Nullable:False
/// </summary> /// </summary>
public decimal? FRemainReceiveQty {get;set;} public decimal FRemainReceiveQty {get;set;}
/// <summary> /// <summary>
/// Desc:业务关闭 A=正常 B=业务关闭 /// Desc:业务关闭 A=正常 B=业务关闭
@ -205,5 +205,12 @@ namespace MyCode.Project.Domain.Model
/// </summary> /// </summary>
public string FDEMANDBILLNO {get;set;} public string FDEMANDBILLNO {get;set;}
/// <summary>
/// Desc:美塞斯认可的累计收料数量
/// Default:0
/// Nullable:False
/// </summary>
public decimal MSSReceiveQty {get;set;}
} }
} }

View File

@ -62,6 +62,7 @@ namespace MyCode.Project.Repositories
,[FBillNo] ,FPurchaseOrgId,FPurchaseOrgName ,[FBillNo] ,FPurchaseOrgId,FPurchaseOrgName
, FReceiveQty as SendedQty , FReceiveQty as SendedQty
, B.FRemainReceiveQty as NotSendQty , B.FRemainReceiveQty as NotSendQty
,b.* FROM [PurchaseOrder] a left join PurchaseOrderItem b on a.fid=b.fid ,b.* FROM [PurchaseOrder] a left join PurchaseOrderItem b on a.fid=b.fid
"; ";
var list= this.SelectListPage<PurchaseOrderPageList>(sql, where, search.Page, search.PageSize, " [FiD] desc,MaterialCode "); var list= this.SelectListPage<PurchaseOrderPageList>(sql, where, search.Page, search.PageSize, " [FiD] desc,MaterialCode ");

View File

@ -102,8 +102,8 @@ namespace MyCode.Project.Services.Implementation
var temp = orderItems.FirstOrDefault(h => h.PurchaseOrderItemId == t.Id); var temp = orderItems.FirstOrDefault(h => h.PurchaseOrderItemId == t.Id);
if (temp != null) if (temp != null)
{ {
t.FRemainReceiveQty = t.FRemainReceiveQty + temp.Qty; t.FRemainReceiveQty = t.FRemainReceiveQty + temp.Qty.SafeValue();
t.FReceiveQty = t.FReceiveQty - temp.Qty; t.FReceiveQty = t.FReceiveQty - temp.Qty.SafeValue();
} }
}); });
_purchaseOrderItemRepository.Update(purchaseItem); _purchaseOrderItemRepository.Update(purchaseItem);

View File

@ -320,6 +320,12 @@ namespace MyCode.Project.Services.Implementation
{ {
throw new BaseException("不能跨采购组织创建发货通知单"); throw new BaseException("不能跨采购组织创建发货通知单");
} }
if (loginInfo.IfForeign == 1 && string.IsNullOrWhiteSpace(act.F_VHUB_Text))
{
throw new BaseException("国外的供应商发票号和发票日期是必填.");
}
InvoiceOrder NewInvoiceOrder = new InvoiceOrder(); InvoiceOrder NewInvoiceOrder = new InvoiceOrder();
NewInvoiceOrder.Id = Guid.NewGuid(); NewInvoiceOrder.Id = Guid.NewGuid();
NewInvoiceOrder.FiD = null; NewInvoiceOrder.FiD = null;
@ -363,7 +369,7 @@ namespace MyCode.Project.Services.Implementation
var purchaseOrder = orderHeadList.FirstOrDefault(h=>h.FiD==t.Fid); var purchaseOrder = orderHeadList.FirstOrDefault(h=>h.FiD==t.Fid);
if (purchaseOrder == null) if (purchaseOrder == null)
throw new BaseException("找不到对应的采购订单主表信息"); throw new BaseException("找不到对应的采购订单主表信息");
if ((temp.Qty + allqty) > (t.Qty - t.FReceiveQty)) if ((temp.Qty ) > (t.Qty - t.FReceiveQty))
{ {
string error = $@"{t.MaterialName}"; string error = $@"{t.MaterialName}";
errorList.Add(error); errorList.Add(error);
@ -406,8 +412,8 @@ namespace MyCode.Project.Services.Implementation
billPush.CustomParams.F_URXD_Date = act.F_URXD_Date; billPush.CustomParams.F_URXD_Date = act.F_URXD_Date;
if (string.IsNullOrWhiteSpace(billPush.CustomParams.F_URXD_Date)) if (string.IsNullOrWhiteSpace(billPush.CustomParams.F_URXD_Date))
billPush.CustomParams.F_URXD_Date = null; billPush.CustomParams.F_URXD_Date = null;
t.FReceiveQty = t.FReceiveQty.SafeValue() + temp.Qty; t.FReceiveQty = t.FReceiveQty + temp.Qty;
t.FRemainReceiveQty = t.FRemainReceiveQty.SafeValue() - 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 = userList.Where(t => t.SupplierId == SupplierId).ToList();
userList.ForEach(t => 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"); DateTime begin = DateTime.Parse("2024-01-01");
if (maxDate.HasValue) if (maxDate.HasValue)
{ {
@ -604,7 +612,8 @@ namespace MyCode.Project.Services.Implementation
purchaseOrderItem.FBillTaxAmount = item["FEntryTaxAmount"]; purchaseOrderItem.FBillTaxAmount = item["FEntryTaxAmount"];
purchaseOrderItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"]; purchaseOrderItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"];
purchaseOrderItem.FReceiveQty = item["FBaseJoinQty"]; 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.FMRPCloseStatus = item["FMRPCloseStatus"];
purchaseOrderItem.EntityId = item["FPOOrderEntry_FEntryId"]; purchaseOrderItem.EntityId = item["FPOOrderEntry_FEntryId"];
purchaseOrderItem.MSSSupplierLot = item["FLot"]; purchaseOrderItem.MSSSupplierLot = item["FLot"];
@ -629,11 +638,12 @@ namespace MyCode.Project.Services.Implementation
oldItem.TaxRate = item["FEntryTaxRate"]; oldItem.TaxRate = item["FEntryTaxRate"];
oldItem.FBillTaxAmount = item["FEntryTaxAmount"]; oldItem.FBillTaxAmount = item["FEntryTaxAmount"];
oldItem.FReceiveQty = item["FBaseJoinQty"]; 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.SpecificationModel = item["FMaterialId.FSpecification"];
//oldItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"]; //oldItem.FRemainReceiveQty = item["FBaseDeliveryMaxQty"];
//purchaseOrderItem.FReceiveQty = item["FBaseDeliveryMaxQty"]; //purchaseOrderItem.FReceiveQty = item["FBaseDeliveryMaxQty"];
oldItem.FReceiveQty = oldItem.Qty - oldItem.FRemainReceiveQty.SafeValue(); oldItem.FReceiveQty = oldItem.Qty - oldItem.FRemainReceiveQty;
oldItem.FMRPCloseStatus = item["FMRPCloseStatus"]; oldItem.FMRPCloseStatus = item["FMRPCloseStatus"];
oldItem.EntityId = item["FPOOrderEntry_FEntryId"]; oldItem.EntityId = item["FPOOrderEntry_FEntryId"];
oldItem.MSSSupplierLot = item["FLot"]; oldItem.MSSSupplierLot = item["FLot"];