private void UpdateCustTotals(ListViewTotals tot) { foreach (ListViewItem item in lvTime.Items) { if (item.Text == tot.custName) { item.Selected = true; break; } } Font f = new Font(lvTime.Items[0].SubItems[0].Font, FontStyle.Bold); lvTime.SelectedItems[0].UseItemStyleForSubItems = false; lvTime.SelectedItems[0].SubItems[(int)DayIndex.RegTot].Text = tot.RegHours.ToString(); lvTime.SelectedItems[0].SubItems[(int)DayIndex.RegTot].Font = f; if (tot.RegHours > 40.0M) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.RegTot].ForeColor = Color.Red; } lvTime.SelectedItems[0].SubItems[(int)DayIndex.OTTot].Text = tot.OTHours.ToString(); lvTime.SelectedItems[0].SubItems[(int)DayIndex.OTTot].Font = f; lvTime.SelectedItems[0].SubItems[(int)DayIndex.Total].Text = (tot.OTHours + tot.RegHours).ToString(); lvTime.SelectedItems[0].SubItems[(int)DayIndex.Total].Font = f; }
private void FillTimeGrid(List <TimesheetEntryGrid> gridRows) { List <TimesheetEntryGrid> custItems = gridRows.GroupBy(x => new { x.Customer }).Select(x => x.First()).ToList(); foreach (TimesheetEntryGrid row in custItems) { AddListView(row); } custItems = gridRows.GroupBy(x => new { x.Customer, x.PayrollItem, x.WorkDay }).Select(x => x.First()).ToList(); List <ListViewTotals> listGrandTotals = new List <ListViewTotals>(); foreach (TimesheetEntryGrid row in custItems) { ListViewTotals listTotals = UpdateListView(row); listGrandTotals.Add(listTotals); } List <ListViewTotals> custTotalList = listGrandTotals.GroupBy(x => new { x.custName }).Select(x => x.First()).ToList(); foreach (var tot in custTotalList) { ListViewTotals custTotals = new ListViewTotals(); custTotals.custName = tot.custName; custTotals.RegHours = 0.0M; custTotals.OTHours = 0.0M; List <ListViewTotals> dayList = listGrandTotals.Where(x => x.custName == tot.custName).ToList(); foreach (var day in dayList) { custTotals.RegHours += day.RegMon + day.RegTue + day.RegWed + day.RegThur + day.RegFri + day.RegSat + day.RegSun; custTotals.OTHours += day.OTMon + day.OTTue + day.OTWed + day.OTThur + day.OTFri + day.OTSat + day.OTSun; } UpdateCustTotals(custTotals); } AddTotalsRow(listGrandTotals); }
private void AddTotalsRow(List <ListViewTotals> listGrandTotals) { ListViewTotals dayTotals = new ListViewTotals(); foreach (var total in listGrandTotals) { dayTotals.RegMon += total.RegMon; dayTotals.RegHours += total.RegMon; dayTotals.OTMon += total.OTMon; dayTotals.OTHours += total.OTMon; dayTotals.RegTue += total.RegTue; dayTotals.RegHours += total.RegTue; dayTotals.OTTue += total.OTTue; dayTotals.OTHours += total.OTTue; dayTotals.RegWed += total.RegWed; dayTotals.RegHours += total.RegWed; dayTotals.OTWed += total.OTWed; dayTotals.OTHours += total.OTWed; dayTotals.RegThur += total.RegThur; dayTotals.RegHours += total.RegThur; dayTotals.OTThur += total.OTThur; dayTotals.OTHours += total.OTThur; dayTotals.RegFri += total.RegFri; dayTotals.RegHours += total.RegFri; dayTotals.OTFri += total.OTFri; dayTotals.OTHours += total.OTFri; dayTotals.RegSat += total.RegSat; dayTotals.RegHours += total.RegSat; dayTotals.OTSat += total.OTSat; dayTotals.OTHours += total.OTSat; dayTotals.RegSun += total.RegSun; dayTotals.RegHours += total.RegSun; dayTotals.OTSun += total.OTSun; dayTotals.OTHours += total.OTSun; } ListViewItem lvi = new ListViewItem("Totals"); Font f = new Font(lvTime.Items[0].SubItems[0].Font, FontStyle.Bold); lvi.Font = f; lvi.SubItems.Add(dayTotals.RegMon.ToString()); lvi.SubItems.Add(dayTotals.OTMon.ToString()); lvi.SubItems.Add(dayTotals.RegTue.ToString()); lvi.SubItems.Add(dayTotals.OTTue.ToString()); lvi.SubItems.Add(dayTotals.RegWed.ToString()); lvi.SubItems.Add(dayTotals.OTWed.ToString()); lvi.SubItems.Add(dayTotals.RegThur.ToString()); lvi.SubItems.Add(dayTotals.OTThur.ToString()); lvi.SubItems.Add(dayTotals.RegFri.ToString()); lvi.SubItems.Add(dayTotals.OTFri.ToString()); lvi.SubItems.Add(dayTotals.RegSat.ToString()); lvi.SubItems.Add(dayTotals.OTSat.ToString()); lvi.SubItems.Add(dayTotals.RegSun.ToString()); lvi.SubItems.Add(dayTotals.OTSun.ToString()); lvi.SubItems.Add(dayTotals.RegHours.ToString()); lvi.SubItems.Add(dayTotals.OTHours.ToString()); lvi.SubItems.Add((dayTotals.OTHours + dayTotals.RegHours).ToString()); lvTime.Items.Add(lvi); }
private ListViewTotals UpdateListView(TimesheetEntryGrid row) { ListViewTotals listTotals = new ListViewTotals(); listTotals.custName = row.Customer; foreach (ListViewItem item in lvTime.Items) { if (item.Text == row.Customer) { item.Selected = true; break; } } if (row.WorkDay == "Monday") { if (row.PayrollItem.Contains("RG")) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.MonReg].Text = row.RegHours.ToString(); listTotals.RegMon += row.RegHours; } else { lvTime.SelectedItems[0].SubItems[(int)DayIndex.MonOT].Text = row.OTHours.ToString(); listTotals.OTMon += row.OTHours; } } if (row.WorkDay == "Tuesday") { if (row.PayrollItem.Contains("RG")) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.TueReg].Text = row.RegHours.ToString(); listTotals.RegTue += row.RegHours; } else { lvTime.SelectedItems[0].SubItems[(int)DayIndex.TueOT].Text = row.OTHours.ToString(); listTotals.OTTue += row.OTHours; } } if (row.WorkDay == "Wednesday") { if (row.PayrollItem.Contains("RG")) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.WedReg].Text = row.RegHours.ToString(); listTotals.RegWed += row.RegHours; } else { lvTime.SelectedItems[0].SubItems[(int)DayIndex.WedOT].Text = row.OTHours.ToString(); listTotals.OTWed += row.OTHours; } } if (row.WorkDay == "Thursday") { if (row.PayrollItem.Contains("RG")) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.ThurReg].Text = row.RegHours.ToString(); listTotals.RegThur += row.RegHours; } else { lvTime.SelectedItems[0].SubItems[(int)DayIndex.ThurOT].Text = row.OTHours.ToString(); listTotals.OTThur += row.OTHours; } } if (row.WorkDay == "Friday") { if (row.PayrollItem.Contains("RG")) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.FriReg].Text = row.RegHours.ToString(); listTotals.RegFri += row.RegHours; } else { lvTime.SelectedItems[0].SubItems[(int)DayIndex.FriOT].Text = row.OTHours.ToString(); listTotals.OTFri += row.OTHours; } } if (row.WorkDay == "Saturday") { if (row.PayrollItem.Contains("RG")) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.SatReg].Text = row.RegHours.ToString(); listTotals.RegSat += row.RegHours; } else { lvTime.SelectedItems[0].SubItems[(int)DayIndex.SatOT].Text = row.OTHours.ToString(); listTotals.OTSat += row.OTHours; } } if (row.WorkDay == "Sunday") { if (row.PayrollItem.Contains("RG")) { lvTime.SelectedItems[0].SubItems[(int)DayIndex.SunReg].Text = row.RegHours.ToString(); listTotals.RegSun += row.RegHours; } else { lvTime.SelectedItems[0].SubItems[(int)DayIndex.SunOT].Text = row.OTHours.ToString(); listTotals.OTSun += row.OTHours; } } return(listTotals); }