Exemple #1
0
        static void Initialize_Recettes()
        {
            var data = GetFactoryDataJSON().recettes;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Recettes Table : Data To Procces : " + data.Count);
                int c = 1;

                foreach (var d in data)
                {
                    RECETTE r = new RECETTE();
                    r.RECETTE_TYPE      = d.type;
                    r.RECETTE_ADDITIF   = d.additifs;
                    r.RECETTE_ENROBAGE  = d.enrobage;
                    r.RECETTE_AROME     = d.arome;
                    r.RECETTE_GELIFIANT = d.gelifiant;
                    r.RECETTE_SUCRE     = d.sucre;

                    context.RECETTEs.Add(r);
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");
                    c++;
                }
                Console.WriteLine("---- Initialize Recettes Table : DONE ! ----");
                context.SaveChanges();
            }
        }
Exemple #2
0
        public static void Generate_Data_001()
        {
            List <object> objs = new List <object>();

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Getting Data - " + context.COMMANDEs.Count() + " rows to process");
                foreach (COMMANDE c in context.COMMANDEs)
                {
                    string bonbon_type = context.BONBONs.Where(t => t.BONBON_ID == c.BONBON_ID).FirstOrDefault().BONBON_TYPE;
                    int    quantite    = (int)c.COMMANDE_QUANTITE;
                    string pays        = context.PAYS.Where(p => p.PAYS_ID == c.PAYS_ID).FirstOrDefault().PAYS_NOM;

                    dynamic dyn = new ExpandoObject();
                    dyn.bonbon_type = bonbon_type;
                    dyn.quantite    = quantite;
                    dyn.pays_nom    = pays;
                    objs.Add(dyn);
                }
            }

            string path = Path.Combine(Environment.CurrentDirectory, @"_static_files", "mongoData_kpi_001.json");
            string json = JsonConvert.SerializeObject(objs);

            File.WriteAllText(path, json);
            Console.WriteLine("--- Writing DONE !");
        }
Exemple #3
0
        public static void Initialize_TauxVentes()
        {
            var data = GetFactoryDataJSON().taux_ventes_2016;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize TAUX_VENTES Table : Data To Procces : " + data.Count);
                int data_counter = 1;
                foreach (var d in data)
                {
                    TAUX_VENTES tv = new TAUX_VENTES();
                    //tv.TAUX_VENTE_ID = data_counter;
                    tv.TAUX_VENTE_ANNEE  = 2016;
                    tv.TAUX_VENTE_BONBON = d.type_bonbon;
                    tv.TAUX_VENTE_VALEUR = d.valeur;

                    context.TAUX_VENTES.Add(tv);

                    Console.WriteLine("-------- Data Added : (" + data_counter + "/" + data.Count + ")");
                    data_counter++;
                }

                context.SaveChanges();
                Console.WriteLine("---- Initialize TAUX_VENTES Table : DONE ! ----");
            }
        }
        public void PersistPerformances()
        {
            using (var context = new PalaisDuBonbonEntities())
            {
                foreach (COMMANDE com in processedOrders)
                {
                    context.COMMANDEs.Where(c => c.COMMANDE_ID == com.COMMANDE_ID).FirstOrDefault().COMMANDE_DATE_FABRICATION = com.COMMANDE_DATE_FABRICATION;
                }

                foreach (PERF_COMMANDES c in savedPerformances)
                {
                    if (context.PERF_COMMANDES.Any(p => p.COMMANDE_ID == c.COMMANDE_ID))
                    {
                        PERF_COMMANDES copy = context.PERF_COMMANDES.Where(p => p.COMMANDE_ID == c.COMMANDE_ID).FirstOrDefault();
                        copy.TEMPS_FABRICATION_LOT           = c.TEMPS_FABRICATION_LOT;
                        copy.PERF_MACHINE_FABRICATION_ID     = c.PERF_MACHINE_FABRICATION_ID;
                        copy.PERF_MACHINE_CONDITIONNEMENT_ID = -1;
                    }
                    else
                    {
                        context.PERF_COMMANDES.Add(c);
                    }
                }

                context.SaveChanges();
                Console.WriteLine("Fabrication Performances of Machine No " + _id + " SAVED IN DB !");
            }
        }
Exemple #5
0
        public static void Initialize_Couts()
        {
            var data = GetFactoryDataJSON().couts_bonbon;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize COUTS Table : Data To Procces : " + data.Count);
                int data_counter = 1;
                foreach (var d in data)
                {
                    COUT cout = new COUT();
                    cout.COUT_TYPE_BONBON     = d.type_bonbon;
                    cout.COUT_FABRICATION     = d.cout_fabrication;
                    cout.COUT_CONDITIONNEMENT = d.cout_conditionnement;
                    cout.COUT_EXPEDITION      = d.cout_expedition;
                    cout.COUT_GENERAL         = d.cout_general;

                    context.COUTS.Add(cout);
                    Console.WriteLine("-------- Data Added : (" + data_counter + "/" + data.Count + ")");
                    data_counter++;
                }

                context.SaveChanges();
                Console.WriteLine("---- Initialize COUTS Table : DONE ! ----");
            }
        }
Exemple #6
0
        public static void Drop_AllDynamicData()
        {
            Console.WriteLine("--- Begin REFRESH ALL DYNAMIC DATA ----");
            using (var context = new PalaisDuBonbonEntities())
            {
                int count_table_perf = 0;
                int max_table_perf   = context.PERF_COMMANDES.Count();

                int count_table_cmd = 0;
                int max_table_cmd   = context.COMMANDEs.Count();

                Console.WriteLine("--- Deleting Perf_Commandes Table");
                List <PERF_COMMANDES> cp_perf = new List <PERF_COMMANDES>(context.PERF_COMMANDES.ToList());
                context.PERF_COMMANDES.RemoveRange(cp_perf);
                //cp_perf.ForEach(perf => { context.PERF_COMMANDES.Remove(perf); Console.WriteLine("-------- perfs (" + count_table_perf+ "/" + max_table_perf + ")"); count_table_perf++; });
                Console.WriteLine("--- End");

                Console.WriteLine("--- **************************************");

                Console.WriteLine("--- Deleting Commandes Table");
                List <COMMANDE> cp_cmds = new List <COMMANDE>(context.COMMANDEs.ToList());
                context.COMMANDEs.RemoveRange(cp_cmds);
                //cp_cmds.ForEach(cmd => { context.COMMANDEs.Remove(cmd); Console.WriteLine("-------- cmds (" + count_table_cmd + "/" + max_table_cmd + ")"); count_table_cmd++; });

                Console.WriteLine("--- Saving changes...");
                context.SaveChanges();
                Console.WriteLine("--- Done ! ----");
            }
        }
Exemple #7
0
        /// <summary>
        /// This Function MUST be executed AFTER having populated the Variante Table.
        ///
        /// TO DO : Secure the function with checking on opening the connexion if Variante Table already exists,
        /// if not, execute the Initialize_VarianteData Method.
        /// </summary>
        static void Initialize_BonbonData()
        {
            var data = GetFactoryDataJSON();
            var data_types_bonbons = data.types_bonbon;
            var data_textures      = data.textures;
            var data_couleurs      = data.couleurs_bonbons;
            var data_variantes     = data.variantes;

            int data_count = data_types_bonbons.Count * data_textures.Count * data_couleurs.Count * data_variantes.Count;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Bonbon Table : Data To Procces : " + data.Count);
                int c = 1;
                foreach (var type_bonbon in data_types_bonbons)
                {
                    foreach (var texture in data_textures)
                    {
                        foreach (var couleur in data_couleurs)
                        {
                            foreach (var variante in data_variantes)
                            {
                                string _variante = variante;
                                BONBON bonbon    = new BONBON();

                                bonbon.BONBON_TYPE    = type_bonbon;
                                bonbon.BONBON_TEXTURE = texture;
                                bonbon.BONBON_COULEUR = couleur;
                                bonbon.VARIANTE       = context.VARIANTEs.FirstOrDefault(v => v.VARIANTE_NOM == _variante);
                                bonbon.VARIANTE_ID    = context.VARIANTEs.FirstOrDefault(v => v.VARIANTE_NOM == bonbon.VARIANTE.VARIANTE_NOM).VARIANTE_ID;

                                if (bonbon.VARIANTE == null)
                                {
                                    Console.WriteLine("ERROR ! bonbon.VARIANTE  Object is null !");
                                }

                                context.BONBONs.Add(bonbon);
                                Console.WriteLine("-------- Data Added : (" + c + "/" + data_count + ")");
                                c++;
                                if (c % 100 == 0)
                                {
                                    Console.WriteLine("Pushing to Database...");
                                    context.SaveChanges();
                                }
                            }
                        }
                    }
                }
                context.SaveChanges();
                Console.WriteLine("---- Initialize Bonbon Table : DONE ! ----");
            }
        }
Exemple #8
0
        static void Initialize_PrixLots()
        {
            var data = GetFactoryDataJSON().prix_lots_info;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Prix Lots Table : Data To Procces : " + data.Count * 3);
                int c = 1;

                foreach (var d in data)
                {
                    string lot_type = d.type;

                    PRIX_LOT pl_sachet = new PRIX_LOT();
                    pl_sachet.BONBON             = context.BONBONs.FirstOrDefault(b => b.BONBON_TYPE == lot_type);
                    pl_sachet.CONDITIONNEMENT    = context.CONDITIONNEMENTs.FirstOrDefault(cond => cond.CONDITIONNEMENT_NOM == "sachet");
                    pl_sachet.BONBON_ID          = pl_sachet.BONBON.BONBON_ID;
                    pl_sachet.CONDITIONNEMENT_ID = pl_sachet.CONDITIONNEMENT.CONDITIONNEMENT_ID;
                    pl_sachet.PRIX_LOT_PRIX      = d.sachet;
                    context.PRIX_LOT.Add(pl_sachet);
                    c++;
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");

                    PRIX_LOT pl_boite = new PRIX_LOT();
                    pl_boite.BONBON             = context.BONBONs.FirstOrDefault(b => b.BONBON_TYPE == lot_type);
                    pl_boite.CONDITIONNEMENT    = context.CONDITIONNEMENTs.FirstOrDefault(cond => cond.CONDITIONNEMENT_NOM == "boite");
                    pl_boite.BONBON_ID          = pl_boite.BONBON.BONBON_ID;
                    pl_boite.CONDITIONNEMENT_ID = pl_boite.CONDITIONNEMENT.CONDITIONNEMENT_ID;
                    pl_boite.PRIX_LOT_PRIX      = d.boite;
                    context.PRIX_LOT.Add(pl_boite);
                    c++;
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");

                    PRIX_LOT pl_echantillon = new PRIX_LOT();
                    pl_echantillon.BONBON             = context.BONBONs.FirstOrDefault(b => b.BONBON_TYPE == lot_type);
                    pl_echantillon.CONDITIONNEMENT    = context.CONDITIONNEMENTs.FirstOrDefault(cond => cond.CONDITIONNEMENT_NOM == "echantillon");
                    pl_echantillon.BONBON_ID          = pl_echantillon.BONBON.BONBON_ID;
                    pl_echantillon.CONDITIONNEMENT_ID = pl_echantillon.CONDITIONNEMENT.CONDITIONNEMENT_ID;
                    pl_echantillon.PRIX_LOT_PRIX      = d.echantillon;
                    context.PRIX_LOT.Add(pl_echantillon);
                    c++;
                    Console.WriteLine("-------- Data Added : (" + c + "/" + (data.Count * 3) + ")");

                    if ((c % 100) == 0)
                    {
                        context.SaveChanges();
                    }
                }
                context.SaveChanges();
                Console.WriteLine("---- Initialize Prix Lots Table : DONE ! ----");
            }
        }
        public bool IsCompatibleWith(COMMANDE cmd)
        {
            bool isCompatible = false;

            using (var context = new PalaisDuBonbonEntities())
            {
                string cmd_cond = context.CONDITIONNEMENTs.Where(c => c.CONDITIONNEMENT_ID == cmd.CONDITIONNEMENT_ID).FirstOrDefault().CONDITIONNEMENT_NOM;
                if (type == cmd_cond)
                {
                    isCompatible = true;
                }
                return(isCompatible);
            }
        }
        public bool IsCompatibleWith(COMMANDE cmd)
        {
            bool isCompatible = false;

            using (var context = new PalaisDuBonbonEntities())
            {
                string bonbon_variante = context.BONBONs.Where(b => b.BONBON_ID == cmd.BONBON_ID).FirstOrDefault().VARIANTE.VARIANTE_NOM;
                if (variantes.Contains(bonbon_variante))
                {
                    isCompatible = true;
                }
            }

            return(isCompatible);
        }
Exemple #11
0
        /// <summary>
        /// This Function MUST be executed AFTER having populated the Transport Table.
        ///
        /// TO DO : Secure the function with checking on opening the connexion if Transport Table already exists,
        /// if not, execute the Initialize_TransportInfo Method.
        /// </summary>
        static void Initialize_PaysData()
        {
            var data = GetFactoryDataJSON().pays;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Pays Table : Data To Procces : " + data.Count);
                int c = 1;

                List <string> transports_avion = new List <string>();
                transports_avion.Add("USA");
                transports_avion.Add("Canada");
                transports_avion.Add("Mexique");
                transports_avion.Add("Chine");

                List <string> transports_bateau = new List <string>();
                transports_bateau.Add("Japon");
                transports_bateau.Add("Afrique du Sud");


                foreach (var d in data)
                {
                    PAYS p = new PAYS();
                    p.PAYS_NOM = d.Value;

                    if (transports_bateau.Contains(d.Value))
                    {
                        p.PAYS_TRANSPORT = "bateau";
                    }
                    else if (transports_avion.Contains(d.Value))
                    {
                        p.PAYS_TRANSPORT = "avion";
                    }
                    else
                    {
                        p.PAYS_TRANSPORT = "camion";
                    }

                    context.PAYS.Add(p);
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");
                    c++;
                }

                context.SaveChanges();
                Console.WriteLine("---- Initialize Pays Table : DONE ! ----");
            }
        }
Exemple #12
0
 public static void Refresh_CommandesDates()
 {
     Console.WriteLine("--- Begin Refresh Commandes Dates ----");
     using (var context = new PalaisDuBonbonEntities())
     {
         int count = 0;
         int max   = context.COMMANDEs.Count();
         foreach (COMMANDE com in context.COMMANDEs)
         {
             com.COMMANDE_DATE_COMMANDE = GenerateRandomDateForYear(2016);
             count++;
             Console.WriteLine("-------- Process : (" + count.ToString() + "/" + max.ToString() + ")");
         }
         Console.WriteLine("--- Saving changes...");
         context.SaveChanges();
         Console.WriteLine("--- Done ! ----");
     }
 }
        public void PersistPerformances()
        {
            using (var context = new PalaisDuBonbonEntities())
            {
                foreach (COMMANDE c in processedCmds)
                {
                    context.COMMANDEs.Where(com => com.COMMANDE_ID == c.COMMANDE_ID).FirstOrDefault().COMMANDE_DATE_CONDITIONNEMENT = c.COMMANDE_DATE_CONDITIONNEMENT;
                }

                foreach (PERF_COMMANDES pc in savedPerf)
                {
                    context.PERF_COMMANDES.Where(p => p.COMMANDE_ID == pc.COMMANDE_ID).FirstOrDefault().TEMPS_CONDITIONNEMENT           = pc.TEMPS_CONDITIONNEMENT;
                    context.PERF_COMMANDES.Where(p => p.COMMANDE_ID == pc.COMMANDE_ID).FirstOrDefault().PERF_MACHINE_CONDITIONNEMENT_ID = pc.PERF_MACHINE_CONDITIONNEMENT_ID;
                }

                context.SaveChanges();
                Console.WriteLine("Conditionnement Performances of Machine No " + _id + " SAVED IN DB !");
            }
        }
Exemple #14
0
        static void Initialize_VariantesData()
        {
            var data = GetFactoryDataJSON().variantes;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Variantes Table : Data To Procces : " + data.Count);
                int c = 1;
                foreach (var v in data)
                {
                    VARIANTE newvar = new VARIANTE();
                    newvar.VARIANTE_NOM = v;
                    context.VARIANTEs.Add(newvar);
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");
                    c++;
                }
                context.SaveChanges();
                Console.WriteLine("---- Initialize Variantes Table : DONE ! ----");
            }
        }
        public MachineFabrication(int id, dynamic variantes, dynamic cadences, dynamic changements_outil, PalaisDuBonbonEntities context)
        {
            this._id = id;
            foreach (string s in variantes)
            {
                this.variantes.Add(s);
            }
            foreach (int i in cadences)
            {
                this.cadences.Add(i);
            }

            foreach (int i in changements_outil)
            {
                this.changements_outil.Add(i);
            }
            this.inUse = false;
            this.end_date_last_order = DateTime.Now;
            this._context            = context;
        }
Exemple #16
0
        static void Initialize_ConditionnementData()
        {
            var data = GetFactoryDataJSON().conditionnements;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Conditionnement Table : Data To Procces : " + data.Count);
                int c = 1;
                foreach (var d in data)
                {
                    CONDITIONNEMENT newvar = new CONDITIONNEMENT();
                    newvar.CONDITIONNEMENT_NOM          = d.nom;
                    newvar.CONDITIONNEMENT_QUANTITE_MAX = d.quantite;
                    context.CONDITIONNEMENTs.Add(newvar);
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");
                    c++;
                }
                context.SaveChanges();
                Console.WriteLine("---- Initialize Conditionnement Table : DONE ! ----");
            }
        }
Exemple #17
0
        static void Initialize_TransportInfoData()
        {
            var data = GetFactoryDataJSON().transports;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize TransportInfo Table : Data To Procces : " + data.Count);
                int c = 1;
                foreach (var d in data)
                {
                    TRANSPORT_INFO ti = new TRANSPORT_INFO();
                    ti.TRANSPORT_INFO_TYPE_TRANSPORT     = d.nom;
                    ti.TRANSPORT_INFO_QUANTITE_PALETTE   = d.qte_palette;
                    ti.TRANSPORT_INFO_CARTON_PAR_PALETTE = d.qte_carton_palette;
                    context.TRANSPORT_INFO.Add(ti);
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");
                    c++;
                }
                context.SaveChanges();
                Console.WriteLine("---- Initialize TransportInfo Table : DONE ! ----");
            }
        }
Exemple #18
0
        static void Initialize_CartonInfos()
        {
            var data = GetFactoryDataJSON().carton_infos;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Carton_Info Table : Data To Procces : " + data.Count);
                int c = 1;

                foreach (var d in data)
                {
                    CARTON_INFO ci = new CARTON_INFO();
                    ci.CARTON_INFO_TYPE_CONDITIONNEMENT = d.type;
                    ci.CARTON_INFO_QUANTITE             = d.quantite;
                    context.CARTON_INFO.Add(ci);
                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");
                    c++;
                }

                Console.WriteLine("---- Initialize Carton_Info Table : DONE ! ----");
                context.SaveChanges();
            }
        }
Exemple #19
0
        static void Initialize_Pays_RatioCommandes()
        {
            var data = GetFactoryDataJSON().ratio_commandes;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize Pays Table (RatioCommandes) : Data To Procces : " + data.Count);
                int c = 1;

                int i = 0;
                foreach (PAYS p in context.PAYS)
                {
                    p.RATIO_COMMANDE = data[i];
                    i++;

                    Console.WriteLine("-------- Data Added : (" + c + "/" + data.Count + ")");
                    c++;
                }

                Console.WriteLine("---- Initialize Pays Table (RatioCommandes) : DONE ! ----");
                context.SaveChanges();
            }
        }
Exemple #20
0
        static void Initialize_MachinesConditionnement()
        {
            var data = GetFactoryDataJSON().machines_conditionnement;

            using (var context = new PalaisDuBonbonEntities())
            {
                Console.WriteLine("---- Initialize MACHINE_CONDITIONNEMENT Table : Data To Procces : " + data.Count);
                int data_counter = 1;
                foreach (var d in data)
                {
                    MACHINE_CONDITIONNEMENT mc = new MACHINE_CONDITIONNEMENT();
                    mc.MACHINE_CONDITIONNEMENT_CADENCE          = d.cadence;
                    mc.MACHINE_CONDITIONNEMENT_CHANGEMENT_OUTIL = d.changement_outil;

                    context.MACHINE_CONDITIONNEMENT.Add(mc);

                    Console.WriteLine("-------- Data Added : (" + data_counter + "/" + data.Count + ")");
                    data_counter++;
                }
                context.SaveChanges();
                Console.WriteLine("---- Initialize MACHINE_CONDITIONNEMENT Table : DONE ! ----");
            }
        }
        /*
         * void ProcessOrder()
         * {
         *  if(!inUse)
         *  {
         *      inUse = true;
         *      if(cmd.COMMANDE_QUANTITE == 0) { return; }
         *
         *      using (var context = new PalaisDuBonbonEntities())
         *      {
         *          DateTime entryDate = (DateTime)context.COMMANDEs.Where(c => c.COMMANDE_ID == cmd.COMMANDE_ID).FirstOrDefault().COMMANDE_DATE_FABRICATION;
         *          end_date_last_order = entryDate;
         *          string bonbon_type = context.BONBONs.Where(b => b.BONBON_ID == cmd.BONBON_ID).FirstOrDefault().BONBON_TYPE;
         *
         *          if(!(bonbon_type == lastUsedType))
         *          {
         *              lastUsedType = bonbon_type;
         *              end_date_last_order = end_date_last_order.AddMinutes(this.changement_outil);
         *          }
         *
         *          int qte_lots = (int)cmd.COMMANDE_QUANTITE;
         *          double tps_traitement = (double)qte_lots / ((double)this.cadence / 60.0f);
         *          end_date_last_order = end_date_last_order.AddMinutes(tps_traitement);
         *
         *          PERF_COMMANDES pc = context.PERF_COMMANDES.Where(p => p.COMMANDE_ID == cmd.COMMANDE_ID).FirstOrDefault();
         *          pc.TEMPS_CONDITIONNEMENT = (decimal)tps_traitement;
         *          pc.PERF_MACHINE_CONDITIONNEMENT_ID = _id;
         *          savedPerf.Add(pc);
         *
         *          cmd.COMMANDE_DATE_CONDITIONNEMENT = end_date_last_order;
         *          processedCmds.Add(cmd);
         *      }
         *      inUse = false;
         *  }
         * }*/

        void ProcessOrder()
        {
            if (!inUse)
            {
                inUse = true;
                if (cmd.COMMANDE_QUANTITE == 0)
                {
                    return;
                }
                DateTime startProcessDate = end_date_last_order;
                using (var context = new PalaisDuBonbonEntities())
                {
                    DateTime entryDate = (DateTime)context.COMMANDEs.Where(c => c.COMMANDE_ID == cmd.COMMANDE_ID).FirstOrDefault().COMMANDE_DATE_FABRICATION;
                    end_date_last_order = entryDate;
                    string bonbon_type = context.BONBONs.Where(b => b.BONBON_ID == cmd.BONBON_ID).FirstOrDefault().BONBON_TYPE;

                    if (!(bonbon_type == lastUsedType))
                    {
                        lastUsedType        = bonbon_type;
                        end_date_last_order = end_date_last_order.AddMinutes(this.changement_outil);
                    }

                    int    qte_lots       = (int)cmd.COMMANDE_QUANTITE;
                    double tps_traitement = (double)qte_lots / ((double)this.cadence / 60.0f);
                    end_date_last_order = end_date_last_order.AddMinutes(tps_traitement);

                    PERF_COMMANDES pc = context.PERF_COMMANDES.Where(p => p.COMMANDE_ID == cmd.COMMANDE_ID).FirstOrDefault();
                    pc.TEMPS_CONDITIONNEMENT           = (decimal)end_date_last_order.Subtract(startProcessDate).TotalMinutes;
                    pc.PERF_MACHINE_CONDITIONNEMENT_ID = _id;
                    savedPerf.Add(pc);

                    cmd.COMMANDE_DATE_CONDITIONNEMENT = end_date_last_order;
                    processedCmds.Add(cmd);
                }
                inUse = false;
            }
        }
Exemple #22
0
        static void Main(string[] args)
        {
            bool _continue = true;

            while (_continue)
            {
                Console.WriteLine("-------- Menu --------");
                Console.WriteLine("1. Generate Orders");
                Console.WriteLine("2. Simulate Fabrication");
                Console.WriteLine("3. Simulate Conditionnement");
                Console.WriteLine("4. Generate JSON");
                Console.WriteLine("5. Refresh Commandes Dates");
                Console.WriteLine("6. Drop Dynamic Data from Database");
                Console.WriteLine("7. Simulate Fabrication OPTI");
                Console.WriteLine("8. Simulate Conditionnement OPTI");
                Console.WriteLine("0. Exit");
                Console.Write("Your choice : ");
                string user_choice = Console.ReadLine();
                int    choice      = int.Parse(user_choice);
                if (choice >= 0 || choice <= 6)
                {
                    switch (choice)
                    {
                    case 0:
                        _continue = false;
                        break;

                    case 1:
                        //CFG_CommandesGenerator orderGenForm = new CFG_CommandesGenerator();
                        Utils.GenerateOrders();
                        break;

                    case 2:
                        //Utils.Build_UnprocessedOrders();
                        Utils.Build_UnprocessedOrders();
                        break;

                    case 3:
                        Utils.Package_UnprocessedOrders();
                        break;

                    case 4:
                        Utils.Generate_Data_001();
                        break;

                    case 5:
                        Utils.Refresh_CommandesDates();
                        break;

                    case 6:
                        Utils.Drop_AllDynamicData();
                        break;

                    case 7:
                        Utils.Build_UnprocessedOrders_Opti();
                        break;

                    case 8:
                        Utils.Package_UnprocessedOrders_Opti();
                        break;

                    case 9:
                        using (var context = new PalaisDuBonbonEntities())
                        {
                            float temps_total = 0f;
                            foreach (PERF_COMMANDES c in context.PERF_COMMANDES)
                            {
                                int tps = (int)c.TEMPS_CONDITIONNEMENT;
                                temps_total += tps;
                            }
                            Console.WriteLine("Moyenn fabrication : " + (temps_total / context.PERF_COMMANDES.Count()));
                        }
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("Please enter a correct value...");
                }
            }
            //Utils.Initialize_BaseData(true);

            Console.WriteLine("-- END OF PROGRAM --");
        }
Exemple #23
0
        public static void Package_UnprocessedOrders_Opti()
        {
            List <COMMANDE> commandes_a_traiter;

            MachineConditionnement m1;
            MachineConditionnement m2;
            MachineConditionnement m3;
            MachineConditionnement m4;
            MachineConditionnement m5;
            MachineConditionnement m6;

            using (var context = new PalaisDuBonbonEntities())
            {
                commandes_a_traiter = new List <COMMANDE>(context.COMMANDEs.Where(c => c.COMMANDE_ETAT == (false)));
                commandes_a_traiter.Sort((c1, c2) => c1.COMMANDE_DATE_FABRICATION.Value.CompareTo(c2.COMMANDE_DATE_FABRICATION.Value));

                List <COMMANDE> cmds_sachets = commandes_a_traiter.Where(c => c.CONDITIONNEMENT.CONDITIONNEMENT_NOM == "sachet").ToList();
                cmds_sachets.Sort((c1, c2) => c1.BONBON.BONBON_TYPE.CompareTo(c2.BONBON.BONBON_TYPE));
                List <COMMANDE> cmds_boites = commandes_a_traiter.Where(c => c.CONDITIONNEMENT.CONDITIONNEMENT_NOM == "boite").ToList();
                cmds_boites.Sort((c1, c2) => c1.BONBON.BONBON_TYPE.CompareTo(c2.BONBON.BONBON_TYPE));
                List <COMMANDE> cmds_echantillons = commandes_a_traiter.Where(c => c.CONDITIONNEMENT.CONDITIONNEMENT_NOM == "echantillon").ToList();
                cmds_echantillons.Sort((c1, c2) => c1.BONBON.BONBON_TYPE.CompareTo(c2.BONBON.BONBON_TYPE));

                m1 = BuilMachineConditionnementFromJSON(0);
                m2 = BuilMachineConditionnementFromJSON(1);

                m3 = BuilMachineConditionnementFromJSON(2);
                m4 = BuilMachineConditionnementFromJSON(3);

                m5 = BuilMachineConditionnementFromJSON(4);
                m6 = BuilMachineConditionnementFromJSON(5);

                while (cmds_sachets.Count > 0)
                {
                    if (cmds_sachets.Count >= 1)
                    {
                        if (!m1.inUse)
                        {
                            m1.PickOrder(cmds_sachets[0], ref cmds_sachets);
                        }
                    }

                    if (cmds_sachets.Count >= 2)
                    {
                        if (!m2.inUse)
                        {
                            m2.PickOrder(cmds_sachets[1], ref cmds_sachets);
                        }
                    }

                    if (cmds_sachets.Count >= 3)
                    {
                        if (!m3.inUse)
                        {
                            m3.PickOrder(cmds_sachets[2], ref cmds_sachets);
                        }
                    }
                }

                while (cmds_boites.Count > 0)
                {
                    if (cmds_boites.Count >= 1)
                    {
                        if (!m4.inUse)
                        {
                            m4.PickOrder(cmds_boites[0], ref cmds_boites);
                        }
                    }

                    if (cmds_boites.Count >= 2)
                    {
                        if (!m5.inUse)
                        {
                            m5.PickOrder(cmds_boites[1], ref cmds_boites);
                        }
                    }
                }

                while (cmds_echantillons.Count > 0)
                {
                    if (!m6.inUse)
                    {
                        m6.PickOrder(cmds_echantillons[0], ref cmds_echantillons);
                    }
                }
            }
            m1.PersistPerformances();
            m2.PersistPerformances();
            m3.PersistPerformances();
            m4.PersistPerformances();
            m5.PersistPerformances();
            m6.PersistPerformances();
            Console.WriteLine("---- CONDITIONNEMENT DONE");
        }
Exemple #24
0
        public static void Package_UnprocessedOrders()
        {
            List <COMMANDE> commandes_a_traiter;

            MachineConditionnement m1;
            MachineConditionnement m2;
            MachineConditionnement m3;
            MachineConditionnement m4;
            MachineConditionnement m5;
            MachineConditionnement m6;

            using (var context = new PalaisDuBonbonEntities())
            {
                commandes_a_traiter = new List <COMMANDE>(context.COMMANDEs.Where(c => c.COMMANDE_ETAT == (false)));
                commandes_a_traiter.Sort((c1, c2) => c1.COMMANDE_DATE_FABRICATION.Value.CompareTo(c2.COMMANDE_DATE_FABRICATION.Value));


                m1 = BuilMachineConditionnementFromJSON(0);
                m2 = BuilMachineConditionnementFromJSON(1);

                m3 = BuilMachineConditionnementFromJSON(2);
                m4 = BuilMachineConditionnementFromJSON(3);

                m5 = BuilMachineConditionnementFromJSON(4);
                m6 = BuilMachineConditionnementFromJSON(5);

                int total_element = commandes_a_traiter.Count;
                while (commandes_a_traiter.Count > 0 || m1.inUse || m2.inUse || m3.inUse || m4.inUse || m5.inUse || m6.inUse)
                {
                    Console.WriteLine("-------- Remaining Elements : " + commandes_a_traiter.Count + "/" + total_element);

                    if (commandes_a_traiter[0].CONDITIONNEMENT.CONDITIONNEMENT_NOM == "sachet")
                    {
                        int choixMachine = rnd.Next(0, 3);
                        if (choixMachine == 0)
                        {
                            m1.PickOrder(commandes_a_traiter[0], ref commandes_a_traiter);
                        }
                        else if (choixMachine == 1)
                        {
                            m2.PickOrder(commandes_a_traiter[0], ref commandes_a_traiter);
                        }
                        else
                        {
                            m3.PickOrder(commandes_a_traiter[0], ref commandes_a_traiter);
                        }
                    }
                    else if (commandes_a_traiter[0].CONDITIONNEMENT.CONDITIONNEMENT_NOM == "boite")
                    {
                        int choixMachine = rnd.Next(0, 2);

                        if (choixMachine == 0)
                        {
                            m4.PickOrder(commandes_a_traiter[0], ref commandes_a_traiter);
                        }
                        else
                        {
                            m5.PickOrder(commandes_a_traiter[0], ref commandes_a_traiter);
                        }
                    }
                    else
                    {
                        if (!m6.inUse)
                        {
                            m6.PickOrder(commandes_a_traiter[0], ref commandes_a_traiter);
                        }
                    }
                }
            }
            m1.PersistPerformances();
            m2.PersistPerformances();
            m3.PersistPerformances();
            m4.PersistPerformances();
            m5.PersistPerformances();
            m6.PersistPerformances();
            Console.WriteLine("---- CONDITIONNEMENT DONE");
        }
Exemple #25
0
        public static void Build_UnprocessedOrders_Opti()
        {
            var                fabMachines = GetFactoryDataJSON().machines_fabrication;
            List <COMMANDE>    commandes_a_traiter;
            MachineFabrication m1;
            MachineFabrication m2;
            MachineFabrication m3;
            MachineFabrication m4;

            using (var context = new PalaisDuBonbonEntities())
            {
                commandes_a_traiter = new List <COMMANDE>(context.COMMANDEs.Where(c => c.COMMANDE_ETAT == (false)));
                commandes_a_traiter.Sort((c1, c2) => c1.COMMANDE_DATE_COMMANDE.Value.CompareTo(c2.COMMANDE_DATE_COMMANDE.Value));

                List <COMMANDE> cmds_sucres = commandes_a_traiter.Where(c => c.BONBON.VARIANTE.VARIANTE_NOM == "sucre").ToList();
                cmds_sucres.Sort((c1, c2) => c1.BONBON.BONBON_TYPE.CompareTo(c2.BONBON.BONBON_TYPE));
                List <COMMANDE> cmds_acides = commandes_a_traiter.Where(c => c.BONBON.VARIANTE.VARIANTE_NOM == "acide").ToList();
                cmds_acides.Sort((c1, c2) => c1.BONBON.BONBON_TYPE.CompareTo(c2.BONBON.BONBON_TYPE));
                List <COMMANDE> cmds_gelifies = commandes_a_traiter.Where(c => c.BONBON.VARIANTE.VARIANTE_NOM == "gelifie").ToList();
                cmds_gelifies.Sort((c1, c2) => c1.BONBON.BONBON_TYPE.CompareTo(c2.BONBON.BONBON_TYPE));

                int totalCmdsCount = cmds_acides.Count + cmds_gelifies.Count + cmds_sucres.Count;

                //
                m1 = BuildMachineFabricationFromJSON(0);
                m2 = BuildMachineFabricationFromJSON(1);
                m3 = BuildMachineFabricationFromJSON(2);
                m4 = BuildMachineFabricationFromJSON(3);

                while (cmds_sucres.Count > 0)
                {
                    int choixMachine = rnd.Next(0, 2);


                    if (choixMachine == 0)
                    {
                        if (!m2.inUse)
                        {
                            m2.PickOrder(cmds_sucres[0], ref cmds_sucres);
                        }
                    }
                    else
                    {
                        if (!m4.inUse)
                        {
                            m4.PickOrder(cmds_sucres[0], ref cmds_sucres);
                        }
                    }
                }

                while (cmds_gelifies.Count > 0)
                {
                    int choixMachine = rnd.Next(0, 2);


                    if (choixMachine == 0)
                    {
                        if (!m3.inUse)
                        {
                            m3.PickOrder(cmds_gelifies[0], ref cmds_gelifies);
                        }
                        else
                        {
                            if (!m4.inUse)
                            {
                                m4.PickOrder(cmds_gelifies[0], ref cmds_gelifies);
                            }
                        }
                    }
                }
                while (cmds_acides.Count > 0)
                {
                    if (!m1.inUse)
                    {
                        m1.PickOrder(cmds_acides[0], ref cmds_acides);
                    }
                }
            }
            m1.PersistPerformances();
            m2.PersistPerformances();
            m3.PersistPerformances();
            m4.PersistPerformances();


            Console.WriteLine("---- FABRICATION DONE");
        }
Exemple #26
0
        public static MachineFabrication BuildMachineFabricationFromJSON(int machineId, PalaisDuBonbonEntities context)
        {
            var data = GetFactoryDataJSON().machines_fabrication[machineId];

            int id                 = data._id;
            var variantes          = data.variante;
            var cadences           = data.cadence;
            var changements_outils = data.changement_outil;

            return(new MachineFabrication(id, variantes, cadences, changements_outils, context));
        }
Exemple #27
0
        public static void GenerateOrders()
        {
            var configData = GetConfigOrderGenerationDataJSON();

            int  total_orders        = (int)configData.nb_commandes.Value;
            bool useRandom_countries = configData.useRandom_countries.Value;
            bool useRandom_candies   = configData.useRandom_candies.Value;

            List <COMMANDE>        _generated_orders     = new List <COMMANDE>();
            Dictionary <PAYS, int> Countries_OrdersCount = new Dictionary <PAYS, int>();

            Console.WriteLine("---- Starting ORDERS GENERATION");

            using (var context = new PalaisDuBonbonEntities())
            {
                foreach (PAYS p in context.PAYS)
                {
                    PAYS pays        = p;
                    int  ordersCount = (int)(p.RATIO_COMMANDE * total_orders) / 100;
                    Countries_OrdersCount.Add(p, ordersCount);
                }

                if (!useRandom_countries)
                {
                    foreach (KeyValuePair <PAYS, int> pays in Countries_OrdersCount)
                    {
                        for (int i = 0; i < pays.Value; i++) // pays.value = nb de cmds d'un pays
                        {
                            int      num_commande         = rnd.Next(100000, 999999);
                            int      data_generation_year = (int)configData.generation_fabrication_data_date;
                            DateTime date_commande        = DateTime.Now;
                            int      nb_lots = rnd.Next((int)configData.lots_min.Value, (int)configData.lots_max.Value); // nb de lots a generer

                            for (int n = 0; n < nb_lots; n++)
                            {
                                COMMANDE commande = new COMMANDE();

                                commande.COMMANDE_NUM_COMMANDE         = num_commande;
                                commande.COMMANDE_ETAT                 = false;
                                commande.COMMANDE_DATE_COMMANDE        = date_commande;
                                commande.COMMANDE_DATE_FABRICATION     = null;
                                commande.COMMANDE_DATE_CONDITIONNEMENT = null;
                                commande.COMMANDE_DATE_EXPEDITION      = null;
                                commande.PAYS_ID           = pays.Key.PAYS_ID;
                                commande.PAY               = pays.Key;
                                commande.COMMANDE_QUANTITE = nb_lots;

                                int cond_count         = context.CONDITIONNEMENTs.Count();
                                int rndConditionnement = rnd.Next(1, cond_count + 1);
                                commande.CONDITIONNEMENT    = context.CONDITIONNEMENTs.Where(cd => cd.CONDITIONNEMENT_ID == rndConditionnement).First();
                                commande.CONDITIONNEMENT_ID = commande.CONDITIONNEMENT.CONDITIONNEMENT_ID;

                                int randomBonbon = rnd.Next(0, 100);

                                var bonbon_probas = GetFactoryDataJSON().taux_ventes_2016;
                                //   int selected_bonbon = 0;
                                // int selected_bonbon_id = 0;
                                float  myValue            = 0f;
                                string choosed_candy_name = "";
                                foreach (var prob in bonbon_probas)
                                {
                                    float valeur = prob.valeur;
                                    myValue += valeur;
                                    if (myValue >= randomBonbon)
                                    {
                                        choosed_candy_name = prob.type_bonbon;
                                        break;
                                    }

                                    /*selected_bonbon_id++;
                                     * int val = prob.valeur;
                                     * selected_bonbon += val;
                                     * if (selected_bonbon >= randomBonbon)
                                     * {
                                     *  break;
                                     * }*/
                                }
                                List <BONBON> bonbons_available = context.BONBONs.Where(b => b.BONBON_TYPE == choosed_candy_name).ToList();
                                commande.BONBON    = bonbons_available.ElementAt(rnd.Next(bonbons_available.Count));
                                commande.BONBON_ID = commande.BONBON.BONBON_ID;

                                PRIX_LOT test = context.PRIX_LOT.Where(pl => pl.CONDITIONNEMENT_ID == commande.CONDITIONNEMENT.CONDITIONNEMENT_ID).Single(pl => pl.BONBON.BONBON_TYPE == commande.BONBON.BONBON_TYPE);


                                commande.COMMANDE_PRIX_LOT = commande.COMMANDE_QUANTITE * test.PRIX_LOT_PRIX;

                                _generated_orders.Add(commande);
                                Console.WriteLine("-------- Order Generated");
                            }
                        }
                    }
                }

                int counter = 0;
                foreach (COMMANDE com in _generated_orders)
                {
                    Console.WriteLine("-------- Pushing Order No (" + counter + "/" + _generated_orders.Count + ")");
                    context.COMMANDEs.Add(com);
                    if ((counter % 100) == 0)
                    {
                        Console.WriteLine("-------- Saving changes....");
                        context.SaveChanges();
                    }
                    counter++;
                }
                Console.WriteLine("-------- Saving changes....");
                context.SaveChanges();
                Console.WriteLine("---- ORDERS GENERATION DONE");
                Console.WriteLine("---- WRITING GENERATED DATA TO generated_orders.json");
                //  string jsonCommandes = JsonConvert.SerializeObject(_generated_orders);
                //   GenerateOrdersJSONFile(jsonCommandes);
                Console.WriteLine("---- CLOSING CONNEXION...");
            }

            Console.WriteLine("---- WRITING DONE ! END OF FUNC");
        }
        void ProcessOrder()
        {
            if (!inUse)
            {
                inUse = true;
                if (cmd.COMMANDE_QUANTITE == 0)
                {
                    return;
                }

                int      qte_cond;
                DateTime startProcessDate = end_date_last_order;
                using (var context = new PalaisDuBonbonEntities())
                {
                    qte_cond = (int)context.CONDITIONNEMENTs.Where(c => c.CONDITIONNEMENT_ID == cmd.CONDITIONNEMENT_ID).FirstOrDefault().CONDITIONNEMENT_QUANTITE_MAX;

                    int quantite_bonbon = (int)(cmd.COMMANDE_QUANTITE * qte_cond);

                    string bonbon_type     = context.BONBONs.Where(c => c.BONBON_ID == cmd.BONBON_ID).FirstOrDefault().BONBON_TYPE;
                    string bonbon_variante = context.BONBONs.Where(c => c.BONBON_ID == cmd.BONBON_ID).FirstOrDefault().VARIANTE.VARIANTE_NOM;
                    int    varianteIndex   = variantes.IndexOf(bonbon_variante);

                    if (last_used_candy_type != bonbon_type)
                    {
                        last_used_candy_type = bonbon_type;
                        end_date_last_order  = end_date_last_order.AddMinutes(this.changements_outil[varianteIndex]);
                    }

                    double tps_traitement = (float)quantite_bonbon / (float)(cadences[varianteIndex] / 60); // Tps en minutes
                    end_date_last_order = end_date_last_order.AddMinutes(tps_traitement);

                    cmd.COMMANDE_DATE_FABRICATION = end_date_last_order;

                    processedOrders.Add(cmd);

                    PERF_COMMANDES perfCmd = new PERF_COMMANDES();
                    perfCmd.COMMANDE_ID                 = cmd.COMMANDE_ID;
                    perfCmd.TEMPS_FABRICATION_LOT       = (decimal)end_date_last_order.Subtract(startProcessDate).TotalMinutes;
                    perfCmd.BONBON_FABRIQUE_COUNT       = quantite_bonbon;
                    perfCmd.PERF_MACHINE_FABRICATION_ID = _id;
                    savedPerformances.Add(perfCmd);

                    /*******************************
                     *            DEBUG
                     ********************************/
/*
 *                  dynamic jsonCmd = new System.Dynamic.ExpandoObject();
 *                  jsonCmd.machine = _id;
 *                  jsonCmd.date = cmd.COMMANDE_DATE_FABRICATION;
 *                  jsonCmd.id = cmd.COMMANDE_ID;
 *                  jsonCmd.numCmd = cmd.COMMANDE_NUM_COMMANDE;
 *                  jsonCmd.qte_bonbon = quantite_bonbon;
 *                  jsonCmd.temps_fab_lot = tps_traitement;
 *
 *                  string jsonData = JsonConvert.SerializeObject(jsonCmd);
 *                  Utils.GenerateFabricationData_Test(jsonData);
 */
                    /*******************************
                     *            END DEBUG
                     ********************************/
                }
                inUse = false;
            }

            //Console.ReadLine();
        }