Exemplo n.º 1
0
 private void InsertRackElements()
 {
     //Create Elements for Order   = > this function needs to be added to Rack class in future!!!
     foreach (Element element in db.List_of_stock)
     {
         //Identify Handle Element
         if (element.Reference == "Coupelles")
         {
             //Set flag appropriately depending on inventory
             element.CheckifAvailable();
             if (checkBx_rackhandles4.Checked == true)
             {
                 //Create and add handles
                 Handle handle    = new Handle();
                 int    rackindex = rackcounter;
                 rackindex--;
                 handle.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                  element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                  element.Price_fournisseur2, element.Delay_fournisseur2);
                 for (int counter = 1; counter <= element.Quantity_per_rack; counter++)
                 {
                     rack.AddElements(handle);
                 }
             }
         }
         if (element.Reference == "Traverse Av")
         {
             if (element.Width == rack.Width)
             {
                 element.CheckifAvailable();
                 //Create Crossbeam
                 Frontal_crossbeam frontal_crossbeam = new Frontal_crossbeam(rack.Width, "Frontal Crossbeam");
                 //Set Price and dimensions from stock table
                 frontal_crossbeam.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                             element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                             element.Price_fournisseur2, element.Delay_fournisseur2);
                 for (int counter = 1; counter <= element.Quantity_per_rack; counter++)
                 {
                     rack.AddElements(frontal_crossbeam);
                 }
             }
         }
         if (element.Reference == "Traverse Ar")
         {
             if (element.Width == rack.Width)
             {
                 element.CheckifAvailable();
                 //Create Crossbeams
                 Rear_crossbeam rear_crossbeam = new Rear_crossbeam(rack.Width, "Rear Crossbeam");
                 rear_crossbeam.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                          element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                          element.Price_fournisseur2, element.Delay_fournisseur2);
                 for (int counter = 1; counter <= element.Quantity_per_rack; counter++)
                 {
                     rack.AddElements(rear_crossbeam);
                 }
             }
         }
         if (element.Reference == "Traverse GD")
         {
             if (element.Depth == rack.Depth)
             {
                 element.CheckifAvailable();
                 //Create Crossbeams
                 Left_Right_crossbeam left_right_crossbeam1 = new Left_Right_crossbeam(rack.Depth, "Left Crossbeam");
                 left_right_crossbeam1.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                                 element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                                 element.Price_fournisseur2, element.Delay_fournisseur2);
                 for (int counter = 1; counter <= element.Quantity_per_rack - 2; counter++)
                 {
                     rack.AddElements(left_right_crossbeam1);
                 }
                 Left_Right_crossbeam left_right_crossbeam2 = new Left_Right_crossbeam(rack.Depth, "Right Crossbeam");
                 left_right_crossbeam2.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                                 element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                                 element.Price_fournisseur2, element.Delay_fournisseur2);
                 for (int counter = 1; counter <= element.Quantity_per_rack - 2; counter++)
                 {
                     rack.AddElements(left_right_crossbeam2);
                 }
             }
         }
         if (element.Reference == "Tasseau")
         {
             if (element.Height == rack.Height)
             {
                 element.CheckifAvailable();
                 //Create WoodenBattens
                 WoodenBatten woodenBatten = new WoodenBatten(rack.Height);
                 woodenBatten.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                        element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                        element.Price_fournisseur2, element.Delay_fournisseur2);
                 for (int counter = 1; counter <= element.Quantity_per_rack; counter++)
                 {
                     //Add these elements to list contained in rack
                     rack.AddElements(woodenBatten);
                 }
             }
         }
         if (element.Reference == "Porte")
         {
             //1 ou 2 cm maximum de marge pour la largeur
             if (((element.Width == rack.Width / 2 + 1) || (element.Width == rack.Width / 2 + 2)) && (element.Height == rack.Height) && (element.Color == comboBx_doorcolor4.Text))
             {
                 element.CheckifAvailable();
                 //Doors
                 if (checkBx_rackdoors4.Checked == true)
                 {
                     //Create and add doors
                     Left_Door  leftdoor  = new Left_Door(rack.Height, rack.Width, comboBx_doorcolor4.Text);
                     Right_Door rightdoor = new Right_Door(rack.Height, rack.Width, comboBx_rightdoor.Text);
                     leftdoor.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                        element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                        element.Price_fournisseur2, element.Delay_fournisseur2);
                     rightdoor.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                         element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                         element.Price_fournisseur2, element.Delay_fournisseur2);
                     rack.AddElements(leftdoor);
                     rack.AddElements(rightdoor);
                 }
             }
         }
         if (element.Reference == "Panneau HB")
         {
             if ((element.Depth == rack.Depth) && (element.Width == rack.Width) && (element.Color == comboBx_topPanel.Text))
             {
                 element.CheckifAvailable();
                 //Create Panels
                 name = "Top Panel";
                 PanelTB toppanel = new PanelTB(name, comboBx_topPanel.Text, cabinetkit.Width, cabinetkit.Depth); //Premier panneauHB
                 toppanel.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                    element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                    element.Price_fournisseur2, element.Delay_fournisseur2);
                 //Add these elements to list contained in rack
                 rack.AddElements(toppanel);
                 rack.Colors[1] = comboBx_topPanel.Text;
             }
         }
         if (element.Reference == "Panneau HB")
         {
             if ((element.Depth == rack.Depth) && (element.Width == rack.Width) && (element.Color == comboBx_BottmPanel.Text))
             {
                 element.CheckifAvailable();
                 name = "Bottom Panel";
                 PanelTB bottompanel = new PanelTB(name, comboBx_BottmPanel.Text, cabinetkit.Width, cabinetkit.Depth); //Deuxieme panneauHB
                 bottompanel.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                       element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                       element.Price_fournisseur2, element.Delay_fournisseur2);
                 //Add these elements to list contained in rack
                 rack.AddElements(bottompanel);
                 rack.Colors[2] = comboBx_BottmPanel.Text;
             }
         }
         if (element.Reference == "Panneau GD")
         {
             if ((element.Depth == rack.Depth) && (element.Height == rack.Height) && (element.Color == comboBx_LPanel4.Text))
             {
                 element.CheckifAvailable();
                 //Create Panels
                 name = "Left Panel";
                 PanelLR leftpanel = new PanelLR(name, comboBx_LPanel4.Text, cabinetkit.Depth);  //Premier panneauGD
                 leftpanel.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                     element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                     element.Price_fournisseur2, element.Delay_fournisseur2);
                 //Add these elements to list contained in rack
                 rack.AddElements(leftpanel);
                 rack.Colors[3] = comboBx_LPanel4.Text;
             }
         }
         if (element.Reference == "Panneau GD")
         {
             if ((element.Depth == rack.Depth) && (element.Height == rack.Height) && (element.Color == comboBx_Rpanel4.Text))
             {
                 element.CheckifAvailable();
                 name = "Right Panel";
                 PanelLR rightpanel = new PanelLR(name, comboBx_Rpanel4.Text, cabinetkit.Depth);  //Deuxieme panneauGD
                 rightpanel.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                      element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                      element.Price_fournisseur2, element.Delay_fournisseur2);
                 //Add these elements to list contained in rack
                 rack.AddElements(rightpanel);
                 rack.Colors[4] = comboBx_Rpanel4.Text;
             }
         }
         if (element.Reference == "Panneau Ar")
         {
             if ((element.Width == rack.Width) && (element.Height == rack.Height) && (element.Color == comboBx_RearPanel4.Text))
             {
                 element.CheckifAvailable();
                 name = "Rear Panel";
                 RearPanel rearpanel = new RearPanel(name, comboBx_RearPanel4.Text, cabinetkit.Width);  //1 Panneau Arriere
                 rearpanel.SetValues(element.Code, element.Price_client, element.Dimensions_cm, element.Quantity_per_rack,
                                     element.Available, element.Price_fournisseur1, element.Delay_fournisseur1,
                                     element.Price_fournisseur2, element.Delay_fournisseur2);
                 rack.AddElements(rearpanel);
                 rack.Colors[0] = comboBx_RearPanel4.Text;
             }
         }
     }
 }