private void PopulateDetail(Contract contract) { BuildingComparer current = new BuildingComparer(); BuildingComparer previous = new BuildingComparer(); string projectName = string.Empty; string blockName = string.Empty; string workName = string.Empty; string groupName = string.Empty; string arrow = Resources.BuildingMonitorResources.SeparatorLR; TableRow row = null; TableCell cell = null; foreach (ContractDetail detail in contract.Detail) { current.Set(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId, detail.ItemId, detail.SubItemId); if (!current.IsProject(previous)) projectName = Project.Create(detail.ProjectId).Name; if (!current.IsBlock(previous)) blockName = Block.Create(detail.ProjectId, detail.BlockId).Name; if (!current.IsWork(previous)) workName = Work.Create(detail.ProjectId, detail.BlockId, detail.WorkId).Name; if (!current.IsGroup(previous)) { groupName = Group.Create(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId).Name; row = new TableRow(); row.CssClass = "bm-group-hd"; cell = new TableCell(); row.Cells.Add(cell); cell.ColumnSpan = 4; cell.Text = projectName + arrow + blockName + arrow + workName + arrow + groupName; tblContractDetail.Rows.Add(row); } row = new TableRow(); cell = new TableCell(); row.Cells.Add(cell); cell.Text = " "; cell = new TableCell(); row.Cells.Add(cell); cell.Text = detail.Name; cell = new TableCell(); row.Cells.Add(cell); cell.Text = Helpers.Formatter.Decimal(detail.Quantity) + " " + detail.Unit; cell.CssClass = "bm-number"; cell = new TableCell(); row.Cells.Add(cell); cell.Text = Helpers.Formatter.Decimal(detail.Price); cell.CssClass = "bm-number"; tblContractDetail.Rows.Add(row); previous.CopyFrom(current); } row = new TableRow(); row.TableSection = TableRowSection.TableFooter; cell = new TableCell(); cell.ColumnSpan = 3; cell.CssClass = "bm-label-total"; cell.Text = "Total: "; row.Cells.Add(cell); cell = new TableCell(); cell.CssClass = "bm-total bm-number"; cell.Text = Helpers.Formatter.Decimal(contract.Amount); row.Cells.Add(cell); tblContractDetail.Rows.Add(row); }
private void PopulateDetail() { BuildingComparer prevBc = new BuildingComparer(); BuildingComparer currBc = new BuildingComparer(); int counter = 0; int rowCounter = 0; foreach(ContractDetail detail in _contract.Detail) { TableRow row = new TableRow(); TableCell cell = new TableCell(); currBc.Set(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId, detail.ItemId, detail.SubItemId); if (!currBc.IsGroup(prevBc)) { cell.Text = string.Format("{1} {0} {2} {0} {3} {0} {4}", Resources.BuildingMonitorResources.SeparatorLR, Project.Create(detail.ProjectId).Name, Block.Create(detail.ProjectId, detail.BlockId).Name, Work.Create(detail.ProjectId, detail.BlockId, detail.WorkId).Name, Group.Create(detail.ProjectId, detail.BlockId, detail.WorkId, detail.GroupId).Name); cell.ColumnSpan = 6; row.CssClass = "bm-group-hd"; row.Cells.Add(cell); prevBc.CopyFrom(currBc); tblContractDetail.Rows.AddAt(tblContractDetail.Rows.Count - 1, row); cell = new TableCell(); row = new TableRow(); counter = 1; } cell.CssClass = "bm-number"; cell.Text = (++rowCounter).ToInvariantString(); row.Cells.Add(cell); cell = new TableCell(); cell.Text = detail.Name; row.TableSection = TableRowSection.TableBody; row.Cells.Add(cell); cell = new TableCell(); cell.CssClass = "bm-number"; cell.Text = Helpers.Formatter.Decimal(detail.Quantity) + " " + detail.Unit; row.Cells.Add(cell); cell = new TableCell(); cell.CssClass = "bm-number"; cell.Text = detail.InitialProgress.ToInvariantString() + "%"; row.Cells.Add(cell); cell = new TableCell(); cell.CssClass = "bm-number"; cell.Text = Helpers.Formatter.Decimal(detail.Price); row.Cells.Add(cell); row.CssClass = counter++ % 2 == 0 ? "alternate" : string.Empty; tblContractDetail.Rows.AddAt(tblContractDetail.Rows.Count - 1, row); } }