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)); }
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)); }