Add: Update end_time attribute in sqlite db when customer is marked 'ready'

This commit is contained in:
kougyoku 2019-11-07 09:48:30 -08:00
parent c603d8fed6
commit 8f0d8e509c
1 changed files with 42 additions and 1 deletions

View File

@ -39,6 +39,11 @@ namespace QueueSys
public string status { get; set; }
}
public class endTimeModel
{
public string end_time { get; set; }
}
public class SqliteDataAccess
{
public List<EmployeeView> LoadEmployeeView()
@ -90,7 +95,21 @@ namespace QueueSys
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
string strQuery = "INSERT INTO archive(id, customer_name,num_bags,employee,status_id,start_time) SELECT id,customer_name,num_bags,employee,status_id,start_time FROM active_customers WHERE id=@id";
//Check to see if the customer already has an end_time
string strQuery = "SELECT end_time FROM active_customers WHERE id=@id";
List<endTimeModel> etm = new List<endTimeModel>();
var output = cnn.Query<endTimeModel>(strQuery, new { id = customer.id });
etm = output.ToList();
if(etm[0].end_time != null)
{
strQuery = "INSERT INTO archive(id, customer_name,num_bags,employee,status_id,start_time,end_time) SELECT id,customer_name,num_bags,employee,status_id,start_time,end_time FROM active_customers WHERE id=@id";
}
else
{
strQuery = "INSERT INTO archive(id, customer_name,num_bags,employee,status_id,start_time) SELECT id,customer_name,num_bags,employee,status_id,start_time FROM active_customers WHERE id=@id";
}
cnn.Execute(strQuery, customer);
strQuery = "DELETE FROM active_customers WHERE id=@id";
@ -118,6 +137,28 @@ namespace QueueSys
}
}
public void UpdateEndTime(int customer_id_in, string trans)
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
switch(trans)
{
case "add":
{
string strQuery = "UPDATE active_customers SET end_time = datetime() WHERE id=@customer_id";
cnn.Execute(strQuery, new { customer_id = customer_id_in });
break;
}
case "remove":
{
string strQuery = "UPDATE active_customers SET end_time = NULL WHERE id=@customer_id";
cnn.Execute(strQuery, new { customer_id = customer_id_in });
break;
}
}
}
}
public List<ReportView> QueryReports()
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))