Files
blazor-crm/Shared/Utils/PurchaseOrderHelper.cs
T
2026-07-21 13:59:38 +07:00

32 lines
1.1 KiB
C#

using Indotalent.Data.Entities;
using Indotalent.Infrastructure.Database;
using Microsoft.EntityFrameworkCore;
namespace Indotalent.Shared.Utils;
public static class PurchaseOrderHelper
{
public static void Recalculate(AppDbContext context, string purchaseOrderId)
{
var purchaseOrder = context.PurchaseOrder
.Include(x => x.Tax)
.SingleOrDefault(x => x.Id == purchaseOrderId);
if (purchaseOrder == null)
return;
var purchaseOrderItems = context.PurchaseOrderItem
.Where(x => x.PurchaseOrderId == purchaseOrderId)
.ToList();
purchaseOrder.BeforeTaxAmount = purchaseOrderItems.Sum(x => (x.UnitPrice ?? 0) * (decimal)(x.Quantity ?? 0));
var taxPercentage = purchaseOrder.Tax?.PercentageValue ?? 0;
purchaseOrder.TaxAmount = (purchaseOrder.BeforeTaxAmount ?? 0) * taxPercentage / 100;
purchaseOrder.AfterTaxAmount = (purchaseOrder.BeforeTaxAmount ?? 0) + (purchaseOrder.TaxAmount ?? 0);
context.PurchaseOrder.Update(purchaseOrder);
context.SaveChanges();
}
}