Controller not bee able to pass data to Quantity table

Emmanuel Fiadufe - Mar 1 - - Dev Community

` public ActionResult SaveItem(ItemViewModel itemModel)
{
bool result = false;

try
{
    // Step 1: Save Category
    tblCategory objCategory = objRestaurantDBEntities.tblCategories
        .SingleOrDefault(x => x.CategoryId == itemModel.CategoryId) ?? new tblCategory();

    if (itemModel.CategoryId <= 0)
    {
        objCategory.CategoryName = itemModel.CategoryName;
        objRestaurantDBEntities.tblCategories.Add(objCategory);
        objRestaurantDBEntities.SaveChanges(); // Save to generate CategoryId
    }

    // Ensure objCategory has an ID
    if (objCategory.CategoryId <= 0)
    {
        return Json(new { success = false, message = "Failed to save category." });
    }

    // Step 2: Save Item
    tblItem objItem = objRestaurantDBEntities.tblItems
        .SingleOrDefault(x => x.ItemId == itemModel.ItemId) ?? new tblItem();

    objItem.PCode = itemModel.PCode;
    objItem.ItemName = itemModel.ItemName;
    objItem.CostPrice = itemModel.CostPrice;
    objItem.ItemPrice = itemModel.ItemPrice;
    objItem.Vat = itemModel.Vat;
    objItem.ExpiringDate = itemModel.ExpiringDate;
    objItem.Active = itemModel.Active;
    objItem.CategoryId = objCategory.CategoryId; // Assign correct category ID

    if (itemModel.ItemId <= 0) // New Item
    {
        objRestaurantDBEntities.tblItems.Add(objItem);
    }

    objRestaurantDBEntities.SaveChanges(); // Save Item


    if (objItem.ItemId <= 0)
    {
        return Json(new { success = false, message = "Failed to save item. ItemId not generated." });
    }

    // Step 3: Save Quantity (Ensure itemModel.tblQuantities is not null)
    if (itemModel.tblQuantities != null)
    {
        tblQuantity objQnty = objRestaurantDBEntities.tblQuantities
            .SingleOrDefault(x => x.QuantityId == itemModel.QuantityId) ?? new tblQuantity();

        objQnty.InitialQty = itemModel.tblQuantities.InitialQty;
        objQnty.Quantity = itemModel.tblQuantities.Quantity;
        objQnty.ItemId = objItem.ItemId;

        if (itemModel.tblQuantities.QuantityId <= 0) // New Quantity Entry
        {
            objRestaurantDBEntities.tblQuantities.Add(objQnty);
        }

        objRestaurantDBEntities.SaveChanges(); // Save Quantity Data
    }

    result = true;
}
catch (Exception ex)
{
    // Log the error properly (Assuming you have a logging mechanism)
    Console.WriteLine(ex.ToString());

    return Json(new { success = false, message = "An error occurred: {ex.Message}" });
}

return Json(new { success = result, message = "Item saved successfully." });
Enter fullscreen mode Exit fullscreen mode

}
`

. .