initial commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user