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")