11
Answers

ItemId is not able to save into the tblQuantities

 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.tblQuantities.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." });
}

Answers (11)