public async Task <SimpleResult> SaveMaterialItems(TimesheetCodeInput input) { try { var timesheet = await _context.TimeSheets.Where(x => x.Code == input.Code).FirstOrDefaultAsync(); foreach (var mat in input.Materials) { var materials = await _context.Materials.Where(x => x.StockCode == mat.StockCode).FirstOrDefaultAsync(); if (materials != null) { var inventory = await _context.Inventories.Where(x => x.MaterialId == materials.Id).FirstOrDefaultAsync(); var matItemPoco = new MaterialItemPoco { BOM_No = mat.BOM_No, Deleted = false, TimeSheetId = timesheet.Id, Quantity = Convert.ToDecimal(mat.Quantity), StockDescription = mat.StockDescription, StockCode = mat.StockCode }; inventory.Quantity = inventory.Quantity - matItemPoco.Quantity; _context.Entry(inventory).State = EntityState.Modified; _context.MaterialItems.Add(matItemPoco); } else { var non = new NonMaterialItemPoco { BOM_No = mat.BOM_No, Deleted = false, Description = mat.StockDescription, Metric = mat.Quantity.ToString(), TimeSheetId = timesheet.Id }; _context.NonMaterialItems.Add(non); } } await _context.SaveChangesAsync(); return(new SimpleResult { IsSuccess = true }); } catch { return(new SimpleResult { IsSuccess = true }); } }
public async Task <JsonResult> SaveMaterialItems([FromBody] TimesheetCodeInput input) { var result = await _timesheet.SaveMaterialItems(input); return(await GenerateResult(result, _userSettings)); }