First version of the Main form that is able to pull all the required data from the SQL database. Holiday detection is disabled for this build. Fixed some bugs with the debug database conversion code. Still missing Ad Special data in the conversion code.

This commit is contained in:
2017-03-27 14:39:42 -05:00
parent 36fe75d761
commit 9da9540969
39 changed files with 104913 additions and 871 deletions
+119 -52
View File
@@ -77,14 +77,15 @@ namespace AdvertsingProfitControl
}
}
private void moveOverButton_Click(object sender, EventArgs e)
private void MoveOverButton_Click(object sender, EventArgs e)
{
if (existingDatesListBox.SelectedIndex != -1)
if (existingDatesListBox.SelectedIndex == -1) return;
foreach (var index in existingDatesListBox.SelectedItems)
{
datesToConvertListBox.Items.Add(existingDatesListBox.SelectedItem);
existingDatesListBox.Items.Remove(existingDatesListBox.SelectedItem);
moveOverButton.Enabled = false;
datesToConvertListBox.Items.Add(index);
//existingDatesListBox.Items.Remove(index);
}
moveOverButton.Enabled = false;
}
private void convertButton_Click(object sender, EventArgs e)
@@ -93,6 +94,25 @@ namespace AdvertsingProfitControl
{
return;
}
//Start by bringing in all the ad items then the suppliers.
var adItems = GetAdItems();
foreach (var adItem in adItems)
{
var db = new AdvertisingProfitControlModel();
if (db.AdItems.Any(x => x.Name == adItem)) continue;
var temp = new AdItem { Name = TextFormat.FormatAdItemText(adItem) };
db.AdItems.Add(temp);
db.SaveChanges();
}
var suppliers = GetSuppliers();
foreach (var supplier in suppliers)
{
var db = new AdvertisingProfitControlModel();
if (db.Suppliers.Any(x => x.Name == supplier)) continue;
var temp = new Supplier { Name = supplier };
db.Suppliers.Add(temp);
db.SaveChanges();
}
foreach (var date in datesToConvertListBox.Items)
{
var oldDateId = GetDateIdByDateString(date.ToString());
@@ -112,15 +132,8 @@ namespace AdvertsingProfitControl
private void MassiveWriteFunction(string dateString, DataTable projections, DataTable inventory, DataTable actualSales, DataTable invoice, DataTable weeklySales, DataTable taxableTable, DataTable costOfSales, string comments)
{
//var dbT = new DatabaseTracker();
////Get a new ID number for the date supplied.
//var oleDbConnection = new OleDbConnection(dbT.DatabaseConnectionString);
//var oleDbCommand = new OleDbCommand
//{
// Connection = oleDbConnection
//};
try
{
{
using (var transaction = new TransactionScope())
{
var db = new AdvertisingProfitControlModel();
@@ -163,7 +176,7 @@ namespace AdvertsingProfitControl
var adItem = new AdItem();
var adItemId = 0;
//var id = int.Parse(projections.Rows[rowIndex][0].ToString());
var spam = projections.Rows[rowIndex][0].ToString();
var spam = TextFormat.FormatAdItemText(projections.Rows[rowIndex][0].ToString());
if (db.AdItems.Any(x => x.Name == spam))
{
//Exists
@@ -176,7 +189,6 @@ namespace AdvertsingProfitControl
adItem.Name = projections.Rows[rowIndex][0].ToString();
db.AdItems.Add(adItem);
adItemId = adItem.Id;
}
projectionedSale.Sold = projections.Rows[rowIndex][1].ToString();
projectionedSale.SalePrice = projections.Rows[rowIndex][2].ToString();
@@ -219,7 +231,7 @@ namespace AdvertsingProfitControl
var inventoryObject = new Inventory();
AdItem adItem;
var adItemId = 0;
var spam = actualSales.Rows[i][0].ToString();
var spam = TextFormat.FormatAdItemText(inventory.Rows[i][0].ToString());
if (db.AdItems.Any(x => x.Name == spam))
{
//Exists
@@ -261,7 +273,7 @@ namespace AdvertsingProfitControl
//Get the ID number of the ad item.
AdItem adItem;
var adItemId = 0;
var spam = actualSales.Rows[rowIndex][0].ToString();
var spam = TextFormat.FormatAdItemText(actualSales.Rows[rowIndex][0].ToString());
if (db.AdItems.Any(x => x.Name == spam))
{
//Exists
@@ -339,43 +351,54 @@ namespace AdvertsingProfitControl
// oleDbCommand.ExecuteNonQuery();
// oleDbCommand.Parameters.Clear();
}
var weeklySale = new WeeklySale
if (weeklySales.Rows.Count == 1)
{
Sunday = decimal.Parse(weeklySales.Rows[0][0].ToString()),
Monday = decimal.Parse(weeklySales.Rows[0][1].ToString()),
Tuesday = decimal.Parse(weeklySales.Rows[0][2].ToString()),
Wednesday = decimal.Parse(weeklySales.Rows[0][3].ToString()),
Thursday = decimal.Parse(weeklySales.Rows[0][4].ToString()),
Friday = decimal.Parse(weeklySales.Rows[0][5].ToString()),
Saturday = decimal.Parse(weeklySales.Rows[0][6].ToString()),
TotalSales = decimal.Parse(weeklySales.Rows[0][7].ToString()),
FkDateId = date.Id
};
db.WeeklySales.Add(weeklySale);
//Comes from DatabaseReader class, so offset by one because zero is the ID number.
var taxable = new Taxable
var weeklySale = new WeeklySale
{
Sunday = decimal.Parse(weeklySales.Rows[0][0].ToString()),
Monday = decimal.Parse(weeklySales.Rows[0][1].ToString()),
Tuesday = decimal.Parse(weeklySales.Rows[0][2].ToString()),
Wednesday = decimal.Parse(weeklySales.Rows[0][3].ToString()),
Thursday = decimal.Parse(weeklySales.Rows[0][4].ToString()),
Friday = decimal.Parse(weeklySales.Rows[0][5].ToString()),
Saturday = decimal.Parse(weeklySales.Rows[0][6].ToString()),
TotalSales = decimal.Parse(weeklySales.Rows[0][7].ToString()),
FkDateId = date.Id
};
db.WeeklySales.Add(weeklySale);
}
if (taxableTable.Rows.Count == 1)
{
Sunday = decimal.Parse(taxableTable.Rows[0][1].ToString()),
Monday = decimal.Parse(taxableTable.Rows[0][2].ToString()),
Tuesday = decimal.Parse(taxableTable.Rows[0][3].ToString()),
Wednesday = decimal.Parse(taxableTable.Rows[0][4].ToString()),
Thursday = decimal.Parse(taxableTable.Rows[0][5].ToString()),
Friday = decimal.Parse(taxableTable.Rows[0][6].ToString()),
Saturday = decimal.Parse(taxableTable.Rows[0][7].ToString()),
Total = decimal.Parse(taxableTable.Rows[0][8].ToString()),
FkDateId = date.Id
};
db.Taxables.Add(taxable);
//Comes from DatabaseReader class, so offset by one because zero is the ID number.
var taxable = new Taxable
{
Sunday = decimal.Parse(taxableTable.Rows[0][1].ToString()),
Monday = decimal.Parse(taxableTable.Rows[0][2].ToString()),
Tuesday = decimal.Parse(taxableTable.Rows[0][3].ToString()),
Wednesday = decimal.Parse(taxableTable.Rows[0][4].ToString()),
Thursday = decimal.Parse(taxableTable.Rows[0][5].ToString()),
Friday = decimal.Parse(taxableTable.Rows[0][6].ToString()),
Saturday = decimal.Parse(taxableTable.Rows[0][7].ToString()),
Total = decimal.Parse(taxableTable.Rows[0][8].ToString()),
FkDateId = date.Id
};
db.Taxables.Add(taxable);
}
//SELECT CostOfSalesAnalysis.ID, CostOfSalesAnalysis.SalesPerManHour, CostOfSalesAnalysis.SalaryPercentage, CostOfSalesAnalysis.SalaryDollars, CostOfSalesAnalysis.Supplies FROM CostOfSalesAnalysis WHERE FK_DateID = ?
var cost = new CostAnalysi
if (costOfSales.Rows.Count == 1)
{
SalesPerManHour = decimal.Parse(costOfSales.Rows[0][1].ToString()),
SalaryPercentage = decimal.Parse(costOfSales.Rows[0][2].ToString()),
SalaryDollar = decimal.Parse(costOfSales.Rows[0][3].ToString()),
Supplies = decimal.Parse(costOfSales.Rows[0][4].ToString()),
FkDateId = date.Id
};
db.CostAnalysis.Add(cost);
var cost = new CostAnalysi
{
SalesPerManHour = decimal.Parse(costOfSales.Rows[0][1].ToString()),
SalaryPercentage = decimal.Parse(costOfSales.Rows[0][2].ToString()),
SalaryDollar = decimal.Parse(costOfSales.Rows[0][3].ToString()),
Supplies = decimal.Parse(costOfSales.Rows[0][4].ToString()),
FkDateId = date.Id
};
db.CostAnalysis.Add(cost);
}
if (!string.IsNullOrEmpty(comments))
{
var comment = new Note
@@ -400,10 +423,54 @@ namespace AdvertsingProfitControl
MessageBox.Show(e.Message);
//oleDbTransaction?.Rollback();
}
finally
}
public List<string> GetAdItems()
{
var adItems = new List<string>();
var oleDbCommand = new OleDbCommand
{
//oleDbConnection.Close();
CommandText = "SELECT AdItem.AdItem FROM AdItem ORDER BY AdItem.AdItem ASC"
};
var connection = new OleDbConnection(_connectionString);
oleDbCommand.Connection = connection;
using (connection)
{
using (oleDbCommand)
{
connection.Open();
var reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
adItems.Add(reader[0].ToString());
}
}
}
return adItems;
}
public List<string> GetSuppliers()
{
var adItems = new List<string>();
var oleDbCommand = new OleDbCommand
{
CommandText = "SELECT Supplier.SupplierName FROM Supplier ORDER BY Supplier.SupplierName ASC"
};
var connection = new OleDbConnection(_connectionString);
oleDbCommand.Connection = connection;
using (connection)
{
using (oleDbCommand)
{
connection.Open();
var reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
adItems.Add(reader[0].ToString());
}
}
}
return adItems;
}
public int GetSupplierId(string supplierName)