Fixed some crash bugs related to the front page renderer recieving empty (null) table records. Twaeked both renderers' formatting.

This commit is contained in:
2017-09-26 13:59:50 -05:00
parent 945324f418
commit db555d80fe
3 changed files with 109 additions and 51 deletions
+82 -41
View File
@@ -77,6 +77,7 @@ namespace AdvertsingProfitControl
writer.AddAttribute(HtmlTextWriterAttribute.Style, "border:none");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
//TODO: Validate the last week's date
//Grab last week's date
writer.Write("Week Ending <u>" + date.AddDays(-7).ToString("d") + "</u>");
writer.RenderEndTag();//td
writer.RenderEndTag();//tr
@@ -130,25 +131,33 @@ namespace AdvertsingProfitControl
writer.RenderEndTag();//td
//Sunday td
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (weeklySale == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("Sunday");
writer.RenderEndTag();//td
//Dollar amount for Sunday
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (weeklySale != null) writer.Write($"{weeklySale.Sunday:N2}");
writer.RenderEndTag();//dollar amount Sunday end
writer.RenderEndTag();//tr
if (weeklySale != null)
{
//Dollar amount for Sunday
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write($"{weeklySale.Sunday:N2}");
writer.RenderEndTag();//dollar amount Sunday end
writer.RenderEndTag();//tr
}
//Row spanned row for the header row.
writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (weeklySale == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday cell
writer.Write("Monday");
writer.RenderEndTag();//Monday end
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday dollar amount
if (weeklySale != null) writer.Write($"{weeklySale.Monday:N2}");
writer.RenderEndTag();//end Monday dollar amount
if (weeklySale != null)
{
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday dollar amount
writer.Write($"{weeklySale.Monday:N2}");
writer.RenderEndTag();//end Monday dollar amount
}
writer.RenderEndTag();//end spanned row tr
//
for (var i = 0; i < 33; i++)
@@ -382,62 +391,74 @@ namespace AdvertsingProfitControl
{
case 0:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
writer.Write("Tuesday");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
if (sales != null && sales.Tuesday != 0) writer.Write($@"{sales.Tuesday:N2}");
writer.Write($@"{sales.Tuesday:N2}");
writer.RenderEndTag();
break;
case 1:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if(sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Wednesday
writer.Write("Wednesday");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Wednesday != 0) writer.Write($@"{sales.Wednesday:N2}");
writer.Write($@"{sales.Wednesday:N2}");
writer.RenderEndTag();
break;
case 2:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Thursday
writer.Write("Thursday");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Thursday != 0) writer.Write($@"{sales.Thursday:N2}");
writer.Write($@"{sales.Thursday:N2}");
writer.RenderEndTag();
break;
case 3:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Friday
writer.Write("Friday");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Friday != 0) writer.Write($@"{sales.Friday:N2}");
writer.Write($@"{sales.Friday:N2}");
writer.RenderEndTag();
break;
case 4:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Saturday
writer.Write("Saturday");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Saturday != 0) writer.Write($@"{sales.Saturday:N2}");
writer.Write($@"{sales.Saturday:N2}");
writer.RenderEndTag();
break;
case 5:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//total sales
writer.Write("Total Sales");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.TotalSales != 0) writer.Write($@"{sales.TotalSales:N2}");
writer.Write($@"{sales.TotalSales:N2}");
writer.RenderEndTag();
break;
}
@@ -449,82 +470,98 @@ namespace AdvertsingProfitControl
{
case 7:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Sunday
writer.Write("Sunday");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Sunday != 0) writer.Write($@"{taxable.Sunday:N2}");
writer.Write($@"{taxable.Sunday:N2}");
writer.RenderEndTag();
break;
case 8:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday
writer.Write("Monday");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Monday != 0) writer.Write($@"{taxable.Monday:N2}");
writer.Write($@"{taxable.Monday:N2}");
writer.RenderEndTag();
break;
case 9:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
writer.Write("Tuesday");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
if (taxable != null && taxable.Tuesday != 0) writer.Write($@"{taxable.Tuesday:N2}");
writer.Write($@"{taxable.Tuesday:N2}");
writer.RenderEndTag();
break;
case 10:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Wednesday
writer.Write("Wednesday");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Wednesday != 0) writer.Write($@"{taxable.Wednesday:N2}");
writer.Write($@"{taxable.Wednesday:N2}");
writer.RenderEndTag();
break;
case 11:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Thursday
writer.Write("Thursday");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Thursday != 0) writer.Write($@"{taxable.Thursday:N2}");
writer.Write($@"{taxable.Thursday:N2}");
writer.RenderEndTag();
break;
case 12:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Friday
writer.Write("Friday");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Friday != 0) writer.Write($@"{taxable.Friday:N2}");
writer.Write($@"{taxable.Friday:N2}");
writer.RenderEndTag();
break;
case 13:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Saturday
writer.Write("Saturday");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Saturday != 0) writer.Write($@"{taxable.Saturday:N2}");
writer.Write($@"{taxable.Saturday:N2}");
writer.RenderEndTag();
break;
case 14:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//total sales
writer.Write("Total Taxable");
writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Total != 0) writer.Write($@"{taxable.Total:N2}");
writer.Write($@"{taxable.Total:N2}");
writer.RenderEndTag();
break;
}
@@ -536,19 +573,23 @@ namespace AdvertsingProfitControl
{
case 16:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Total sales
writer.Write("1. Total Sales");
writer.RenderEndTag();
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if(sales != null && sales.TotalSales != 0) writer.Write($@"{sales.TotalSales:N2}");
writer.Write($@"{sales.TotalSales:N2}");
writer.RenderEndTag();
break;
case 17:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Less cost of sales
writer.Write("2. Less Cost of Sales");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (invoices.Count > 0)
@@ -568,45 +609,45 @@ namespace AdvertsingProfitControl
break;
case 19:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "border-top:none");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//dollar gross amount
writer.Write("<br>");//Empty cell
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null)
if (invoices.Count > 0)
{
if (invoices.Count > 0)
{
var dollarGross = sales.TotalSales - invoices.Sum(x => x.InvoiceNetAmountAtCost);
if(dollarGross != 0)
writer.Write($@"{dollarGross:N2}");
}
var dollarGross = sales.TotalSales - invoices.Sum(x => x.InvoiceNetAmountAtCost);
if(dollarGross != 0)
writer.Write($@"{dollarGross:N2}");
}
writer.RenderEndTag();
break;
case 20:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "border-right:none; text-align:left");
writer.AddAttribute(HtmlTextWriterAttribute.Style, sales == null ? string.Empty : "border-right:none;" + " text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Gross dollar percentage
writer.Write("% Gross Profit");
writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right; border-left:none");
writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null)
if (invoices.Count > 0)
{
if (invoices.Count > 0)
{
var grossDollarPercentage = (sales.TotalSales - invoices.Sum(x => x.InvoiceNetAmountAtCost)) / sales.TotalSales;
if(grossDollarPercentage != 0)
writer.Write($@"{grossDollarPercentage:P}");
}
var grossDollarPercentage = (sales.TotalSales - invoices.Sum(x => x.InvoiceNetAmountAtCost)) / sales.TotalSales;
if(grossDollarPercentage != 0)
writer.Write($@"{grossDollarPercentage:P}");
}
writer.RenderEndTag();
break;
case 21:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Weekly department Expense
writer.Write("Est. Wkly. Dept. Expense");
writer.RenderEndTag();
if (sales == null) break;
writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("<br>");
writer.RenderEndTag();