Hello Team,ly
Please I keep getting this generic error, Object reference not set to an instance of an object, frequently in my code, and also the profit and tax is not calculating it value,kindly assist.
![](https://www.csharp.com/forums/uploadfile/ee92c2/02082025133950PM/Sales Controller Data.png)
public ActionResult SaveSales(SalesModel ObjSalesModel)
{
if (ObjSalesModel == null || ObjSalesModel.tblSales == null)
{
return Json(new { result = false, message = "Invalid data received." }, JsonRequestBehavior.AllowGet);
}
try
{
decimal Tax = 0;
decimal CostPrice = 0;
decimal SellingPrice = 0;
decimal vat = Tax;
decimal costPrice = CostPrice;
decimal sellingPrice = SellingPrice;
decimal Profit = sellingPrice - costPrice;
decimal Vatpercent = (vat / 100) * sellingPrice;
tblSale ObjSales = new tblSale();
ObjSales.OrderDate = DateTime.Now.ToString("dd-MM-yyyy HH:mm:ss");
ObjSales.TransactionNo = string.Format("{0:ddMMMyyyyHHmmss}", DateTime.Now);
ObjSales.Amount = ObjSalesModel.tblSales.Amount;
ObjSales.Discount = ObjSalesModel.tblSales.Discount;
ObjSales.Tax = Vatpercent;
ObjSales.GrandTotal = ObjSalesModel.tblSales.GrandTotal;
ObjSales.Profit = Profit;
//ObjSales.UserID = ObjSalesModel.UserID;
objASPNETPHARMACYDBEntities.tblSales.Add(ObjSales);
objASPNETPHARMACYDBEntities.SaveChanges();
foreach (var sales in ObjSalesModel.SalesItems)
{
tblSalesItem ObjSalesItem = new tblSalesItem();
ObjSalesItem.StockID = sales.StockID;
ObjSalesItem.SalesID = ObjSales.SalesID; // Use the newly generated SalesID
ObjSalesItem.Qty = sales.Qty;
ObjSalesItem.Rate = sales.Rate;
ObjSalesItem.Amount = sales.Amount;
objASPNETPHARMACYDBEntities.tblSalesItems.Add(ObjSalesItem);
objASPNETPHARMACYDBEntities.SaveChanges();
var ObjtblStock = objASPNETPHARMACYDBEntities.tblStocks.Where(x => x.StockID == sales.StockID).FirstOrDefault();
if (ObjtblStock != null)
{
decimal itemcostPrice = Convert.ToDecimal(ObjtblStock.CostPrice);
decimal salesPrice = Convert.ToDecimal(ObjtblStock.SellingPrice);
decimal profit = salesPrice - itemcostPrice;
decimal vatAmount = (vat / 100) * sellingPrice;
// Update the sales item with calculated values
sales.Amount = Convert.ToDecimal(sellingPrice * sales.Qty);
ObjSales.Profit = profit * sales.Qty;
ObjSales.Tax = vatAmount * sales.Qty;
ObjtblStock.Qty = ObjtblStock.Qty - sales.Qty;
objASPNETPHARMACYDBEntities.Entry(ObjtblStock).State = EntityState.Modified;
objASPNETPHARMACYDBEntities.SaveChanges();
}
}
return Json(new { result = true, message = "Sales successfully saved!", TransactionNo = ObjSales.TransactionNo }, JsonRequestBehavior.AllowGet);
}
catch (System.Data.Entity.Validation.DbEntityValidationException dbEx)
{
Exception raise = dbEx;
foreach (var vailidationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in vailidationErrors.ValidationErrors)
{
string message = string.Format("{0}:{1}",
vailidationErrors.Entry.Entity.ToString(),
validationError.ErrorMessage);
raise = new InvalidOperationException(message, raise);
}
}
throw raise;
//return Json(new { result = false, message = ex.Message }, JsonRequestBehavior.AllowGet);
}
}