Skip to content

Commit

Permalink
virker slet ikke som det skal, men makeschedule() metode
Browse files Browse the repository at this point in the history
  • Loading branch information
Thom2026 committed Apr 7, 2015
1 parent 0ce7ae2 commit 7777d3b
Show file tree
Hide file tree
Showing 7 changed files with 256 additions and 6 deletions.
117 changes: 114 additions & 3 deletions JamFactory/Controller/Database/ProductionDB.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,21 @@ public static bool CheckLogin(int PersonID, string Password)

while (reader.Read())
{
_Tasks.Add(new Model.Task(new Model.TaskType(reader["Description"].ToString(),
_Tasks.Add(new Model.Task(new Model.Machine(Convert.ToInt32(reader["MachineID"]),
reader["Name"].ToString(),
Convert.ToInt32(reader["Capacity"]),
Convert.ToDouble(reader["ScrapValue"]),
Convert.ToDouble(reader["AuquistionValue"]),
Convert.ToInt32(reader["LifeTime"])),
new Model.TaskType(reader["Description"].ToString(),
Convert.ToInt32(reader["TaskTypeID"])),
Convert.ToDateTime(reader["StartTime"].ToString()),
Convert.ToDateTime(reader["EndTime"].ToString()),
new Model.Employee(int.Parse(reader["ID"].ToString()),
Convert.ToString(reader["Password"]),
Convert.ToDateTime(reader["Hired"].ToString()),
reader["Name"].ToString()) ));
reader["Name"].ToString(),
reader["WorkShift"].ToString())));
}
}
catch (SqlException E)
Expand All @@ -101,15 +108,17 @@ public static void AddTask(List<Model.Task> schedule)
{
try
{
conn.Open();
foreach (Model.Task task in schedule)
{

SqlCommand cmd = new SqlCommand("2_AddTask", conn);
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@EmployeeID", task.Employee.ID));
cmd.Parameters.Add(new SqlParameter("@StartTime", task.StartTime));
cmd.Parameters.Add(new SqlParameter("@EndTime", task.EndTime));
cmd.Parameters.Add(new SqlParameter("@TaskTypeID", task.WorkTask.ID));
cmd.Parameters.Add(new SqlParameter("@MachineID", task.Machine.MachineID));
cmd.ExecuteNonQuery();
}
}
Expand All @@ -124,5 +133,107 @@ public static void AddTask(List<Model.Task> schedule)
}
}
}
public static List<Model.Employee> GetEmployees(int employeeId)
{
List<Model.Employee> employees = new List<Model.Employee>();
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
try
{
SqlCommand cmd = new SqlCommand("3_GetEmployeeFromPersonID", conn);
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@PersonID", employeeId));
SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
employees.Add(new Model.Employee(int.Parse(reader["ID"].ToString()),
Convert.ToString(reader["Password"]),
Convert.ToDateTime(reader["Hired"].ToString()),
reader["Name"].ToString(),
reader["WorkShift"].ToString()));
}
}
catch (SqlException E)
{
System.Windows.MessageBox.Show(E.Message);
}
finally
{
conn.Close();
conn.Dispose();
}
return employees;
}
}
public static List<Model.TaskType> GetTaskTypes(int taskTypeId)
{
// Gets all tasks within the parameters
List<Model.TaskType> taskTypes = new List<Model.TaskType>();
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
try
{
SqlCommand cmd = new SqlCommand("GetTaskType", conn);
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@ID", taskTypeId));
SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
taskTypes.Add(new Model.TaskType(reader["Description"].ToString(),
Convert.ToInt32(reader["ID"])));
}
}
catch (SqlException E)
{
System.Windows.MessageBox.Show(E.Message);
}
finally
{
conn.Close();
conn.Dispose();
}
return taskTypes;
}
}
public static List<Model.Machine> GetMachines(int machineId)
{
List<Model.Machine> machines = new List<Model.Machine>();
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
try
{
SqlCommand cmd = new SqlCommand("GetMachine", conn);
conn.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@ID", machineId));
SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())
{
machines.Add(new Model.Machine(Convert.ToInt32(reader["ID"]),
reader["Name"].ToString(),
Convert.ToInt32(reader["Capacity"]),
Convert.ToDouble(reader["ScrapValue"]),
Convert.ToDouble(reader["AcquisitionValue"]),
Convert.ToInt32(reader["LifeTime"])));
}
}
catch (SqlException E)
{
System.Windows.MessageBox.Show(E.Message);
}
finally
{
conn.Close();
conn.Dispose();

}
return machines;
}
}
}
}
125 changes: 125 additions & 0 deletions JamFactory/Controller/ProductionController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ public static void CheckLogin(int personID, string password)

if (LogIn == true) {
View.Group_B.ScheduleView scheduleView = new View.Group_B.ScheduleView();
if (password == "Admin")
{
scheduleView.MakeSchedule.Visibility = Visibility.Visible;
}
scheduleView.Show();
App.Current.Windows[0].Close();

Expand Down Expand Up @@ -112,5 +116,126 @@ public static void GetTasks(int EmployeeID, DateTime starttime, DateTime endtime
}
return ListOfTaskInList;
}
public List<Model.Task> MakeSchedule(int weekNumber)
{
List<Model.TaskType> taskTypes = Database.ProductionDB.GetTaskTypes(0);
List<Model.Employee> employees = Database.ProductionDB.GetEmployees(0);
List<Model.Machine> machines = Database.ProductionDB.GetMachines(0);
List<DateTime> daysInWeek = new List<DateTime>();
daysInWeek.Add(Helper.Dates.FirstDateOfWeek(weekNumber));
daysInWeek.Add(Helper.Dates.FirstDateOfWeek(weekNumber).AddDays(1));
daysInWeek.Add(Helper.Dates.FirstDateOfWeek(weekNumber).AddDays(2));
daysInWeek.Add(Helper.Dates.FirstDateOfWeek(weekNumber).AddDays(3));
daysInWeek.Add(Helper.Dates.FirstDateOfWeek(weekNumber).AddDays(4));

List<Model.Task> Schedule = new List<Model.Task>();
foreach (DateTime date in daysInWeek)
{
foreach (Model.Machine machine in machines)
{
for (int i = 0; i < employees.Count; i++)
{
foreach (Model.TaskType taskType in taskTypes)
{
if (employees[i].WorkShift == "Day")
{
if (machine.Name.Substring(0, machine.Name.Length - 2) == "Linie")
{
if (taskType.Description == "Påfyldning")
{
Model.Task assign1 = new Model.Task(machine, taskType, date.AddHours(6), date.AddHours(14), employees[i]);
i++;
Model.Task assign2 = new Model.Task(machine, taskType, date.AddHours(6), date.AddHours(14), employees[i]);
i++;
Model.Task assign3 = new Model.Task(machine, taskType, date.AddHours(6), date.AddHours(14), employees[i]);
i++;
Model.Task assign4 = new Model.Task(machine, taskType, date.AddHours(6), date.AddHours(14), employees[i]);
Schedule.Add(assign1);
Schedule.Add(assign2);
Schedule.Add(assign3);
Schedule.Add(assign4);
}
}
if (machine.Name.Substring(0, machine.Name.Length - 2) == "Kar")
{
if (taskType.Description == "Fremstilling")
{
Model.Task assign1 = new Model.Task(machine, taskType, date.AddHours(6), date.AddHours(14), employees[i]);
i++;
Model.Task assign2 = new Model.Task(machine, taskType, date.AddHours(6), date.AddHours(14), employees[i]);
Schedule.Add(assign1);
Schedule.Add(assign2);
}
}
}
if (employees[i].WorkShift == "Evening")
{
if (machine.Name.Substring(0, machine.Name.Length - 2) == "Linie")
{
if (taskType.Description == "Påfyldning")
{
Model.Task assign1 = new Model.Task(machine, taskType, date.AddHours(14), date.AddHours(22), employees[i]);
i++;
Model.Task assign2 = new Model.Task(machine, taskType, date.AddHours(14), date.AddHours(22), employees[i]);
i++;
Model.Task assign3 = new Model.Task(machine, taskType, date.AddHours(14), date.AddHours(22), employees[i]);
i++;
Model.Task assign4 = new Model.Task(machine, taskType, date.AddHours(14), date.AddHours(22), employees[i]);
Schedule.Add(assign1);
Schedule.Add(assign2);
Schedule.Add(assign3);
Schedule.Add(assign4);
}
}
if (machine.Name.Substring(0, machine.Name.Length - 2) == "Kar")
{
if (taskType.Description == "Fremstilling")
{
Model.Task assign1 = new Model.Task(machine, taskType, date.AddHours(14), date.AddHours(22), employees[i]);
i++;
Model.Task assign2 = new Model.Task(machine, taskType, date.AddHours(14), date.AddHours(22), employees[i]);
Schedule.Add(assign1);
Schedule.Add(assign2);
}
}
}
if (employees[i].WorkShift == "Night")
{
if (machine.Name.Substring(0, machine.Name.Length - 2) == "Linie")
{
if (taskType.Description == "Påfyldning")
{
Model.Task assign1 = new Model.Task(machine, taskType, date.AddHours(22), date.AddHours(30), employees[i]);
i++;
Model.Task assign2 = new Model.Task(machine, taskType, date.AddHours(22), date.AddHours(30), employees[i]);
i++;
Model.Task assign3 = new Model.Task(machine, taskType, date.AddHours(22), date.AddHours(30), employees[i]);
i++;
Model.Task assign4 = new Model.Task(machine, taskType, date.AddHours(22), date.AddHours(30), employees[i]);
Schedule.Add(assign1);
Schedule.Add(assign2);
Schedule.Add(assign3);
Schedule.Add(assign4);
}
}
if (machine.Name.Substring(0, machine.Name.Length - 2) == "Kar")
{
if (taskType.Description == "Fremstilling")
{
Model.Task assign1 = new Model.Task(machine, taskType, date.AddHours(22), date.AddHours(30), employees[i]);
i++;
Model.Task assign2 = new Model.Task(machine, taskType, date.AddHours(22), date.AddHours(30), employees[i]);
Schedule.Add(assign1);
Schedule.Add(assign2);
}
}
}
}
}
}
}
Database.ProductionDB.AddTask(Schedule);
return Schedule;
}
}
}
5 changes: 4 additions & 1 deletion JamFactory/Model/Employee.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ public class Employee : Person {
public string Password { get; set; }
public DateTime Hired { get; set; }

public Employee(int id, string password, DateTime hired, string name) {
public string WorkShift { get; set; }

public Employee(int id, string password, DateTime hired, string name, string workShift) {
this.WorkShift = workShift;
this.ID = id;
this.Password = password;
this.Hired = hired;
Expand Down
4 changes: 3 additions & 1 deletion JamFactory/Model/Machine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@

namespace JamFactory.Model {
public class Machine {
public int MachineID { get; set; }
public string Name { get; set; }
public int Capacity { get; set; }
public double ScrapValue { get; set; }
public double AuquistionValue { get; set; }
public int LifeTime { get; set; }
public Machine(string name, int capacity, double scrapvalue, double auquistionvalue, int lifetime) {
public Machine(int ID, string name, int capacity, double scrapvalue, double auquistionvalue, int lifetime) {
this.MachineID = ID;
this.Name = name;
this.Capacity = capacity;
this.ScrapValue = scrapvalue;
Expand Down
4 changes: 3 additions & 1 deletion JamFactory/Model/Task.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
namespace JamFactory.Model {
public class Task {
public Model.TaskType WorkTask;
public Model.Machine WorkStation;
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public Model.Employee Employee;
public Model.Machine Machine;

public Task(Model.TaskType workTask, DateTime starttime, DateTime endtime, Model.Employee employee)
public Task(Model.Machine workStation, Model.TaskType workTask, DateTime starttime, DateTime endtime, Model.Employee employee)
{
this.WorkStation = workStation;
this.WorkTask = workTask;
this.StartTime = starttime;
this.EndTime = endtime;
Expand Down
1 change: 1 addition & 0 deletions JamFactory/View/Group B/ScheduleView.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<Label x:Name="Year" Content="" HorizontalAlignment="Left" Margin="4,24,0,0" VerticalAlignment="Top" Width="79" HorizontalContentAlignment="Center" Grid.Column="1"/>
<Button Name="Logout" Content="Log ud" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Grid.Column="1" Margin="501,385,0,0" Click="Logout_Click"/>
<Button Name="Print" Content="Print" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Grid.Column="1" Margin="407,385,0,0" RenderTransformOrigin="0.463,0.448" Click="Print_Click"/>
<Button Name="MakeSchedule" Content="Lave skema" Grid.Column="1" HorizontalAlignment="Left" Margin="294,385,0,0" VerticalAlignment="Top" Width="75" Click="MakeSchedule_Click" Visibility="Collapsed"/>

</Grid>
</Window>
6 changes: 6 additions & 0 deletions JamFactory/View/Group B/ScheduleView.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -105,5 +105,11 @@ private void Print_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Arbejdsplan sendt til printer.");
}

private void MakeSchedule_Click(object sender, RoutedEventArgs e)
{
Controller.ProductionController Pcntl = new ProductionController();
Pcntl.MakeSchedule(WeekNumber);
}
}
}

0 comments on commit 7777d3b

Please sign in to comment.