async public Task <IHttpActionResult> Update(UpdateBilling billingMonthly) { var SpecificBill = await Db.BillingMonthly.SingleOrDefaultAsync(e => e.Id == billingMonthly.Id); SpecificBill.AmountPaid = SpecificBill.AmountPaid + billingMonthly.AmountPaid; SpecificBill.Tax = SpecificBill.Tax + billingMonthly.Tax; SpecificBill.RemainingArrears = SpecificBill.TotalAmountToPay - SpecificBill.AmountPaid - SpecificBill.Tax; var billing = await Db.BillingMonthly.SingleOrDefaultAsync(e => e.Id == billingMonthly.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 MonthlyHistoryDetails() { BillingMonthlyId = billingMonthly.Id, AmountAdded = billingMonthly.AmountPaid, TaxAdded = billingMonthly.Tax, Date = DateTime.Now.Date }; var comissionAdd = new ProjectComission() { EmployeeId = comissionEmployee, Date = DateTime.Now.Date, ComissionAmount = (billingMonthly.AmountPaid * project.ComissionPercentage) / 100, ProjectId = project.Id }; Db.ProjectComission.Add(comissionAdd); Db.MonthlyHistoryDetails.Add(billHistory); await Db.SaveChangesAsync(); return(Ok()); }
async public Task <IHttpActionResult> New(ProjectRegisterPostVM projectPost) { Db.Projects.Add(projectPost.Project); Db.ProjectComission.Add(projectPost.ProjectComission); var emp = await Db.Employees.SingleOrDefaultAsync(e => e.Id == projectPost.ProjectComission.EmployeeId); if (projectPost.Project.ProjectBillingTypeId == 1) { var billOneTime = new BillingOneTime() { OneTimeAmount = projectPost.Project.BillingAmount, AmountPaid = projectPost.Project.Arrears, Tax = projectPost.Tax, RemainingArrears = projectPost.Project.BillingAmount - projectPost.Project.Arrears - projectPost.Tax }; var billHistory = new OneTimeHistoryDetails() { BillingOneTimeId = billOneTime.Id, AmountAdded = projectPost.Project.Arrears, TaxAdded = Convert.ToInt32(projectPost.Tax), Date = projectPost.Project.StartingDate }; Db.BillingOneTime.Add(billOneTime); Db.OneTimeHistoryDetails.Add(billHistory); } else if (projectPost.Project.ProjectBillingTypeId == 2) { var billMonthly = new BillingMonthly() { From = projectPost.Project.StartingDate, To = projectPost.Project.StartingDate.AddMonths(1), MonthlyAmount = projectPost.Project.BillingAmount, Arrears = 0, Tax = projectPost.Tax, Editable = true, TotalAmountToPay = projectPost.Project.BillingAmount + 0, AmountPaid = projectPost.Project.Arrears, RemainingArrears = projectPost.Project.BillingAmount + 0 - projectPost.Project.Arrears - projectPost.Tax }; var billHistory = new MonthlyHistoryDetails() { BillingMonthlyId = billMonthly.Id, AmountAdded = projectPost.Project.Arrears, TaxAdded = Convert.ToInt32(projectPost.Tax), Date = projectPost.Project.StartingDate }; Db.BillingMonthly.Add(billMonthly); Db.MonthlyHistoryDetails.Add(billHistory); } else if (projectPost.Project.ProjectBillingTypeId == 3) { var billQuaterly = new BillingQuaterly() { From = projectPost.Project.StartingDate, To = projectPost.Project.StartingDate.AddMonths(3), QuaterlyAmount = projectPost.Project.BillingAmount, Arrears = 0, Tax = projectPost.Tax, Editable = true, TotalAmountToPay = projectPost.Project.BillingAmount + 0, AmountPaid = projectPost.Project.Arrears, RemainingArrears = projectPost.Project.BillingAmount + 0 - projectPost.Project.Arrears - projectPost.Tax }; var billHistory = new QuaterlyHistoryDetails() { BillingQuaterlyId = billQuaterly.Id, AmountAdded = projectPost.Project.Arrears, TaxAdded = Convert.ToInt32(projectPost.Tax), Date = projectPost.Project.StartingDate }; Db.BillingQuaterly.Add(billQuaterly); Db.QuaterlyHistoryDetails.Add(billHistory); } else if (projectPost.Project.ProjectBillingTypeId == 4) { var billyearly = new BillingYearly() { From = projectPost.Project.StartingDate, To = projectPost.Project.StartingDate.AddYears(1), YearlyAmount = projectPost.Project.BillingAmount, Arrears = 0, Tax = projectPost.Tax, Editable = true, TotalAmountToPay = projectPost.Project.BillingAmount + 0, AmountPaid = projectPost.Project.Arrears, RemainingArrears = projectPost.Project.BillingAmount + 0 - projectPost.Project.Arrears - projectPost.Tax }; var billHistory = new YearlyHistoryDetails() { BillingYearlyId = billyearly.Id, AmountAdded = projectPost.Project.Arrears, TaxAdded = Convert.ToInt32(projectPost.Tax), Date = projectPost.Project.StartingDate }; Db.BillingYearly.Add(billyearly); Db.YearlyHistoryDetails.Add(billHistory); } await Db.SaveChangesAsync(); var IdData = (await Db.Projects.SingleOrDefaultAsync(p => p.Name == projectPost.Project.Name && p.ClientId == projectPost.Project.ClientId)).Id; return(Ok(IdData)); }