From ac16bbc05cb4dde33d70f79f4d5893177990cde1 Mon Sep 17 00:00:00 2001 From: Garritt McCune Date: Sat, 21 Jan 2017 23:20:59 -0600 Subject: [PATCH] Add and modify forms texted with real data. Fixed a few crash bugs and precision errors. Fixed the Actual Sales table in Access was missing a row. Add sample data to the database. --- AdvertsingProfitControl/APCDatabase.accdb | Bin 819200 -> 851968 bytes AdvertsingProfitControl/APCTemplate.accdb | Bin 675840 -> 819200 bytes .../AdvertsingProfitControl.csproj | 1 - AdvertsingProfitControl/DatabaseWriter.cs | 8 +-- AdvertsingProfitControl/FrmMain.cs | 20 ++++++-- AdvertsingProfitControl/NewAddRecord.cs | 47 +++++++++++++----- AdvertsingProfitControl/NewModifyRecord.cs | 20 +++++--- ...AdvertsingProfitControl.vshost.application | 4 +- ...dvertsingProfitControl.vshost.exe.manifest | 17 +++++-- 9 files changed, 83 insertions(+), 34 deletions(-) diff --git a/AdvertsingProfitControl/APCDatabase.accdb b/AdvertsingProfitControl/APCDatabase.accdb index 8d3b5bf4134bbf123038e62735a294b8a339b777..3a240f41fe4de9a410cc11e25e9e8d9a3fdbd219 100644 GIT binary patch delta 9138 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 SiRp#!SX?J=umL5?BzXWt%}mk& diff --git a/AdvertsingProfitControl/APCTemplate.accdb b/AdvertsingProfitControl/APCTemplate.accdb index 46342c1eee93315ea678f3c70ecda6ddf1eee7dc..68c4dc9e269df06ae7fb393f23adfa598fd61c4c 100644 GIT binary patch delta 4572 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 Y&-9CaoGH^k#B&NDrCfG!%EibW0Pybt_5c6? delta 1257 zcmZo@Fltz!xq*p~QGc@_-+RW%3VeK<1TOJ2GcY`uuE@=*JxM`;(QvY$f)TGF0|FRs z4p2D2&p2hWpn(yi;pCVAh0Q4jdu*6~eBW%Cki|5;z>mdjT0T4fWSwk%Ru;x99841z zN=}w5XxY59z?yOM-9l}a%?f2IjGHscXK+m1V8hD7n9jpAaiRERnFjNX3ws$iKWLoB zIJv%AdE>%#o=p>&1eo7&FoWe6EZewHj&bvYg(q1iA6b^Y*=zYWj)@!0Hf@-f#<3!v z-+0!8Cl1pOyy24KOaE9ez`(#Tg@NJBivK*@&xtYqVrLZ(ezktq^s{n|l8i#_&*d1m zKbK>YF4Rfm0eNl`GXp~;8;AwLj1Y?9LaTGPA`=6HA2$ON1NU~l2}~Z0)B7hfy_oD9 zBqy!-|33qh76XGe0|Uc^l^hcqz`B~*85p>xUvyxWFxgRAT*~$T ze+Dq>`2QcIokfd*K^LrT`hkmV*3<1TvB*qcWy~VGeeq{QC#KOYD#mvmq#TzG_OZs6tJrog(Ei50AE`X(h-M}4?5 zL6}+v5JLz=zzqfSz$R~8c#mhB0jn%Cqs(+UW7c>vuxi2jw9J&~K;PWr1W*d`m!Ce_ zm{mgn>>#0f|Hw?RsNBYdraaReSVb7;Z5MT5)s|;+_&-@tz8|Fw?A z6-4N?Ik0bY;9zo)nZm;abpi*&a()l~=X|sJO#5#2y7F$~*|=~D&-P6{907}kp0fLd zIr@N9GBYq-=;Qy%zH#9?=IL`DaH?#Vwcr$H*{+z*xrb%@RvS*=V(uhHW{^?_1_qbu zyc;+>Ctu3f+ql7mar=*roLqH0Q@LS=2{TL=FyKTrue - diff --git a/AdvertsingProfitControl/DatabaseWriter.cs b/AdvertsingProfitControl/DatabaseWriter.cs index ce22b0e..513c661 100644 --- a/AdvertsingProfitControl/DatabaseWriter.cs +++ b/AdvertsingProfitControl/DatabaseWriter.cs @@ -153,10 +153,10 @@ namespace AdvertsingProfitControl //11:FK_DateID oleDbCommand.Parameters.AddWithValue("Sold", salesTable.Rows[i][1]); oleDbCommand.Parameters.AddWithValue("SalesPrice", salesTable.Rows[i][2]); - oleDbCommand.Parameters.AddWithValue("TotalSales", int.Parse(salesTable.Rows[i][3].ToString())); - oleDbCommand.Parameters.AddWithValue("Cost", int.Parse(salesTable.Rows[i][4].ToString())); - oleDbCommand.Parameters.AddWithValue("ProfitReturn", int.Parse(salesTable.Rows[i][5].ToString())); - oleDbCommand.Parameters.AddWithValue("TotalProfitReturn", int.Parse(salesTable.Rows[i][6].ToString())); + oleDbCommand.Parameters.AddWithValue("TotalSales", double.Parse(salesTable.Rows[i][3].ToString())); + oleDbCommand.Parameters.AddWithValue("Cost", double.Parse(salesTable.Rows[i][4].ToString())); + oleDbCommand.Parameters.AddWithValue("ProfitReturn", double.Parse(salesTable.Rows[i][5].ToString())); + oleDbCommand.Parameters.AddWithValue("TotalProfitReturn", double.Parse(salesTable.Rows[i][6].ToString())); oleDbCommand.Parameters.AddWithValue("FK_AdItemID", int.Parse(salesTable.Rows[i][7].ToString())); oleDbCommand.Parameters.AddWithValue("RowAttribute", int.Parse(salesTable.Rows[i][8].ToString())); oleDbCommand.Parameters.AddWithValue("adSpecialID", int.Parse(salesTable.Rows[i][9].ToString())); diff --git a/AdvertsingProfitControl/FrmMain.cs b/AdvertsingProfitControl/FrmMain.cs index b6d7952..69f7afd 100644 --- a/AdvertsingProfitControl/FrmMain.cs +++ b/AdvertsingProfitControl/FrmMain.cs @@ -29,9 +29,9 @@ namespace AdvertsingProfitControl var databaseTracker = new DatabaseTracker(); var databaseReader = new DatabaseReader(); monthCalendar.BoldedDates = databaseReader.RetrieveDates(databaseTracker.DatabaseConnectionString).ToArray(); - RowParsing.AdSpecialGroups.AddRange(databaseReader.ReturnGroupNameList(databaseTracker.DatabaseConnectionString)); ConstructApcDataGridViews(); ConstructInvoicesDataGridView(); + RowParsing.AdSpecialGroups.AddRange(databaseReader.ReturnGroupNameList(databaseTracker.DatabaseConnectionString)); var date = databaseReader.RetrieveMostRecentDate(databaseTracker.DatabaseConnectionString); monthCalendar.SelectionStart = date; _currentActiveDate = date; @@ -360,6 +360,16 @@ namespace AdvertsingProfitControl { var databaseTracker = new DatabaseTracker(); var databaseReader = new DatabaseReader(); + if (monthCalendar.BoldedDates.Length == 0) + { + //The database is most likely empty so halt everything. + dateTimeGroupBox.Text = @"The database appears to be empty."; + modifyRecordMainMenu.Enabled = false; + modifyRecordMainMenu.ToolTipText = @"There are no records to modify."; + return; + } + modifyRecordMainMenu.Enabled = true; + modifyRecordMainMenu.ToolTipText = @""; var dateId = databaseReader.RetrieveDateIdByDateString(date.ToString("d"), databaseTracker.DatabaseConnectionString); if (dateId == 0) @@ -836,9 +846,10 @@ namespace AdvertsingProfitControl continue; //Apply formatting to the only cells that will have currency values in them. case 4: - var netAmountAtCost = double.Parse(invoices.Rows[rowIndex].ItemArray[cellIndex].ToString()).ToString("N2"); - if (netAmountAtCost != "0.00") + var netAmountAtCost = double.Parse(invoices.Rows[rowIndex].ItemArray[cellIndex].ToString()); + if (netAmountAtCost.ToString("N2") != "0.00") { + _totalInvoicePurchases += netAmountAtCost; cell.Value = netAmountAtCost; } row.Cells.Add(cell); @@ -846,8 +857,7 @@ namespace AdvertsingProfitControl case 5: var netAmoundExtendedRetail = double.Parse(invoices.Rows[rowIndex].ItemArray[cellIndex].ToString()); if (netAmoundExtendedRetail.ToString("N2") != "0.00") - { - _totalInvoicePurchases += netAmoundExtendedRetail; + { cell.Value = netAmoundExtendedRetail.ToString("N2"); } row.Cells.Add(cell); diff --git a/AdvertsingProfitControl/NewAddRecord.cs b/AdvertsingProfitControl/NewAddRecord.cs index 45f389c..2a776e9 100644 --- a/AdvertsingProfitControl/NewAddRecord.cs +++ b/AdvertsingProfitControl/NewAddRecord.cs @@ -1048,6 +1048,18 @@ namespace AdvertsingProfitControl rowContents[i] = projectionsDataGridView.Rows[e.RowIndex].Cells[i].EditedFormattedValue.ToString(); } break; + case (int)SalesTableColumns.ProfitReturn: + //IF the Cost cell is empty then place 0.00 into the array as a place holder value (assuming this row is a HeaderRow). + if (projectionsDataGridView.Rows[e.RowIndex].Cells[i].EditedFormattedValue.ToString() == "") + { + rowContents[i] = ""; + } + //ELSE place the value from the Projections table into the array, since Cost can be determined before actual data is used. + else + { + rowContents[i] = projectionsDataGridView.Rows[e.RowIndex].Cells[i].EditedFormattedValue.ToString(); + } + break; case (int)SalesTableColumns.IsDirty: rowContents[i] = true; break; @@ -1576,6 +1588,9 @@ namespace AdvertsingProfitControl case (int)SalesTableColumns.Cost: rowContents[i] = actualSalesDataGridView.Rows[e.RowIndex].Cells[i].EditedFormattedValue.ToString(); break; + case (int)SalesTableColumns.ProfitReturn: + rowContents[i] = projectionsDataGridView.Rows[e.RowIndex].Cells[i].EditedFormattedValue.ToString(); + break; case (int)SalesTableColumns.IsDirty: rowContents[i] = true; break; @@ -1731,7 +1746,7 @@ namespace AdvertsingProfitControl }; if (name.Contains("ID")) { - //column.Visible = false; + column.Visible = false; } projectionsDataGridView.Columns.Add(column); } @@ -1742,7 +1757,7 @@ namespace AdvertsingProfitControl Name = name, HeaderText = TextFormat.AddSpacesToSentence(name, false), ValueType = typeof(bool), - //Visible = false, + Visible = false, SortMode = DataGridViewColumnSortMode.NotSortable }; projectionsDataGridView.Columns.Add(column); @@ -1761,6 +1776,10 @@ namespace AdvertsingProfitControl SortMode = DataGridViewColumnSortMode.NotSortable, MaxInputLength = 20 }; + if (name.Contains("ID")) + { + column.Visible = false; + } inventoryDataGridView.Columns.Add(column); } else @@ -1770,7 +1789,7 @@ namespace AdvertsingProfitControl Name = name, HeaderText = TextFormat.AddSpacesToSentence(name, false), ValueType = typeof(bool), - //Visible = false, + Visible = false, SortMode = DataGridViewColumnSortMode.NotSortable }; inventoryDataGridView.Columns.Add(column); @@ -1789,6 +1808,10 @@ namespace AdvertsingProfitControl SortMode = DataGridViewColumnSortMode.NotSortable, MaxInputLength = 20 }; + if (name.Contains("ID")) + { + column.Visible = false; + } actualSalesDataGridView.Columns.Add(column); } else @@ -1798,7 +1821,7 @@ namespace AdvertsingProfitControl Name = name, HeaderText = TextFormat.AddSpacesToSentence(name, false), ValueType = typeof(bool), - //Visible = false, + Visible = false, SortMode = DataGridViewColumnSortMode.NotSortable }; actualSalesDataGridView.Columns.Add(column); @@ -1827,7 +1850,7 @@ namespace AdvertsingProfitControl }; if (name.Contains("ID")) { - //column.Visible = false; + column.Visible = false; } invoicesDataGridView.Columns.Add(column); } @@ -1837,7 +1860,7 @@ namespace AdvertsingProfitControl { Name = name, ValueType = typeof(bool), - //Visible = false, + Visible = false, SortMode = DataGridViewColumnSortMode.NotSortable }; invoicesDataGridView.Columns.Add(column); @@ -2450,7 +2473,7 @@ namespace AdvertsingProfitControl continue; } //Check to see if the row is dirty. - if (!(bool)row.Cells[(int)SalesTableColumns.IsDirty].Value) + if (!(bool)row.Cells[(int)SalesTableColumns.IsDirty].EditedFormattedValue) { //If it is not then continue on to the next row. continue; @@ -2476,11 +2499,11 @@ namespace AdvertsingProfitControl } //Determine the row's attribute. var rowAttribute = 0; //Zero (0) means no grouping, its not a header nor a member. - if ((bool)row.Cells[(int)SalesTableColumns.IsHeaderRow].Value && !(bool)row.Cells[(int)SalesTableColumns.IsMemberRow].Value) + if ((bool)row.Cells[(int)SalesTableColumns.IsHeaderRow].EditedFormattedValue && !(bool)row.Cells[(int)SalesTableColumns.IsMemberRow].EditedFormattedValue) { rowAttribute = 1; } - else if ((bool)row.Cells[(int)SalesTableColumns.IsMemberRow].Value && !(bool)row.Cells[(int)SalesTableColumns.IsHeaderRow].Value) + else if ((bool)row.Cells[(int)SalesTableColumns.IsMemberRow].EditedFormattedValue && !(bool)row.Cells[(int)SalesTableColumns.IsHeaderRow].EditedFormattedValue) { rowAttribute = 2; } @@ -2607,7 +2630,7 @@ namespace AdvertsingProfitControl continue; } //Check to see if the row is dirty. - if (!(bool)row.Cells[(int)InventoryTableColumns.IsDirty].Value) + if (!(bool)row.Cells[(int)InventoryTableColumns.IsDirty].EditedFormattedValue) { //If it is not then continue on to the next row. continue; @@ -2632,11 +2655,11 @@ namespace AdvertsingProfitControl } //Determine the row's attribute. var rowAttribute = 0; //Zero (0) means no grouping, its not a header nor a member. - if ((bool)row.Cells[(int)InventoryTableColumns.IsHeaderRow].Value && !(bool)row.Cells[(int)InventoryTableColumns.IsMemberRow].Value) + if ((bool)row.Cells[(int)InventoryTableColumns.IsHeaderRow].EditedFormattedValue && !(bool)row.Cells[(int)InventoryTableColumns.IsMemberRow].EditedFormattedValue) { rowAttribute = 1; } - else if ((bool)row.Cells[(int)InventoryTableColumns.IsMemberRow].Value && !(bool)row.Cells[(int)InventoryTableColumns.IsHeaderRow].Value) + else if ((bool)row.Cells[(int)InventoryTableColumns.IsMemberRow].EditedFormattedValue && !(bool)row.Cells[(int)InventoryTableColumns.IsHeaderRow].EditedFormattedValue) { rowAttribute = 2; } diff --git a/AdvertsingProfitControl/NewModifyRecord.cs b/AdvertsingProfitControl/NewModifyRecord.cs index 30e914b..dbbab17 100644 --- a/AdvertsingProfitControl/NewModifyRecord.cs +++ b/AdvertsingProfitControl/NewModifyRecord.cs @@ -1779,7 +1779,7 @@ namespace AdvertsingProfitControl }; if (name.Contains("ID")) { - //column.Visible = false; + column.Visible = false; } projectionsDataGridView.Columns.Add(column); } @@ -1790,7 +1790,7 @@ namespace AdvertsingProfitControl Name = name, HeaderText = TextFormat.AddSpacesToSentence(name, false), ValueType = typeof(bool), - //Visible = false, + Visible = false, SortMode = DataGridViewColumnSortMode.NotSortable }; projectionsDataGridView.Columns.Add(column); @@ -1809,6 +1809,10 @@ namespace AdvertsingProfitControl SortMode = DataGridViewColumnSortMode.NotSortable, MaxInputLength = 20 }; + if (name.Contains("ID")) + { + column.Visible = false; + } inventoryDataGridView.Columns.Add(column); } else @@ -1818,7 +1822,7 @@ namespace AdvertsingProfitControl Name = name, HeaderText = TextFormat.AddSpacesToSentence(name, false), ValueType = typeof(bool), - //Visible = false, + Visible = false, SortMode = DataGridViewColumnSortMode.NotSortable }; inventoryDataGridView.Columns.Add(column); @@ -1837,6 +1841,10 @@ namespace AdvertsingProfitControl SortMode = DataGridViewColumnSortMode.NotSortable, MaxInputLength = 20 }; + if (name.Contains("ID")) + { + column.Visible = false; + } actualSalesDataGridView.Columns.Add(column); } else @@ -1846,7 +1854,7 @@ namespace AdvertsingProfitControl Name = name, HeaderText = TextFormat.AddSpacesToSentence(name, false), ValueType = typeof(bool), - //Visible = false, + Visible = false, SortMode = DataGridViewColumnSortMode.NotSortable }; actualSalesDataGridView.Columns.Add(column); @@ -3245,7 +3253,7 @@ namespace AdvertsingProfitControl } if (displayInformation) informationLabel.Text += @"Successfully saved inventory." + Environment.NewLine; } - else if (projectionsTrimmingStatus == TrimmingOperationResult.NoChangesRequired) + else if (inventoryTrimmingStatus == TrimmingOperationResult.NoChangesRequired) { if (displayInformation) informationLabel.Text += @"No changes to inventory detected." + Environment.NewLine; } @@ -3298,7 +3306,7 @@ namespace AdvertsingProfitControl } if (displayInformation) informationLabel.Text += @"Successfully saved actual sales." + Environment.NewLine; } - else if (projectionsTrimmingStatus == TrimmingOperationResult.NoChangesRequired) + else if (actualSalesTrimmingStatus == TrimmingOperationResult.NoChangesRequired) { if (displayInformation) informationLabel.Text += @"No changes to actual sales detected." + Environment.NewLine; } diff --git a/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.application b/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.application index 4fae155..9ca45df 100644 --- a/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.application +++ b/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.application @@ -7,14 +7,14 @@ - + - KVKYbzq19q7ADJ+LPTGDgJAvr64l2Kmoa+3avj6GEKs= + 4D9q8qCwiqDGT3of5bXJu3aFzAW8154WMEsO9/5DONI= diff --git a/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.exe.manifest b/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.exe.manifest index 1280fcb..90eb453 100644 --- a/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.exe.manifest +++ b/AdvertsingProfitControl/bin/Debug/AdvertsingProfitControl.vshost.exe.manifest @@ -43,14 +43,14 @@ - + - 4RF9KpTz/tkh9aGV9uAdFH9h8OP+W7p1PkgSLnYAU7o= + IDxVw5Mjas8mXXn3h6ET9uRIbyaYf3MJ7XGeYh9OL1Y= @@ -87,13 +87,22 @@ e48EkTyChGHXYJETENSLw7RKQ1LZ5ZDUghEtiv5DmqY= - + - BhxzzAVktfxM46PKaURg6/dVO+AoTuOm4bm2CLmjz1A= + nsG4CuZailUF1ECpDsxZlFsXSEJmyBXTAvuId+rQuQ8= + + + + + + + + + HWMXjUaEQtZd0vBm2k4ValXtZwmVzcqV0rERViSzOOc=