public BillingPeriodAccountsJoinCollection FetchByPeriodIDWithoutCityPerdiem(Int32 periodid) { var billingCityRateController = new BillingCityRateController(); var billingCityCol = billingCityRateController.FetchAllActive(); var billingPeriodsCol = new BillingPeriodAccountsJoinCollection().Where(BillingPeriodAccountsJoin.Columns.Periodid, periodid).OrderByAsc(BillingPeriodAccountsJoin.Columns.Accountname).Load(); var billingCityPeriodAccountIds = new List<int>(); var retBillingPeriodAccountCol = new BillingPeriodAccountsJoinCollection(); billingCityPeriodAccountIds.AddRange(billingCityCol.Select(billingCity => billingCity.Periodaccountid)); foreach (var billingPeriod in billingPeriodsCol) { if(!billingCityPeriodAccountIds.Contains(billingPeriod.Id)) retBillingPeriodAccountCol.Add(billingPeriod); } return retBillingPeriodAccountCol; }
public DataTable GetAccountSummaryTotals(Int32 Billingaccountid, Int32 PeriodID) { BillingPeriodAccountsJoin billingperiodaccount = new BillingPeriodAccountsJoinCollection().Where(BillingPeriodAccountsJoin.Columns.Periodid, PeriodID).Where(BillingPeriodAccountsJoin.Columns.Accountid, Billingaccountid).Load()[0]; Int32 billingperiodaccountid = billingperiodaccount.Id; var timeSheetController = new TimesheetController(); DataTable summaryTotals = new DataTable(); summaryTotals.Columns.Add("RateGroupID"); summaryTotals.Columns.Add("RateGroupName"); summaryTotals.Columns.Add("Rate"); summaryTotals.Columns.Add("TotalHours"); summaryTotals.Columns.Add("PerDiemRate"); summaryTotals.Columns.Add("PerDiemTotal"); summaryTotals.Columns.Add("MileageRate"); summaryTotals.Columns.Add("MileageTotal"); summaryTotals.Columns.Add("ExpenseTotal"); Double perdiemrate = billingperiodaccount.Perdiemrate; Double cityPerdiemRateAverage = timeSheetController.GetPerCityDiemRateAverageByBillingPeriodAccountID(billingperiodaccountid); Double perdiemtotal = timeSheetController.GetPerDiemCountByBillingPeriodAccountID(billingperiodaccountid); Double expensetotal = new ExpenseEntryController().GetTotalByBillingPeriodAccountID(billingperiodaccountid); Double mileagerate = billingperiodaccount.Mileagerate; Double mileagetotal = timeSheetController.GetMileageCountByBillingPeriodAccountID(billingperiodaccountid); if (cityPerdiemRateAverage > 0) { perdiemrate = cityPerdiemRateAverage; } RateGroupCollection rategroups = new RateGroupController().FetchAll(); foreach (RateGroup rategroup in rategroups) { DataRow newrow = summaryTotals.NewRow(); newrow["RateGroupID"] = rategroup.Id; newrow["RateGroupName"] = rategroup.Name; BillingRateCollection billingratecollection = new BillingRateCollection().Where(BillingRate.Columns.Periodaccountid, billingperiodaccountid).Where(BillingRate.Columns.Groupid, rategroup.Id).Load(); newrow["Rate"] = billingratecollection[0].Rate; Double totalHours = 0; EmployeeTimesheetInfoCollection col = GetTimesheets(Billingaccountid, PeriodID, rategroup.Id); foreach (EmployeeTimesheetInfo timesheet in col) { totalHours += new TimeEntriesTotalController().GetTotalHoursByTimesheetID(timesheet.Timesheetid); } newrow["TotalHours"] = totalHours; newrow["PerDiemRate"] = perdiemrate; newrow["PerDiemTotal"] = perdiemtotal; newrow["MileageRate"] = mileagerate; newrow["MileageTotal"] = mileagetotal; newrow["ExpenseTotal"] = expensetotal; summaryTotals.Rows.Add(newrow); } return summaryTotals; }
public BillingPeriodAccountsJoinCollection GetPendingTimesheets() { BillingPeriodAccountsJoinCollection col = new BillingPeriodAccountsJoinCollection().Where(BillingPeriodAccountsJoin.Columns.Openuntil, SubSonic.Comparison.GreaterOrEquals, DateTime.Now).Load(); BillingPeriodAccountsJoinCollection returnCollection = new BillingPeriodAccountsJoinCollection(); returnCollection.AddRange(col); //foreach (Timesheet timesheet in new TimesheetController().FetchByUsername(Username)) // foreach (BillingPeriodAccountsJoin billingperiod in col) // if (billingperiod.Id == timesheet.Periodaccountid) // returnCollection.Remove(billingperiod); returnCollection.Sort(BillingPeriodAccountsJoin.Columns.Periodid, true); return returnCollection; }