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.AddAttribute(HtmlTextWriterAttribute.Style, "border:none");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
//TODO: Validate the last week's date //TODO: Validate the last week's date
//Grab last week's date
writer.Write("Week Ending <u>" + date.AddDays(-7).ToString("d") + "</u>"); writer.Write("Week Ending <u>" + date.AddDays(-7).ToString("d") + "</u>");
writer.RenderEndTag();//td writer.RenderEndTag();//td
writer.RenderEndTag();//tr writer.RenderEndTag();//tr
@@ -130,25 +131,33 @@ namespace AdvertsingProfitControl
writer.RenderEndTag();//td writer.RenderEndTag();//td
//Sunday td //Sunday td
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (weeklySale == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("Sunday"); writer.Write("Sunday");
writer.RenderEndTag();//td writer.RenderEndTag();//td
//Dollar amount for Sunday if (weeklySale != null)
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); {
writer.RenderBeginTag(HtmlTextWriterTag.Td); //Dollar amount for Sunday
if (weeklySale != null) writer.Write($"{weeklySale.Sunday:N2}"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderEndTag();//dollar amount Sunday end writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.RenderEndTag();//tr writer.Write($"{weeklySale.Sunday:N2}");
writer.RenderEndTag();//dollar amount Sunday end
writer.RenderEndTag();//tr
}
//Row spanned row for the header row. //Row spanned row for the header row.
writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.RenderBeginTag(HtmlTextWriterTag.Tr);
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (weeklySale == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday cell writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday cell
writer.Write("Monday"); writer.Write("Monday");
writer.RenderEndTag();//Monday end writer.RenderEndTag();//Monday end
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); if (weeklySale != null)
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday dollar amount {
if (weeklySale != null) writer.Write($"{weeklySale.Monday:N2}"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderEndTag();//end Monday dollar amount writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday dollar amount
writer.Write($"{weeklySale.Monday:N2}");
writer.RenderEndTag();//end Monday dollar amount
}
writer.RenderEndTag();//end spanned row tr writer.RenderEndTag();//end spanned row tr
// //
for (var i = 0; i < 33; i++) for (var i = 0; i < 33; i++)
@@ -382,62 +391,74 @@ namespace AdvertsingProfitControl
{ {
case 0: case 0:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
writer.Write("Tuesday"); writer.Write("Tuesday");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
if (sales != null && sales.Tuesday != 0) writer.Write($@"{sales.Tuesday:N2}"); writer.Write($@"{sales.Tuesday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 1: case 1:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if(sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Wednesday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Wednesday
writer.Write("Wednesday"); writer.Write("Wednesday");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Wednesday != 0) writer.Write($@"{sales.Wednesday:N2}"); writer.Write($@"{sales.Wednesday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 2: case 2:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Thursday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Thursday
writer.Write("Thursday"); writer.Write("Thursday");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Thursday != 0) writer.Write($@"{sales.Thursday:N2}"); writer.Write($@"{sales.Thursday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 3: case 3:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Friday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Friday
writer.Write("Friday"); writer.Write("Friday");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Friday != 0) writer.Write($@"{sales.Friday:N2}"); writer.Write($@"{sales.Friday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 4: case 4:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Saturday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Saturday
writer.Write("Saturday"); writer.Write("Saturday");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.Saturday != 0) writer.Write($@"{sales.Saturday:N2}"); writer.Write($@"{sales.Saturday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 5: case 5:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//total sales writer.RenderBeginTag(HtmlTextWriterTag.Td);//total sales
writer.Write("Total Sales"); writer.Write("Total Sales");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (sales != null && sales.TotalSales != 0) writer.Write($@"{sales.TotalSales:N2}"); writer.Write($@"{sales.TotalSales:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
} }
@@ -449,82 +470,98 @@ namespace AdvertsingProfitControl
{ {
case 7: case 7:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Sunday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Sunday
writer.Write("Sunday"); writer.Write("Sunday");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Sunday != 0) writer.Write($@"{taxable.Sunday:N2}"); writer.Write($@"{taxable.Sunday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 8: case 8:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Monday
writer.Write("Monday"); writer.Write("Monday");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Monday != 0) writer.Write($@"{taxable.Monday:N2}"); writer.Write($@"{taxable.Monday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 9: case 9:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
writer.Write("Tuesday"); writer.Write("Tuesday");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Tuesday
if (taxable != null && taxable.Tuesday != 0) writer.Write($@"{taxable.Tuesday:N2}"); writer.Write($@"{taxable.Tuesday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 10: case 10:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Wednesday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Wednesday
writer.Write("Wednesday"); writer.Write("Wednesday");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Wednesday != 0) writer.Write($@"{taxable.Wednesday:N2}"); writer.Write($@"{taxable.Wednesday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 11: case 11:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Thursday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Thursday
writer.Write("Thursday"); writer.Write("Thursday");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Thursday != 0) writer.Write($@"{taxable.Thursday:N2}"); writer.Write($@"{taxable.Thursday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 12: case 12:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Friday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Friday
writer.Write("Friday"); writer.Write("Friday");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Friday != 0) writer.Write($@"{taxable.Friday:N2}"); writer.Write($@"{taxable.Friday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 13: case 13:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Saturday writer.RenderBeginTag(HtmlTextWriterTag.Td);//Saturday
writer.Write("Saturday"); writer.Write("Saturday");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Saturday != 0) writer.Write($@"{taxable.Saturday:N2}"); writer.Write($@"{taxable.Saturday:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 14: case 14:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (taxable == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//total sales writer.RenderBeginTag(HtmlTextWriterTag.Td);//total sales
writer.Write("Total Taxable"); writer.Write("Total Taxable");
writer.RenderEndTag(); writer.RenderEndTag();
if (taxable == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (taxable != null && taxable.Total != 0) writer.Write($@"{taxable.Total:N2}"); writer.Write($@"{taxable.Total:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
} }
@@ -536,19 +573,23 @@ namespace AdvertsingProfitControl
{ {
case 16: case 16:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Total sales writer.RenderBeginTag(HtmlTextWriterTag.Td);//Total sales
writer.Write("1. Total Sales"); writer.Write("1. Total Sales");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if(sales != null && sales.TotalSales != 0) writer.Write($@"{sales.TotalSales:N2}"); writer.Write($@"{sales.TotalSales:N2}");
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 17: case 17:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Less cost of sales writer.RenderBeginTag(HtmlTextWriterTag.Td);//Less cost of sales
writer.Write("2. Less Cost of Sales"); writer.Write("2. Less Cost of Sales");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
if (invoices.Count > 0) if (invoices.Count > 0)
@@ -568,45 +609,45 @@ namespace AdvertsingProfitControl
break; break;
case 19: case 19:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "border-top:none"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "border-top:none");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//dollar gross amount writer.RenderBeginTag(HtmlTextWriterTag.Td);//dollar gross amount
writer.Write("<br>");//Empty cell writer.Write("<br>");//Empty cell
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right");
writer.RenderBeginTag(HtmlTextWriterTag.Td); 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)
var dollarGross = sales.TotalSales - invoices.Sum(x => x.InvoiceNetAmountAtCost); writer.Write($@"{dollarGross:N2}");
if(dollarGross != 0)
writer.Write($@"{dollarGross:N2}");
}
} }
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 20: 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.RenderBeginTag(HtmlTextWriterTag.Td);//Gross dollar percentage
writer.Write("% Gross Profit"); writer.Write("% Gross Profit");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right; border-left:none"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:right; border-left:none");
writer.RenderBeginTag(HtmlTextWriterTag.Td); 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)
var grossDollarPercentage = (sales.TotalSales - invoices.Sum(x => x.InvoiceNetAmountAtCost)) / sales.TotalSales; writer.Write($@"{grossDollarPercentage:P}");
if(grossDollarPercentage != 0)
writer.Write($@"{grossDollarPercentage:P}");
}
} }
writer.RenderEndTag(); writer.RenderEndTag();
break; break;
case 21: case 21:
writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "text-align:left");
if (sales == null) writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//Weekly department Expense writer.RenderBeginTag(HtmlTextWriterTag.Td);//Weekly department Expense
writer.Write("Est. Wkly. Dept. Expense"); writer.Write("Est. Wkly. Dept. Expense");
writer.RenderEndTag(); writer.RenderEndTag();
if (sales == null) break;
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write("<br>"); writer.Write("<br>");
writer.RenderEndTag(); writer.RenderEndTag();
+25 -8
View File
@@ -190,7 +190,6 @@ namespace AdvertsingProfitControl
var adSpecialIndex = -1; var adSpecialIndex = -1;
for (var i = 0; i < 25; i++) for (var i = 0; i < 25; i++)
{ {
var skipCheck = false;
if (i < projections.Count) if (i < projections.Count)
{ {
if (projections[i].FkAdSpecialId != null) if (projections[i].FkAdSpecialId != null)
@@ -203,7 +202,6 @@ namespace AdvertsingProfitControl
writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.Td);
writer.Write(projections[i].AdSpecial.Name); writer.Write(projections[i].AdSpecial.Name);
writer.RenderEndTag(); //ad special cell writer.RenderEndTag(); //ad special cell
skipCheck = true;
SelectCostAnalysisCell(i, ref writer, actualA, actualB, departmentRecord, comments); SelectCostAnalysisCell(i, ref writer, actualA, actualB, departmentRecord, comments);
writer.RenderEndTag(); //end ad special row writer.RenderEndTag(); //end ad special row
} }
@@ -276,7 +274,7 @@ namespace AdvertsingProfitControl
//Pad //Pad
AppendPaddingRow(ref writer); AppendPaddingRow(ref writer);
} }
if(!skipCheck) SelectCostAnalysisCell(adSpecialIndex != -1 ? i + 1 : i, ref writer, actualA, actualB, departmentRecord, comments); SelectCostAnalysisCell(adSpecialIndex != -1 ? i + 1 : i, ref writer, actualA, actualB, departmentRecord, comments);
writer.RenderEndTag();//tr writer.RenderEndTag();//tr
} }
//Create the totals row //Create the totals row
@@ -312,7 +310,7 @@ namespace AdvertsingProfitControl
writer.AddAttribute(HtmlTextWriterAttribute.Style, "border-right:double"); writer.AddAttribute(HtmlTextWriterAttribute.Style, "border-right:double");
writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2"); writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2");
writer.RenderBeginTag(HtmlTextWriterTag.Td);//actual sales B (total profit return) writer.RenderBeginTag(HtmlTextWriterTag.Td);//actual sales B (total profit return)
writer.Write("(B) " + $"{actualB:N2}"); writer.Write("(B) " + $"{actualB:N2}");
writer.RenderEndTag();//end actual sales A (total profit return) writer.RenderEndTag();//end actual sales A (total profit return)
writer.RenderEndTag();//end totals row writer.RenderEndTag();//end totals row
//end totals row //end totals row
@@ -402,25 +400,44 @@ namespace AdvertsingProfitControl
private void SelectCostAnalysisCell(int rowIndex, ref HtmlTextWriter writer, decimal? actualA, decimal? actualB, WeeklySale departmentRecord, Note comments) private void SelectCostAnalysisCell(int rowIndex, ref HtmlTextWriter writer, decimal? actualA, decimal? actualB, WeeklySale departmentRecord, Note comments)
{ {
if (actualA == null)
{
actualA = 0;
}
if (actualB == null)
{
actualB = 0;
}
if (comments == null)
{
comments = new Note { Remark = string.Empty };
}
if (departmentRecord == null)
{
departmentRecord = new WeeklySale {TotalSales = 0};
}
switch (rowIndex) switch (rowIndex)
{ {
case 0: case 0:
RenderCostsAnalysisCell(CostAnalysisCells.SalesProduced, ref writer, actualA, "3"); RenderCostsAnalysisCell(CostAnalysisCells.SalesProduced, ref writer, actualA, "3");
break; break;
case 3: case 3:
if (departmentRecord != null) RenderCostsAnalysisCell(CostAnalysisCells.RemainingSales, ref writer, departmentRecord.TotalSales - actualA, "4");
RenderCostsAnalysisCell(CostAnalysisCells.RemainingSales, ref writer, departmentRecord.TotalSales - actualA, "4");
break; break;
case 7: case 7:
RenderCostsAnalysisCell(CostAnalysisCells.ProfitReturnFromAdItems, ref writer, actualB, "3"); RenderCostsAnalysisCell(CostAnalysisCells.ProfitReturnFromAdItems, ref writer, actualB, "3");
break; break;
case 10: case 10:
//get cross profit return //get cross profit return
var s = (decimal) 0.3; var s = (decimal) 0.3; //0.3 is the shrink TODO:Change the shrink into a variable.
RenderCostsAnalysisCell(CostAnalysisCells.ProfitReturnFromRemainingSales, ref writer, s * (departmentRecord.TotalSales - actualA), "5"); RenderCostsAnalysisCell(CostAnalysisCells.ProfitReturnFromRemainingSales, ref writer, s * (departmentRecord.TotalSales - actualA), "5");
break; break;
case 15: case 15:
var x = (decimal) 0.3 * (departmentRecord.TotalSales - actualA); var x = (decimal) 0.3 * (departmentRecord.TotalSales - actualA); //0.3 is the shrink
RenderCostsAnalysisCell(CostAnalysisCells.TotalProfitReturn, ref writer, x + actualB, "4"); RenderCostsAnalysisCell(CostAnalysisCells.TotalProfitReturn, ref writer, x + actualB, "4");
break; break;
case 19: case 19:
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.3.0.0")] [assembly: AssemblyVersion("3.4.0.0")]
[assembly: AssemblyFileVersion("3.3.0.0")] [assembly: AssemblyFileVersion("3.4.0.0")]