From aa81bfe248516462734b68b4e9de06cab1be4dd5 Mon Sep 17 00:00:00 2001 From: kamil Date: Wed, 12 Jun 2024 14:03:49 +0200 Subject: [PATCH] =?UTF-8?q?zaokr=C4=85glanie=20i=20precyzja=20TotalPrice?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/TransactionController.cs | 4 +++- nHibernate/Transactions/Transaction2Mapping.cs | 2 +- nHibernate/Transactions/TransactionCRUD.cs | 8 +++++--- nHibernate/Transactions/TransactionMapping.cs | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/Controllers/TransactionController.cs b/Controllers/TransactionController.cs index ba33ae3..8f26387 100644 --- a/Controllers/TransactionController.cs +++ b/Controllers/TransactionController.cs @@ -135,7 +135,9 @@ namespace FirmTracker_Server.Controllers product.TransactionId = transaction.Id; decimal price = _productCRUD.GetProductPrice(product.ProductID); transaction.TotalPrice += ((product.Quantity * price) * ((1 - (transaction.Discount / 100)))); - } + } + + transaction.TotalPrice = Math.Round(transaction.TotalPrice, 2, MidpointRounding.AwayFromZero); _transactionCRUD.UpdateTransaction(transaction); diff --git a/nHibernate/Transactions/Transaction2Mapping.cs b/nHibernate/Transactions/Transaction2Mapping.cs index 0b27f2d..6fff813 100644 --- a/nHibernate/Transactions/Transaction2Mapping.cs +++ b/nHibernate/Transactions/Transaction2Mapping.cs @@ -13,7 +13,7 @@ namespace FirmTracker_Server.nHibernate.Transactions Map(x => x.PaymentType); Map(x => x.Discount); Map(x => x.Description); - Map(x => x.TotalPrice); + Map(x => x.TotalPrice).Precision(18).Scale(2); HasMany(x => x.TransactionProducts) .KeyColumn("TransactionId") diff --git a/nHibernate/Transactions/TransactionCRUD.cs b/nHibernate/Transactions/TransactionCRUD.cs index 3ebc8f6..fda048e 100644 --- a/nHibernate/Transactions/TransactionCRUD.cs +++ b/nHibernate/Transactions/TransactionCRUD.cs @@ -28,9 +28,11 @@ namespace FirmTracker_Server.nHibernate.Transactions { transaction.TotalPrice += (product.Price) * ((1 - (transaction.Discount / 100))); } - transactionProduct.TransactionId = transaction.Id; + transactionProduct.TransactionId = transaction.Id; + session.Save(transactionProduct); } + transaction.TotalPrice = Math.Round(transaction.TotalPrice, 2, MidpointRounding.AwayFromZero); session.Save(transaction); // Decrease product quantities based on transaction @@ -183,8 +185,8 @@ namespace FirmTracker_Server.nHibernate.Transactions transactionProduct.TransactionId= transactionToUpdate.Id; session.Save(transactionProduct); - transaction.Commit(); + transactionToUpdate.TotalPrice = Math.Round(transactionToUpdate.TotalPrice, 2, MidpointRounding.AwayFromZero); session.Update(transactionToUpdate); //var product = session.Get(transactionProduct.ProductID); if (product.Type != 0) @@ -192,7 +194,7 @@ namespace FirmTracker_Server.nHibernate.Transactions product.Availability -= transactionProduct.Quantity; session.Update(product); } - + transaction.Commit(); } else { diff --git a/nHibernate/Transactions/TransactionMapping.cs b/nHibernate/Transactions/TransactionMapping.cs index 6f0734f..eb39303 100644 --- a/nHibernate/Transactions/TransactionMapping.cs +++ b/nHibernate/Transactions/TransactionMapping.cs @@ -13,7 +13,7 @@ namespace FirmTracker_Server.nHibernate.Transactions Map(x => x.PaymentType); Map(x => x.Discount); Map(x => x.Description); - Map(x => x.TotalPrice); + Map(x => x.TotalPrice).Precision(18).Scale(2); HasMany(x => x.TransactionProducts) .KeyColumn("TransactionId")