async public Task <IHttpActionResult> Update(UpdateBilling billingQuaterly) { var SpecificBill = await Db.BillingQuaterly.SingleOrDefaultAsync(e => e.Id == billingQuaterly.Id); SpecificBill.AmountPaid = SpecificBill.AmountPaid + billingQuaterly.AmountPaid; SpecificBill.Tax = SpecificBill.Tax + billingQuaterly.Tax; SpecificBill.RemainingArrears = SpecificBill.TotalAmountToPay - SpecificBill.AmountPaid - SpecificBill.Tax; var billing = await Db.BillingQuaterly.SingleOrDefaultAsync(e => e.Id == billingQuaterly.Id); var project = await Db.Projects.SingleOrDefaultAsync(i => i.Id == billing.ProjectId); var comissionEmployee = (await Db.ProjectComission.SingleOrDefaultAsync(e => e.Id == billing.ProjectComissionId)).EmployeeId; var billHistory = new QuaterlyHistoryDetails() { BillingQuaterlyId = billingQuaterly.Id, AmountAdded = billingQuaterly.AmountPaid, TaxAdded = billingQuaterly.Tax, Date = DateTime.Now.Date }; var comissionAdd = new ProjectComission() { EmployeeId = comissionEmployee, Date = DateTime.Now.Date, ComissionAmount = (billingQuaterly.AmountPaid * project.ComissionPercentage) / 100, ProjectId = project.Id }; Db.ProjectComission.Add(comissionAdd); Db.QuaterlyHistoryDetails.Add(billHistory); await Db.SaveChangesAsync(); return(Ok()); //var billing = await Db.BillingQuaterly.SingleOrDefaultAsync(e => e.Id == billingQuaterly.Id); //var comissionProjectUpdate = await Db.ProjectComission.SingleOrDefaultAsync(e => e.Id == billing.ProjectComissionId); //comissionProjectUpdate.Date = DateTime.Now.Date; //var projectComissionPercentage = (await Db.Projects.SingleOrDefaultAsync(i => i.Id == billing.ProjectId)).ComissionPercentage; //comissionProjectUpdate.ComissionAmount = (billingQuaterly.AmountPaid * projectComissionPercentage) / 100; //await Db.SaveChangesAsync(); //return Ok(); }
async public Task <IHttpActionResult> Get(int Id) { var LastToDate = Db.BillingQuaterly.ToList().LastOrDefault(e => e.ProjectId == Id); if (LastToDate.To.Date <= DateTime.Now.Date) { LastToDate.Editable = false; var projectAmountToPay = Db.Projects.SingleOrDefault(p => p.Id == Id).BillingAmount; var billingQuaterly = new BillingQuaterly() { From = LastToDate.To.Date, To = LastToDate.To.Date.AddMonths(3), ProjectId = Id, Editable = true, Arrears = LastToDate.RemainingArrears, QuaterlyAmount = projectAmountToPay, TotalAmountToPay = LastToDate.RemainingArrears + projectAmountToPay, RemainingArrears = LastToDate.RemainingArrears + projectAmountToPay - 0 }; Db.BillingQuaterly.Add(billingQuaterly); var comissionEmployee = (await Db.ProjectComission.SingleOrDefaultAsync(p => p.Id == Id)).EmployeeId; var comissionQuaterly = new ProjectComission() { EmployeeId = comissionEmployee, Date = LastToDate.To.Date, ComissionAmount = 0, ProjectId = Id }; Db.ProjectComission.Add(comissionQuaterly); await Db.SaveChangesAsync(); } var quaterlyHistory = await Db.BillingQuaterly.Where(i => i.ProjectId == Id).ToListAsync(); return(Ok(quaterlyHistory)); }