Emmmanuel FIADUFE

Emmmanuel FIADUFE

  • 839
  • 856
  • 38.1k

Controller Update duplicate data

Jun 30 2023 9:41 AM

Hello Team, this is my Home controller query, it always duplicate data when I try to update saved data, kindly help. 

public JsonResult UpdateInvoiceSale(tblSale sale, List salesDetail, List deleted) {
    MasterMVCPOS.Helper.AppHelper.ReturnMessage retMessage = new AppHelper.ReturnMessage();
    ASPNETMASTERPOSTEntities db = new ASPNETMASTERPOSTEntities();
    retMessage.IsSuccess = true;
    if (deleted != null) {
        foreach(var item in deleted) {
            var data = db.tblSalesDetails.Where(x => x.SalesDetailId == item).FirstOrDefault();
            db.tblSalesDetails.Remove(data);
        }
    }
    foreach(var item in salesDetail) {
        if (item.SalesDetailId > 0) {
            db.Entry(item).State = EntityState.Modified;
            retMessage.Message = "Update successfully!";
        } else {
            sale.tblSalesDetails.Add(new tblSalesDetail {
                ProductId = item.ProductId, UnitPrice = item.UnitPrice, Quantity = item.Quantity, LineTotal = item.LineTotal
            });
            var prd = db.tblProductStocks.Where(x => x.ProductId == item.ProductId && x.Quantity > 0).FirstOrDefault();
            prd.Quantity = prd.Quantity - item.Quantity;
            db.Entry(prd).State = EntityState.Modified;
            db.tblSales.Add(sale);
            retMessage.Message = "Save successfully!";
        }
    }
    try {
        db.SaveChanges();
    } catch (Exception) {
        retMessage.IsSuccess = false;
    }
    return Json(retMessage, JsonRequestBehavior.AllowGet);
}

 


Answers (2)