public CompanyExpenseDto CompanyExpenseById(long id) { CompanyExpenseDto ItemDto = new CompanyExpenseDto(); using (EAharaDB context = new EAharaDB()) { var acctype = context.CompanyExpenses.FirstOrDefault(x => x.IsActive == true && x.Id == id); if (acctype != null) { ItemDto.Id = acctype.Id; ItemDto.Description = acctype.Description; ItemDto.Date = acctype.Date; ItemDto.Total = acctype.Total; ItemDto.TotalVAT = acctype.TotalVAT; ItemDto.GrandTotal = acctype.GrandTotal; ItemDto.IsActive = acctype.IsActive; ItemDto.PaymentModeId = acctype.PaymentModeId; ItemDto.PaymentMode = new PaymentModeDto { Id = acctype.PaymentMode.Id, Name = acctype.PaymentMode.Name, }; ItemDto.CompanyExpenseDetails = acctype.CompanyExpenseDetails.Where(x => x.IsActive) .Select(x => new CompanyExpenseDetailsDto { Id = x.Id, Description = x.Description, Quantity = x.Quantity, Price = x.Price, Total = x.Total, SubTotal = x.SubTotal, VATPrice = x.VATPrice, GrandTotal = x.GrandTotal, CompanyExpenseId = x.CompanyExpenseId, ExpenseId = x.ExpenseId, Expense = new ExpenseDto { Name = x.Expense != null ? x.Expense.Name : "", Id = x.Expense != null ? x.Expense.Id : 0 } }).ToList(); } } return(ItemDto); }
public bool AddCompanyExpense(CompanyExpenseDto itemDto) { if (itemDto != null) { using (EAharaDB context = new EAharaDB()) { if (itemDto.Id > 0) { var data = context.CompanyExpenses.FirstOrDefault(x => x.Id == itemDto.Id); if (data != null) { data.Date = itemDto.Date; data.Description = itemDto.Description; data.Total = itemDto.Total; data.GrandTotal = itemDto.GrandTotal; data.TotalVAT = itemDto.TotalVAT; data.PaymentModeId = itemDto.PaymentModeId; data.IsActive = true; context.Entry(data).Property(x => x.Date).IsModified = true; context.Entry(data).Property(x => x.Description).IsModified = true; context.Entry(data).Property(x => x.Total).IsModified = true; context.Entry(data).Property(x => x.TotalVAT).IsModified = true; context.Entry(data).Property(x => x.GrandTotal).IsModified = true; context.Entry(data).Property(x => x.IsActive).IsModified = true; context.Entry(data).Property(x => x.PaymentModeId).IsModified = true; foreach (var det in itemDto.CompanyExpenseDetails) { if (det.Description != "" && det.Price > 0) { if (det.Id > 0) { var olddet = context.CompanyExpenseDetails.FirstOrDefault(X => X.Id == det.Id); olddet.Description = det.Description; olddet.Quantity = det.Quantity; olddet.Price = det.Price; olddet.SubTotal = det.SubTotal; olddet.Total = det.Total; olddet.VATPrice = det.VATPrice; olddet.GrandTotal = det.GrandTotal; olddet.CompanyExpenseId = data.Id; olddet.ExpenseId = det.ExpenseId; olddet.IsActive = true; context.Entry(olddet).Property(x => x.Description).IsModified = true; context.Entry(olddet).Property(x => x.Quantity).IsModified = true; context.Entry(olddet).Property(x => x.Price).IsModified = true; context.Entry(olddet).Property(x => x.SubTotal).IsModified = true; context.Entry(olddet).Property(x => x.Total).IsModified = true; context.Entry(olddet).Property(x => x.VATPrice).IsModified = true; context.Entry(olddet).Property(x => x.GrandTotal).IsModified = true; context.Entry(olddet).Property(x => x.CompanyExpenseId).IsModified = true; context.Entry(olddet).Property(x => x.IsActive).IsModified = true; context.Entry(olddet).Property(x => x.ExpenseId).IsModified = true; } else { CompanyExpenseDetails olddet = new CompanyExpenseDetails(); olddet.Description = det.Description; olddet.Quantity = det.Quantity; olddet.Price = det.Price; olddet.SubTotal = det.SubTotal; olddet.Total = det.Total; olddet.ExpenseId = det.ExpenseId; olddet.VATPrice = det.VATPrice; olddet.GrandTotal = det.GrandTotal; olddet.CompanyExpenseId = data.Id; olddet.IsActive = true; context.CompanyExpenseDetails.Add(olddet); } } } context.SaveChanges(); return(true); } return(false); } else { CompanyExpense data = new CompanyExpense(); data.Date = itemDto.Date; data.Description = itemDto.Description; data.Total = itemDto.Total; data.GrandTotal = itemDto.GrandTotal; data.TotalVAT = itemDto.TotalVAT; data.PaymentModeId = itemDto.PaymentModeId; data.IsActive = true; context.CompanyExpenses.Add(data); context.SaveChanges(); foreach (var det in itemDto.CompanyExpenseDetails) { if (det.Description != "" && det.Price > 0) { CompanyExpenseDetails olddet = new CompanyExpenseDetails(); olddet.Description = det.Description; olddet.Quantity = det.Quantity; olddet.Price = det.Price; olddet.SubTotal = det.SubTotal; olddet.Total = det.Total; olddet.ExpenseId = det.ExpenseId; olddet.VATPrice = det.VATPrice; olddet.GrandTotal = det.GrandTotal; olddet.CompanyExpenseId = data.Id; olddet.IsActive = true; context.CompanyExpenseDetails.Add(olddet); } } context.SaveChanges(); return(true); } } } return(false); }