Files

594 lines
22 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
namespace AdvertsingProfitControl
{
/// <summary>
/// Deprecated!
/// </summary>
class RetrieveFromDatabase
{
DatabaseTracker gDatabaseLocation = new DatabaseTracker();
LogConsole console = LogConsole.GetStaticInstance;
private string gConnectionString;
public RetrieveFromDatabase()
{
//First thing, get the connection string from the DatabaseTracker.
gConnectionString = gDatabaseLocation.DatabaseConnectionString;
}
private DataTable ExecuteQuery(OleDbCommand sqlCommand)
{
DataTable table = new DataTable();
try
{
sqlCommand.Connection.Open();
OleDbDataAdapter a = new OleDbDataAdapter(sqlCommand);
a.Fill(table);
}
catch (Exception e)
{
console.WriteToLog(LogConsole.Level.Error, "Error attempting to retrieve database from the database.");
console.WriteToLog(LogConsole.Level.Debug, "Retrieval error: " + e.Message);
}
finally
{
sqlCommand.Connection.Close();
}
return table;
}
public string RetrieveMostRecentDateId()
{
string dateID = "";
string selectString = "SELECT WeekEnding.ID FROM WeekEnding WHERE WeekEnding.EndOfWeekDate = (SELECT MAX(WeekEnding.EndOfWeekDate) FROM WeekEnding)";
DataTable table = new DataTable();
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Connection = connection;
connection.Open();
var reader = command.ExecuteReader();
while (reader != null && reader.Read())
{
dateID = reader[0].ToString();
}
connection.Close();
return dateID;
}
public string RetrieveAdItemId(string adItem)
{
string ID = "-1";
DataTable table = new DataTable();
string selectString = "SELECT AdItem.ID FROM AdItem WHERE AdItem.AdItem = @ID";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.AddWithValue("@ID", adItem);
table = ExecuteQuery(command);
if (table.Rows[0][0].ToString() != "")
{
ID = table.Rows[0][0].ToString();
}
return ID;
}
public string RetrieveDateIdByDateString(string dateString)
{
string dateID = "-1";
DataTable table = new DataTable();
string selectString = "SELECT WeekEnding.ID FROM WeekEnding WHERE WeekEnding.EndOfWeekDate = @dateString";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.AddWithValue("@dateString", dateString);
table = ExecuteQuery(command);
try
{
if (table.Rows[0][0].ToString() != "")
{
dateID = table.Rows[0][0].ToString();
}
}
catch (Exception e)
{
dateID = "-1";
}
return dateID;
}
public string RetrieveComments(string dateId)
{
string comments;
DataTable table = new DataTable();
string selectString = "SELECT Comment.Comment FROM Comment WHERE Comment.FK_DateID = @dateString";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.AddWithValue("@dateString", dateId);
table = ExecuteQuery(command);
if (table.Rows.Count == 0)
{
DateTime time = Convert.ToDateTime(RetrieveDateStringByID(dateId));
comments = "No comments to display for " + time.ToLongDateString() + ".";
}
else
{
comments = table.Rows[0][0].ToString();
}
return comments;
}
public string RetrieveDateStringByID(string dateID)
{
string dateString = "";
DataTable table = new DataTable();
string selectString = "SELECT WeekEnding.EndOfWeekDate FROM WeekEnding WHERE WeekEnding.ID = dateID ORDER BY EndOfWeekDate ASC";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.AddWithValue("dateID", dateID);
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
command.Connection = connection;
connection.Open();
adapter.Fill(table);
connection.Close();
table = ExecuteQuery(command);
dateString = table.Rows[0][0].ToString();
return dateString;
}
public string RetrieveGroupIDByString(string groupName)
{
string groupID = "";
string sqlCommand = "SELECT GroupCategory.ID FROM GroupCategory WHERE GroupCategory.GroupDescription = groupString";
var connection = new OleDbConnection(gConnectionString);
var command = new OleDbCommand(sqlCommand, connection);
command.Parameters.AddWithValue("groupString", groupName);
try
{
var reader = command.ExecuteReader();
while (reader != null && reader.Read())
{
groupID = reader[0].ToString();
}
}
catch (Exception e)
{
return "";
}
finally
{
connection.Close();
}
return groupID;
}
public List<string> ReturnGroupNameList()
{
string sqlCommand = "SELECT GroupCategory.GroupDescription FROM GroupCategory WHERE NOT GroupDescription = 'HeaderRow' AND NOT GroupDescription = 'MemberRow'";
var connection = new OleDbConnection(gConnectionString);
var command = new OleDbCommand(sqlCommand, connection);
List<string> groupNames = new List<string>();
try
{
connection.Open();
var reader = command.ExecuteReader();
while (reader != null && reader.Read())
{
groupNames.Add(reader[0].ToString());
}
}
catch (Exception e)
{
return groupNames;
}
finally
{
connection.Close();
}
return groupNames;
}
public AutoCompleteStringCollection GetAdItemsSuggestionList()
{
AutoCompleteStringCollection autoCompleteList = new AutoCompleteStringCollection();
var command = "SELECT AdItem.AdItem FROM AdItem ORDER BY AdItem.AdItem ASC";
DataTable table = new DataTable();
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand commandObject = new OleDbCommand(command, connection);
commandObject.Connection.Open();
OleDbDataAdapter a = new OleDbDataAdapter(commandObject);
a.Fill(table);
commandObject.Connection.Close();
int i = 0;
foreach (DataRow row in table.Rows)
{
if (row[0].ToString() != "")
{
autoCompleteList.Add(row[0].ToString());
}
i++;
}
return autoCompleteList;
}
public AutoCompleteStringCollection GetSupplierSuggestionList()
{
AutoCompleteStringCollection autoCompleteList = new AutoCompleteStringCollection();
string command = "SELECT SupplierName FROM Supplier ORDER BY SupplierName ASC";
DataTable table = new DataTable();
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand commandObject = new OleDbCommand(command, connection);
commandObject.Connection.Open();
OleDbDataAdapter a = new OleDbDataAdapter(commandObject);
a.Fill(table);
commandObject.Connection.Close();
int i = 0;
foreach (DataRow row in table.Rows)
{
if (row[0].ToString() != "")
{
autoCompleteList.Add(row[0].ToString());
}
i++;
}
return autoCompleteList;
}
public DataTable ReturnProjectionsTable(string dateID)
{
DataTable dataTable = new DataTable();
string sqlCommand = "SELECT AdItem.AdItem, APC.ProjectionSold, APC.ProjectionSalePrice, APC.ProjectionTotalSales, APC.ProjectionCost, APC.ProjectionProfitReturn, APC.ProjectionTotalProfitReturn, FK_GroupID FROM (AdItem INNER JOIN APC ON AdItem.ID = APC.FK_AdItemID) WHERE FK_DateID = DateID";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(sqlCommand, connection);
command.Parameters.Add(new OleDbParameter("DateID", dateID));
dataTable = ExecuteQuery(command);
return dataTable;
}
public DataTable ReturnActualSales(string dateID)
{
DataTable dataTable = new DataTable();
string selectString = "SELECT AdItem.AdItem, APC.ActualSold, APC.ActualSalePrice, APC.ActualTotalSales, APC.ActualCost, APC.ActualProfitReturn, APC.ActualTotalProfitReturn, FK_GroupID FROM (AdItem INNER JOIN APC ON AdItem.ID = APC.FK_AdItemID) WHERE FK_DateID = DateID";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.Add(new OleDbParameter("DateID", dateID));
dataTable = ExecuteQuery(command);
return dataTable;
}
public DataTable ReturnInventoryTable(string dateID)
{
DataTable dataTable = new DataTable();
string selectString = "SELECT AdItem.AdItem, APC.BeginingInventory, APC.Received, APC.TotalInventory, APC.EndingInventory, FK_GroupID FROM (AdItem INNER JOIN APC ON AdItem.ID = APC.FK_AdItemID) WHERE FK_DateID = DateID";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.Add(new OleDbParameter("DateID", dateID));
dataTable = ExecuteQuery(command);
return dataTable;
}
public DataTable ReturnGroupIDTable(string dateID)
{
DataTable dataTable = new DataTable();
string[] groupNameCollection;
string selectString = "SELECT APC.FK_GroupID FROM APC WHERE FK_DateID = DateID";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.Add(new OleDbParameter("DateID", dateID));
try
{
}
catch (Exception e)
{
}
finally
{
connection.Close();
}
return dataTable;
}
public string ReturnGroupNameFromGroupId(string id)
{
string name = "";
string selectString = "SELECT GroupDescription FROM GroupCategory WHERE ID = ?";
OleDbConnection connection = new OleDbConnection(gConnectionString);
OleDbCommand command = new OleDbCommand(selectString, connection);
command.Parameters.AddWithValue("GroupID", id);
try
{
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader != null && reader.Read())
{
name = reader[0].ToString();
}
}
catch (Exception e)
{
}
finally
{
connection.Close();
}
return name;
}
public DataTable ReturnInvoiceTable(string dateID)
{
DataTable dataTable = new DataTable();
OleDbCommand oleDbCommand = new OleDbCommand();
oleDbCommand.CommandText = "SELECT FK_Supplier, InvoiceNumber, InvoiceDate, InvoiceNetAmountAtCost, InvoiceNetAmount, InvoiceNote FROM Invoice WHERE FK_DateID = ?";
OleDbConnection oleDbConnection = new OleDbConnection(gConnectionString);
oleDbCommand.Connection = oleDbConnection;
oleDbCommand.Parameters.AddWithValue("DateID", dateID);
try
{
OleDbDataAdapter adapater = new OleDbDataAdapter(oleDbCommand);
int index = 0;
oleDbCommand.Connection.Open();
adapater.Fill(dataTable);
string[] supplierNames = new string[dataTable.Rows.Count];
foreach (DataRow row in dataTable.Rows)
{
supplierNames[index] = RetrieveSupplierNameByID(row[0].ToString());
index++;
}
dataTable.Columns.RemoveAt(0);
dataTable.Columns.Add("SupplierName");
dataTable.Columns[5].SetOrdinal(0);
dataTable.Columns[0].DataType = typeof (string);
index = 0;
foreach (string name in supplierNames)
{
dataTable.Rows[index][0] = name;
index++;
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
oleDbCommand.Connection.Close();
}
return dataTable;
}
/// <summary>
/// Infrastructure
/// </summary>
/// <param name="supplierID"></param>
/// <returns></returns>
private string RetrieveSupplierNameByID(string supplierID)
{
string supplierName = "";
OleDbCommand oleDbCommand = new OleDbCommand();
oleDbCommand.CommandText = "SELECT SupplierName FROM Supplier WHERE ID = ?";
oleDbCommand.Parameters.AddWithValue("ID", supplierID);
OleDbConnection oleDbConnection = new OleDbConnection(gConnectionString);
oleDbCommand.Connection = oleDbConnection;
oleDbCommand.Connection.Open();
OleDbDataReader reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
supplierName = reader[0].ToString();
}
oleDbConnection.Close();
return supplierName;
}
public DataTable ReturnWeeklySalesFromDateID(string dateID)
{
DataTable dataTable = new DataTable();
OleDbCommand oleDbCommand = new OleDbCommand();
oleDbCommand.CommandText = "SELECT Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, TotalSales FROM WeeklySales WHERE FK_DateID = ?";
oleDbCommand.Parameters.AddWithValue("dateID", dateID);
OleDbConnection connection = new OleDbConnection(gConnectionString);
oleDbCommand.Connection = connection;
OleDbDataAdapter a = new OleDbDataAdapter(oleDbCommand);
try
{
oleDbCommand.Connection.Open();
a.Fill(dataTable);
}
catch (Exception e)
{
console.WriteToLog(LogConsole.Level.Error, e.Message);
}
finally
{
oleDbCommand.Connection.Close();
}
return dataTable;
}
public DataTable ReturnWeekEndingTable()
{
var weekendingDatesTeable = new DataTable();
var oleDbCommand = new OleDbCommand {CommandText = "SELECT EndOfWeekDate FROM WeekEnding ORDER BY EndOfWeekDate ASC"};
var connection = new OleDbConnection(gConnectionString);
oleDbCommand.Connection = connection;
try
{
var a = new OleDbDataAdapter(oleDbCommand);
a.Fill(weekendingDatesTeable);
}
catch (Exception e)
{
}
finally
{
connection.Close();
}
return weekendingDatesTeable;
}
public List<string> ReturnUniqueYearsList()
{
var datesList = new List<string>();
var uniqueDateSelection = new OleDbCommand();
uniqueDateSelection.CommandText =
"SELECT Distinct YEAR(EndOfWeekDate) FROM WeekEnding";
var connection = new OleDbConnection(gConnectionString);
uniqueDateSelection.Connection = connection;
try
{
connection.Open();
var reader = uniqueDateSelection.ExecuteReader();
while (reader != null && reader.Read())
{
datesList.Add(reader[0].ToString());
}
}
catch (OleDbException e)
{
console.WriteToLog(LogConsole.Level.Error, "An error has occurred trying to retrieve the list of dates.");
console.WriteToLog(LogConsole.Level.Debug, e.Message);
}
finally
{
connection.Close();
}
return datesList;
}
/// <summary>
/// Returns a list of months available based on the year supplied.
/// </summary>
/// <param name="year"></param>
/// <returns></returns>
public List<string> ReturnUniqueMonthsList(string year)
{
var datesList = new List<string>();
var uniqueDateSelection = new OleDbCommand();
uniqueDateSelection.CommandText =
"SELECT Distinct MONTH(EndOfWeekDate) FROM WeekEnding WHERE YEAR(EndOfWeekDate) = YEAR(#" + year + "#)";
var connection = new OleDbConnection(gConnectionString);
uniqueDateSelection.Connection = connection;
try
{
connection.Open();
var reader = uniqueDateSelection.ExecuteReader();
while (reader != null && reader.Read())
{
datesList.Add(reader[0].ToString());
}
}
catch (OleDbException e)
{
console.WriteToLog(LogConsole.Level.Error, "An error has occurred trying to retrieve the list of dates.");
console.WriteToLog(LogConsole.Level.Debug, e.Message);
}
finally
{
connection.Close();
}
return datesList;
}
public DateTime ReturnMostRecentDateString()
{
DateTime dateString = new DateTime();
var oleDbCommand = new OleDbCommand();
oleDbCommand.CommandText = "SELECT WeekEnding.EndOfWeekDate FROM WeekEnding WHERE WeekEnding.EndOfWeekDate = (SELECT MAX(WeekEnding.EndOfWeekDate) FROM WeekEnding)";
var connection = new OleDbConnection(gConnectionString);
oleDbCommand.Connection = connection;
try
{
connection.Open();
var reader = oleDbCommand.ExecuteReader();
while (reader != null && reader.Read())
{
dateString = (DateTime) reader[0];
}
}
catch (OleDbException e)
{
console.WriteToLog(LogConsole.Level.Error, "An error has occurred trying to retrieve the most recent date string.");
console.WriteToLog(LogConsole.Level.Debug, e.Message);
}
finally
{
connection.Close();
}
return dateString;
}
/// <summary>
/// Pattern Must Be: MM/*/YYYY
/// </summary>
/// <param name="dateString"></param>
/// <returns></returns>
public DataTable ReturnDateStringsLike(string dateString)
{
//Grabbing the year supplied and the last years dates:
//SELECT EndOfWeekDate FROM WeekEnding WHERE YEAR(DATEADD('yyyy', -1, #" + dateString + "#)) = YEAR(EndOFWeekDate) OR YEAR(#" + dateString + "#) = YEAR(EndOfWeekDate) ORDER BY EndOfWeekDate ASC
DataTable table = new DataTable();
OleDbCommand oleDbCommand = new OleDbCommand();
oleDbCommand.CommandText = "SELECT EndOfWeekDate FROM WeekEnding WHERE YEAR(#" + dateString + "#) = YEAR(EndOFWeekDate) ORDER BY EndOfWeekDate ASC";
//oleDbCommand.Parameters.AddWithValue("datePattern", dateString);
OleDbConnection connection = new OleDbConnection(gConnectionString);
oleDbCommand.Connection = connection;
connection.Open();
try
{
OleDbDataAdapter a = new OleDbDataAdapter(oleDbCommand);
a.Fill(table);
}
catch (Exception e)
{
}
finally
{
connection.Close();
}
return table;
}
}
}