Пример #1
0
        private void export_stockliste_Click(object sender, EventArgs e)
        {
            if (!Directory.Exists(logDirectoryName_export))
            {
                Directory.CreateDirectory(logDirectoryName_export);
            }

            var logFileName_export = logDirectoryName_export + @"\" + string.Format("LOG_Export_Stock_{0:dd-MM-yyyy HH.mm.ss}.txt", DateTime.Now);
            var logFile_export     = File.Create(logFileName_export);

            //Write in the log file
            logFileWriter_export = new StreamWriter(logFile_export);
            //logFileWriter.Write(string.Format("{0:HH:mm:ss}", DateTime.Now) + " \r\n");
            logFileWriter_export.WriteLine("#####################################################################################");
            logFileWriter_export.WriteLine("################################ ConnecteurSage Sage ################################");
            logFileWriter_export.WriteLine("#####################################################################################");
            logFileWriter_export.WriteLine("");

            Config_Export.ConfigurationSaveLoad exportSettings = new Config_Export.ConfigurationSaveLoad();
            try
            {
                if (!exportSettings.isSettings())
                {
                    MessageBox.Show("La configuration d'export d'un document n'est pas renseigné!\nVeuillez ajouter la configuration avant d'utiliser cette action.", "Config d'Export", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    logFileWriter_export.WriteLine(DateTime.Now + " | export_stockliste_Click() : La configuration d'export d'un document n'est pas renseigné!\nVeuillez ajouter la configuration avant d'utiliser cette action.");
                    logFileWriter_export.Flush();
                    logFileWriter_export.Close();
                    return;
                }
                exportSettings.Load();
            }
            catch (Exception ex)
            {
                logFileWriter_export.WriteLine(DateTime.Now + "******************** Erreur Config Export ********************");
                logFileWriter_export.WriteLine(DateTime.Now + " | Exporexport_stockliste_ClicktFacture() : Message : " + ex.Message);
                logFileWriter_export.WriteLine(DateTime.Now + " | export_stockliste_Click() : Stacktrace : \n" + ex.StackTrace);
                logFileWriter_export.Flush();
                logFileWriter_export.Close();
                return;
            }

            ExportStock(logFileWriter_export, exportSettings); //calling this class' function to export list of stock

            //logFileWriter_export.Close();
            Close();
        }
Пример #2
0
        private void enregistrer_config_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(comboBox1.Text) || !string.IsNullOrEmpty(comboBox2.Text) || !string.IsNullOrEmpty(comboBox3.Text) || !string.IsNullOrEmpty(comboBox4.Text) ||
                !string.IsNullOrEmpty(comboBox5.Text) || !string.IsNullOrEmpty(comboBox8.Text) || !string.IsNullOrEmpty(comboBox7.Text) || !string.IsNullOrEmpty(comboBox6.Text) ||
                !string.IsNullOrEmpty(comboBox12.Text) || !string.IsNullOrEmpty(comboBox9.Text) || !string.IsNullOrEmpty(comboBox10.Text))
            {
                Config_Export.ConfigurationSaveLoad       settings            = new Config_Export.ConfigurationSaveLoad();
                Config_Export.Classes.ConfigurationExport configurationExport = new Config_Export.Classes.ConfigurationExport(
                    new Config_Export.Classes.Custom.Commande(((comboBox1.Text == "Activer") ? true : false), comboBox5.Text, getStatutValue(comboBox12.Text)),
                    new Config_Export.Classes.Custom.DSADV(((comboBox2.Text == "Activer") ? true : false), comboBox8.Text, getStatutValue_DESADV(comboBox9.Text)),
                    new Config_Export.Classes.Custom.Facture(((comboBox3.Text == "Activer") ? true : false), comboBox7.Text, getStatutValue_FACTURE(comboBox10.Text)),
                    new Config_Export.Classes.Custom.Stock(((comboBox4.Text == "Activer") ? true : false), comboBox6.Text)
                    );

                settings.configurationExport = configurationExport;
                settings.saveInfo();

                Close();
            }
            else
            {
                if (!string.IsNullOrEmpty(comboBox1.Text))
                {
                    MessageBox.Show("Export Commande est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox2.Text))
                {
                    MessageBox.Show("Export Bon de Livraision est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox3.Text))
                {
                    MessageBox.Show("D'Export Facture est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox4.Text))
                {
                    MessageBox.Show("D'Export Stock est obligatoire !!");
                }

                if (!string.IsNullOrEmpty(comboBox5.Text))
                {
                    MessageBox.Show("Le Format d'Export Commande est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox8.Text))
                {
                    MessageBox.Show("Le Format d'Export Bon de Livraision est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox7.Text))
                {
                    MessageBox.Show("Le Format d'Export Facture est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox6.Text))
                {
                    MessageBox.Show("Le Format d'Export Stock est obligatoire !!");
                }

                if (!string.IsNullOrEmpty(comboBox12.Text))
                {
                    MessageBox.Show("Le Statut d'Export Commande est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox9.Text))
                {
                    MessageBox.Show("Le Statut d'Export Bon de Livraision est obligatoire !!");
                }
                if (!string.IsNullOrEmpty(comboBox10.Text))
                {
                    MessageBox.Show("Le Statut d'Export Facture est obligatoire !!");
                }
            }
        }
Пример #3
0
        public ConfExport()
        {
            InitializeComponent();


            Boolean[] list1 = new Boolean[2];   //List pour activer ou desactiver l'export
            list1[0] = true;
            list1[1] = false;

            string[] list2 = new string[3];     //List des formats d'export
            list2[0] = "";
            list2[1] = "Plat";
            list2[2] = "Véolog";

            string[] list3 = new string[4];     //List des statuts commande
            list3[0] = "";
            list3[1] = "Saisie";
            list3[2] = "Confirmé";
            list3[3] = "A Préparé";

            string[] list4 = new string[4];     //List des statuts DSADV
            list4[0] = "";
            list4[1] = "Saisie";
            list4[2] = "Confirmé";
            list4[3] = "A Facturer";

            string[] list5 = new string[4];     //List des statuts Facture
            list5[0] = "";
            list5[1] = "Saisie";
            list5[2] = "Confirmé";
            list5[3] = "A comptabiliser";

            string[] list6 = new string[1];     //List des statuts stock
            list6[0] = "";


            // Init les comboBoxs
            for (int i = 0; i < getValuesExport().Length; i++)
            {
                comboBox1.Items.Add(((list1[i] == true) ? "Activer" : "Désactiver"));
                comboBox2.Items.Add(((list1[i] == true) ? "Activer" : "Désactiver"));
                comboBox3.Items.Add(((list1[i] == true) ? "Activer" : "Désactiver"));
                comboBox4.Items.Add(((list1[i] == true) ? "Activer" : "Désactiver"));
            }
            for (int i = 0; i < getFormatExport().Length; i++)
            {
                comboBox5.Items.Add(list2[i]);
                comboBox8.Items.Add(list2[i]);
                comboBox7.Items.Add(list2[i]);
                comboBox6.Items.Add(list2[i]);
            }
            for (int i = 0; i < getStatutExport().GetLength(0); i++)
            {
                comboBox12.Items.Add(list3[i]);
            }
            for (int i = 0; i < getStatutExport_DESADV().GetLength(0); i++)
            {
                comboBox9.Items.Add(list4[i]);
            }
            for (int i = 0; i < getStatutExport_FACTURE().GetLength(0); i++)
            {
                comboBox10.Items.Add(list5[i]);
            }

            Config_Export.ConfigurationSaveLoad settings = new Config_Export.ConfigurationSaveLoad();
            if (settings.isSettings())
            {
                settings.Load();
                Config_Export.Classes.ConfigurationExport configurationExport = settings.configurationExport;

                comboBox1.Text = ((configurationExport.Commande.Activate) ? "Activer" : "Désactiver");
                comboBox2.Text = ((configurationExport.DSADV.Activate) ? "Activer" : "Désactiver");
                comboBox3.Text = ((configurationExport.Facture.Activate) ? "Activer" : "Désactiver");
                comboBox4.Text = ((configurationExport.Stock.Activate) ? "Activer" : "Désactiver");

                comboBox5.Text = configurationExport.Commande.Format;
                comboBox8.Text = configurationExport.DSADV.Format;
                comboBox7.Text = configurationExport.Facture.Format;
                comboBox6.Text = configurationExport.Stock.Format;

                comboBox12.Text = getStatutName(configurationExport.Commande.Status);
                comboBox9.Text  = getStatutName_DESADV(configurationExport.DSADV.Status);
                comboBox10.Text = getStatutName_FACTURE(configurationExport.Facture.Status);
            }
        }
Пример #4
0
        /// <summary>
        /// Génération du fichier d'export, lancement de l'application et exporter les factures
        /// </summary>
        public List <Alert_Mail.Classes.Custom.CustomMailRecapLines> ExportBonLivraisonAction(List <Alert_Mail.Classes.Custom.CustomMailRecapLines> recapLinesList_new)
        {
            try
            {
                string exportTo = "";

                if (!Directory.Exists(logDirectoryName_export))
                {
                    Directory.CreateDirectory(logDirectoryName_export);
                }

                logFileName_export = logDirectoryName_export + @"\" + string.Format("LOG_Export_BonLivraison_{0:dd-MM-yyyy HH.mm.ss}.txt", DateTime.Now);
                var logFile_export = File.Create(logFileName_export);
                logFileWriter_export = new StreamWriter(logFile_export);

                logFileWriter_export.WriteLine("#####################################################################################");
                logFileWriter_export.WriteLine("################################# Import Planifier ##################################");
                logFileWriter_export.WriteLine("#####################################################################################");
                logFileWriter_export.WriteLine("");

                Config_Export.ConfigurationSaveLoad settings = new Config_Export.ConfigurationSaveLoad();
                try
                {
                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Répurère le statut dans la config export.");
                    settings.Load();
                }
                catch (Exception ex)
                {
                    logFileWriter_export.WriteLine(DateTime.Now + "******************** Erreur Chargement ********************");
                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Erreur de chargement du fichier " + settings.getFilePath());
                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Message => " + ex.Message);
                    logFileWriter_export.WriteLine("");
                    logFileWriter_export.Flush();
                }


                if (settings.configurationExport == null)
                {
                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Erreur dans la récupération des configurations.");
                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Veuillez vérifier le fichier de configuration \"" + settings.getFilePath() + "\".");
                    logFileWriter_export.Flush();
                    logFileWriter_export.Close();
                    return(recapLinesList_new);
                }
                logFileWriter_export.Flush();

                List <DocumentVente> BonLivrasonAExporter = GetBonLivraisonFromDataBase(logFileWriter_export, recapLinesList_new, settings.configurationExport.DSADV.Status);

                logFileWriter_export.Flush();
                if (BonLivrasonAExporter != null && BonLivrasonAExporter.Count > 0)
                {
                    string outputFile = this.pathExport + @"\Fichier Exporter\Bons de Livraisons\Vente";

                    if (!Directory.Exists(outputFile))
                    {
                        System.IO.Directory.CreateDirectory(outputFile);
                    }

                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Répurère le format du fichier dans la config export.");

                    if (BonLivrasonAExporter.Count > 0 && settings.configurationExport.DSADV.Format == "Plat")
                    {
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Le format du fichier d'export => " + settings.configurationExport.DSADV.Format);


                        for (int i = 0; i < BonLivrasonAExporter.Count; i++)
                        {
                            logFileWriter_export.Flush();
                            exportTo = @"Export\Plat_BonLivraison\Vente";
                            logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Nombre de DESADV à exporter ===> " + (i + 1) + "/" + BonLivrasonAExporter.Count);

                            Customer customer = GetClient(logFileWriter_export, BonLivrasonAExporter[i].DO_TIERS);

                            // Init.Init init = new Init.Init();
                            // logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Json BonLivrasonAExporter :\n " + init.FormatJson(BonLivrasonAExporter[i]));

                            var fileName = string.Format("BonLivraison{0:dd-MM-yyyy_HH.mm.ss}." + customer.CT_Num + "." + customer.CT_EDI1 + ".csv", DateTime.Now);

                            using (StreamWriter writer = new StreamWriter(outputFile + @"\" + fileName, false, Encoding.UTF8))
                            {
                                //writer.WriteLine("DEMAT-AAA;v01.0;;;" + DateTime.Today.Year + addZero(DateTime.Today.Month.ToString()) + addZero(DateTime.Today.Day.ToString()) + ";;");
                                //writer.WriteLine("");
                                //writer.WriteLine("");

                                writer.WriteLine("DESHDR;v01.0;;" + BonLivrasonAExporter[i].DO_Piece.Replace("BL", "") + ";" + customer.CT_EDI1 + ";9;;9;" + customer.CT_EDI1 + ";9;" + customer.CT_EDI1 + ";9;;9;;9;;9;" + ConvertDate(BonLivrasonAExporter[i].DO_dateLivr) + ";" + ConvertDate(BonLivrasonAExporter[i].DO_dateLivr) + ";;;;;" + BonLivrasonAExporter[i].LI_ADRESSE + ";;;;;;;;;;;;;;9;");
                                writer.WriteLine("");

                                writer.WriteLine("DESHD2;;;;" + customer.CT_Adresse + ";;" + customer.CT_CodePostal + ";" + customer.CT_Ville + ";" + customer.CT_Pays + ";" + customer.CT_Intitule + ";" + customer.CT_Telephone + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;");
                                writer.WriteLine("");

                                //if (BonLivrasonAExporter[i].IntrastatTransportMode != "")
                                //{ // Return mode de transport
                                //    BonLivrasonAExporter[i].IntrastatTransportMode = GetModeTransport(BonLivrasonAExporter[i].IntrastatTransportMode);
                                //}

                                writer.WriteLine("DESTRP;;;;;;;;;;");
                                writer.WriteLine("");

                                writer.WriteLine("DESREF;;;;" + BonLivrasonAExporter[i].DO_COORD01 + ";;;;;");
                                writer.WriteLine("");
                                writer.Flush();

                                BonLivrasonAExporter[i].lines = getDocumentLine(logFileWriter_export, BonLivrasonAExporter[i].DO_Piece, recapLinesList_new);


                                writer.WriteLine("DESLOG;" + BonLivrasonAExporter[i].lines.Count + ";" + BonLivrasonAExporter[i].FNT_TotalHTNet.Replace(",", ".") + ";" + BonLivrasonAExporter[i].FNT_TotalHT.Replace(",", ".") + ";" + BonLivrasonAExporter[i].FNT_PoidsBrut.Replace(",", ".") + ";;" + BonLivrasonAExporter[i].FNT_PoidsNet.Replace(",", ".") + ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;");
                                writer.WriteLine("");
                                writer.Flush();

                                for (int j = 0; j < BonLivrasonAExporter[i].lines.Count; j++)
                                {
                                    writer.WriteLine("DESLIN;" + BonLivrasonAExporter[i].lines[j].DL_Ligne + ";;" + BonLivrasonAExporter[i].lines[j].AR_CODEBARRE + ";;;;;;;" + BonLivrasonAExporter[i].lines[j].DL_Design + ";;;" + BonLivrasonAExporter[i].lines[j].DL_Qte + ";;" + BonLivrasonAExporter[i].lines[j].EU_Qte + ";;;;;;;;;;;" + ConvertDate(BonLivrasonAExporter[i].lines[j].DO_DateLivr) + ";;;" + BonLivrasonAExporter[i].lines[j].FNT_PrixUNet.Replace(",", ".") + ";;;;;;" + BonLivrasonAExporter[i].lines[j].FNT_MontantHT.Replace(",", ".") + ";;" + BonLivrasonAExporter[i].lines[j].DL_NoColis + ";;;;;;;;;;;");
                                    writer.WriteLine("");
                                    writer.Flush();
                                }

                                writer.WriteLine("DESEND;" + BonLivrasonAExporter[i].lines.Count + ";;;" + BonLivrasonAExporter[i].FNT_TotalHTNet.Replace(",", ".") + ";" + BonLivrasonAExporter[i].FNT_TotalHT.Replace(",", ".") + ";" + BonLivrasonAExporter[i].FNT_PoidsBrut.Replace(",", ".") + ";;;;;");
                                writer.WriteLine("");
                                writer.WriteLine("");
                                writer.Flush();
                            }
                            logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Fichier d'export DESADV généré dans : " + outputFile + @"\" + fileName.Replace("..", "."));
                            logFileWriter_export.Flush();

                            //add to backup folder
                            addFileToBackUp(pathExport + @"\BackUp\" + exportTo, outputFile + @"\" + fileName, fileName, logFileWriter_export);
                            logFileWriter_export.Flush();

                            //UpdateDocumentVente(BonLivrasonAExporter[i].DO_Piece, recapLinesList_new);

                            recapLinesList_new.AddRange(UpdateDocumentVente(logFileWriter_export, BonLivrasonAExporter[i].DO_Piece, outputFile + @"\" + fileName));

                            logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Mettre à jour le Document de Vente");
                            logFileWriter_export.WriteLine("");
                            logFileWriter_export.WriteLine("");
                            logFileWriter_export.Flush();
                        }  //END FOR export Bon de livraison


                        Console.WriteLine(DateTime.Now + " : Nombre bon de livraison : " + BonLivrasonAExporter.Count);
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Nombre bon de livraison : " + BonLivrasonAExporter.Count);
                    }
                    else if (BonLivrasonAExporter.Count > 0 && settings.configurationExport.DSADV.Format == "Véolog")
                    {
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Le format du fichier d'export => " + settings.configurationExport.DSADV.Format);
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Aucun format développé.");
                    }
                    else
                    {
                        logFileWriter_export.Flush();

                        if (BonLivrasonAExporter.Count == 0)
                        {
                            logFileWriter_export.WriteLine(DateTime.Now + "******************** Attention BL ********************");
                            logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Aucun BL a exporter.");
                            logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : BonLivrasonAExporter.Count => 0");
                            logFileWriter_export.WriteLine("");
                            logFileWriter_export.Flush();
                        }
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Le format du fichier d'export => " + settings.configurationExport.DSADV.Format);
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Pas de format disponible. Veuillez vérifier le format dans le fichier de configuration \"" + settings.getFilePath());
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Sous la section \"DSADV\" => Format");
                        logFileWriter_export.Flush();
                    }
                }
                else
                {
                    if (BonLivrasonAExporter == null)
                    {
                        logFileWriter_export.WriteLine(DateTime.Now + "******************** Erreur Export BL ********************");
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Erreur dans la récupération des BL");
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Export Annulé.");
                        logFileWriter_export.Flush();
                    }
                    else if (BonLivrasonAExporter.Count == 0)
                    {
                        logFileWriter_export.WriteLine(DateTime.Now + "******************** Attention BL ********************");
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Aucun BL a exporter.");
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : BonLivrasonAExporter.Count => 0");
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Export Annulé.");
                        logFileWriter_export.Flush();
                    }
                }
            }
            catch (Exception ex)
            {
                //Exception pouvant survenir si lorsque l'accès au disque dur est refusé
                Console.WriteLine("" + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", ""));

                logFileWriter_export.WriteLine(DateTime.Now + "********************************* Exception *********************************");
                logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Message :: " + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", ""));
                logFileWriter_export.WriteLine(DateTime.Now + " | ExportBonLivraisonAction() : Export annullé");
                logFileWriter_export.Close();
                recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export du bon de livraison est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
            }

            logFileWriter_export.Close();
            return(recapLinesList_new);
        }
Пример #5
0
        public Main()
        {
            InitializeComponent();
            string version = new Connecteur_Info.ConnecteurInfo().Version;

            label3.Text         = "Connecteur Sage v" + version + " \nImport et export de documents commerciaux.";
            labelVersion.Text   = "Version : " + version;
            labelCopyright.Text = "Copyright © 2013 - 2022";


            // Init Connecteur Info, Version and Database path in a file
            Init.Init init = new Init.Init();
            if (init.isSettings())
            {
                init.Load();
                init.connecteurInfo.installation_dir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
                init.saveInfo();
            }
            else
            {
                init.connecteurInfo = new Connecteur_Info.ConnecteurInfo();
                init.connecteurInfo.installation_dir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
                init.saveInfo();
            }

            Forms.ProgressDialog progressDialog = new Forms.ProgressDialog();

            // Initialize the thread that will handle the background process
            Thread backgroundThread = new Thread(
                new ThreadStart(() =>
            {
                //Loading General Settings
                if (progressDialog.InvokeRequired)
                {
                    progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading General Settings...."));
                }
                for (int n = 0; n < 10; n++)
                {
                    Thread.Sleep(1);
                    progressDialog.UpdateProgress(n);
                }

                // Init database && tables
                Database.Database db = new Database.Database();
                db.initTables();


                Database.Model.Settings settings_ = db.settingsManager.get(db.connectionString, 1);
                if (settings_ != null)
                {
                    //settings.configurationGeneral.general.showWindow == 5  ---> show software
                    label_debugMode.Text    = ((settings_.showWindow == 5) ? "Mode Débugage : Activé" : "Mode Débugage : Désactivé");
                    label_tarifaire.Text    = ((settings_.priceType_active == 1 ? true : false) ? "Configuration Tarifaire : Activé" : "Config Tarifaire : Désactivé");
                    label_retraitement.Text = ((settings_.reprocess_active == 1 ? true : false) ? "Retraitement : Activé" : "Retraitement : Désactivé");
                }
                else
                {
                    try
                    {
                        using (Forms.GeneralConfig form = new Forms.GeneralConfig())
                        {
                            form.ShowDialog();
                        }
                    }
                    // Récupération d'une possible SDKException
                    catch (SDKException ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }



                //Loading Connexion Settings
                if (progressDialog.InvokeRequired)
                {
                    progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Connexion Settings...."));
                }
                for (int n = 10; n < 20; n++)
                {
                    Thread.Sleep(1);
                    progressDialog.UpdateProgress(n);
                }

                Connexion.ConnexionSaveLoad conn_Settings = new ConnexionSaveLoad();

                if (conn_Settings.isSettings())
                {
                    conn_Settings.Load();

                    label1.Text = "DSN ODBC : " + conn_Settings.configurationConnexion.ODBC.DNS;
                    label2.Text = "DSN ODBC Nom : " + conn_Settings.configurationConnexion.ODBC.USER;
                    label5.Text = "DSN SQL : " + conn_Settings.configurationConnexion.SQL.DNS;
                    label9.Text = "DSN SQL Nom : " + conn_Settings.configurationConnexion.SQL.USER;
                }
                else
                {
                    try
                    {
                        using (Forms.ConfigConnexion form = new Forms.ConfigConnexion())
                        {
                            form.ShowDialog();
                        }
                    }
                    // Récupération d'une possible SDKException
                    catch (SDKException ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }

                //Loading Import Settings
                if (progressDialog.InvokeRequired)
                {
                    progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Import Settings...."));
                }
                for (int n = 20; n < 40; n++)
                {
                    Thread.Sleep(1);
                    progressDialog.UpdateProgress(n);
                }

                Config_Import.ConfigurationSaveLoad import_Settings = new Config_Import.ConfigurationSaveLoad();


                if (import_Settings.isSettings())
                {
                    import_Settings.Load();

                    int cpt   = 0;
                    int count = -1;

                    //Doc Export Achat
                    //no config yet, so show désactivated only
                    cpt   = 0;
                    count = 3;
                    cpt  += ((import_Settings.configurationImport.Doc_Achat.Commande.Activate == "true") ? 1 : 0);
                    isDocAchatCommande = ((import_Settings.configurationImport.Doc_Achat.Commande.Activate == "true") ? true : false);
                    cpt += ((import_Settings.configurationImport.Doc_Achat.DSADV.Activate == "true") ? 1 : 0);
                    isDocAchatDESADV = ((import_Settings.configurationImport.Doc_Achat.DSADV.Activate == "true") ? true : false);
                    cpt += ((import_Settings.configurationImport.Doc_Achat.Facture.Activate == "true") ? 1 : 0);
                    isDocAchatFacture = ((import_Settings.configurationImport.Doc_Achat.Facture.Activate == "true") ? true : false);
                    label2.Text       = ((cpt == 0) ? "Document Achat d'import : désactivé" : "Document Achat d'import : " + cpt + "/" + count + " activé");

                    //Doc Export Vente
                    cpt   = 0;
                    count = 3;
                    cpt  += ((import_Settings.configurationImport.Doc_Ventes.Commande.Activate == "true") ? 1 : 0);
                    isDocVenteCommande = ((import_Settings.configurationImport.Doc_Ventes.Commande.Activate == "true") ? true : false);
                    cpt += ((import_Settings.configurationImport.Doc_Ventes.DSADV.Activate == "true") ? 1 : 0);
                    isDocVenteDESADV = ((import_Settings.configurationImport.Doc_Ventes.DSADV.Activate == "true") ? true : false);
                    cpt += ((import_Settings.configurationImport.Doc_Ventes.Facture.Activate == "true") ? 1 : 0);
                    isDocVenteFacture = ((import_Settings.configurationImport.Doc_Ventes.Facture.Activate == "true") ? true : false);
                    label9.Text       = ((cpt == 0) ? "Document Vente d'import : désactivé" : "Document Vente d'import : " + cpt + "/" + count + " activé");

                    // Stock
                    cpt          = 0;
                    count        = 1;
                    cpt         += ((import_Settings.configurationImport.Doc_Stock.Stock.Activate == "true") ? 1 : 0);
                    isDocStock   = ((import_Settings.configurationImport.Doc_Stock.Stock.Activate == "true") ? true : false);
                    label11.Text = ((cpt == 0) ? "Document de stock import : désactivé" : "Document de stock import : " + cpt + "/" + count + " activé");
                }
                else
                {
                    try
                    {
                        using (ConfigImport form = new ConfigImport())
                        {
                            form.ShowDialog();
                        }
                    }
                    // Récupération d'une possible SDKException
                    catch (SDKException ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }


                // Loading Export Settings
                if (progressDialog.InvokeRequired)
                {
                    progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Export Settings...."));
                }
                for (int n = 40; n < 60; n++)
                {
                    Thread.Sleep(1);
                    progressDialog.UpdateProgress(n);
                }

                Config_Export.ConfigurationSaveLoad export_Settings = new Config_Export.ConfigurationSaveLoad();

                if (export_Settings.isSettings())
                {
                    export_Settings.Load();

                    int cpt   = 0;
                    int count = -1;

                    //Doc Export Achat
                    //no config yet, so show désactivated only
                    cpt         = 0;
                    count       = 3;
                    label7.Text = ((cpt == 0) ? "Document Achat d'Export : désactivé" : "Document Achat d'Export : " + cpt + "/" + count + " activé");
                    groupBox_export_doc_achat.Enabled = ((cpt == 0) ? false : true);
                    label_export_doc_achat.Text       = ((cpt == 0) ? "Ces fonctionnalité ne sont pas accessible..." : ".....");

                    //Doc Export Vente
                    cpt         = 0;
                    count       = 3;
                    cpt        += ((export_Settings.configurationExport.Commande.Activate) ? 1 : 0);
                    cpt        += ((export_Settings.configurationExport.DSADV.Activate) ? 1 : 0);
                    cpt        += ((export_Settings.configurationExport.Facture.Activate) ? 1 : 0);
                    label8.Text = ((cpt == 0) ? "Document Vente d'Export : désactivé" : "Document Vente d'Export : " + cpt + "/" + count + " activé");
                    groupBox_export_doc_vente.Enabled    = ((cpt == 0) ? false : true);
                    label_groupBox_export_doc_vente.Text = ((cpt == 0) ? "la configuration est nécessaire. Veuillez vous rendre dans la configuration d'export et la remplir, merci..." : "");

                    // Stock
                    cpt          = 0;
                    count        = 1;
                    cpt         += ((export_Settings.configurationExport.Stock.Activate) ? 1 : 0);
                    label10.Text = ((cpt == 0) ? "Document stock d'Export : désactivé" : "Document stock d'Export : " + cpt + "/" + count + " activé");
                    groupBox_export_doc_stock.Enabled = ((cpt == 0) ? false : true);
                    label_export_doc_stock.Text       = ((cpt == 0) ? "Veuillez vous rendre dans la configuration d'export et la remplir, merci..." : "");
                }
                else
                {
                    try
                    {
                        using (ConfExport form = new ConfExport())
                        {
                            form.ShowDialog();
                        }
                    }
                    // Récupération d'une possible SDKException
                    catch (SDKException ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }

                //Loading Backup Settings
                if (progressDialog.InvokeRequired)
                {
                    progressDialog.BeginInvoke(new System.Action(() => progressDialog.Text = "Loading Backup Settings...."));
                }
                for (int n = 60; n < 80; n++)
                {
                    Thread.Sleep(1);
                    progressDialog.UpdateProgress(n);
                }

                if (File.Exists(pathModule + @"\SettingBackup.xml"))
                {
                    ConfigurationBackup backup = new ConfigurationBackup();
                    backup.Load();
                    label_backup_activation.Text     = ((backup.activate) ? "Activation : Oui" : "Activation : Non");
                    label_backup_generalLog.Text     = ((backup.general_Log != 0) ? "Log général : " + backup.general_Log + " jours" : "Log général : désactiver");
                    label_backup_importLog.Text      = ((backup.import_Log != 0) ? "Log d'import : " + backup.import_Log + " jours" : "Log d'import : désactiver");
                    label_backup_exportLog.Text      = ((backup.export_Log != 0) ? "Log d'export : " + backup.export_Log + " jours" : "Log d'export : désactiver");
                    label_backup_import_success.Text = ((backup.import_files_success != 0) ? "Fichier EDI import (Success) : " + backup.import_files_success + " jours" : "Fichier EDI import (Success) : désactiver");
                    label_backup_import_error.Text   = ((backup.import_files_error != 0) ? "Fichier EDI import (Erreur) : " + backup.import_files_error + " jours" : "Fichier EDI import (Erreur) : désactiver");
                    label_fichier_backup.Text        = ((backup.backup_files != 0) ? "Fichier EDI backup :  " + backup.backup_files + " jours" : "Fichier EDI backup : désactiver");
                }
                else
                {
                    try
                    {
                        using (Forms.ConfigBackup form = new Forms.ConfigBackup())
                        {
                            form.ShowDialog();
                        }
                    }
                    // Récupération d'une possible SDKException
                    catch (SDKException ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }


                bool ok = false;
                for (int n = 80; n < 100; n++)
                {
                    Thread.Sleep(1);
                    progressDialog.UpdateProgress(n);
                    if (n == 99)
                    {
                        ok = true;
                    }
                    ;
                }

                // Close the dialog if it hasn't been already
                if (ok && progressDialog.InvokeRequired)
                {
                    progressDialog.BeginInvoke(new System.Action(() => progressDialog.Close()));
                    string msg = "Vous pouvez réaliser l'import des documents commerciaux suivantes :\n\n";
                    msg       += "Import des bons de commandes d'achat : " + ((isDocAchatCommande) ? "activé" : "désactivé") + "\n";
                    msg       += "Import des bons de livraison d'achat : " + ((isDocAchatDESADV) ? "activé" : "désactivé") + "\n";
                    msg       += "Import des factures d'achat : " + ((isDocAchatFacture) ? "activé" : "désactivé") + "\n\n";
                    msg       += "Import des bons de commandes vente : " + ((isDocVenteCommande) ? "activé" : "désactivé") + "\n";
                    msg       += "Import des bons de livraison vente : " + ((isDocVenteDESADV) ? "activé" : "désactivé") + "\n";
                    msg       += "Import des factures vente : " + ((isDocVenteFacture) ? "activé" : "désactivé") + "\n\n";
                    msg       += "Import des stock : " + ((isDocStock) ? "activé" : "désactivé") + "\n";

                    label4.Text = msg;
                }
            }
                                ));

            // Start the background process thread
            backgroundThread.Start();

            // Open the dialog
            progressDialog.ShowDialog();
        }
Пример #6
0
        /// <summary>
        /// Génération du fichier d'import, lancement de l'application et import des commandes
        /// </summary>
        ///
        // Need to finish
        public List <Alert_Mail.Classes.Custom.CustomMailRecapLines> ExportStock(List <Alert_Mail.Classes.Custom.CustomMailRecapLines> recapLinesList_new)
        {
            if (!Directory.Exists(logDirectoryName_export))
            {
                Directory.CreateDirectory(logDirectoryName_export);
            }

            logFileName_export = logDirectoryName_export + @"\" + string.Format("LOG_Export_Stock_{0:dd-MM-yyyy HH.mm.ss}.txt", DateTime.Now);
            var logFile_export = File.Create(logFileName_export);

            //Write in the log file
            logFileWriter_export = new StreamWriter(logFile_export);
            //logFileWriter.Write(string.Format("{0:HH:mm:ss}", DateTime.Now) + " \r\n");
            logFileWriter_export.WriteLine("#####################################################################################");
            logFileWriter_export.WriteLine("################################ ConnecteurSage Sage ################################");
            logFileWriter_export.WriteLine("#####################################################################################");
            logFileWriter_export.WriteLine("");

            Config_Export.ConfigurationSaveLoad settings = new Config_Export.ConfigurationSaveLoad();
            settings.Load();
            logFileWriter_export.WriteLine(DateTime.Now + " | GetFacturesFromDataBase() : Répurère le statut dans la config export.");

            if (settings.configurationExport.Stock.Format.Equals("Véolog"))
            {
                string exportTo        = "";
                string exportStockPath = pathExport + @"\Export_Veolog";

                if (!Directory.Exists(exportStockPath))
                {
                    Directory.CreateDirectory(exportStockPath);
                }

                logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Path Export ==> " + exportStockPath);

                try
                {
                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Export Stock.");

                    if (string.IsNullOrEmpty(exportStockPath)) //check if the seleted path is empty
                    {
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Le chemin pour l'export du fichier stock liste doit être renseigné !");
                        logFileWriter_export.Flush();
                        logFileWriter_export.Close();
                        recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export du stock est annulée.", "Le chemin pour l'export du fichier stock liste doit être renseigné !", "", "", logFileName_export));
                        return(recapLinesList_new);
                    }

                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Récupérer le stock de tous les produits et leur stock.");

                    List <Stock> s = new List <Stock>();                           //creating list type stock
                    s = GetStockArticle(logFileWriter_export, recapLinesList_new); //call function GetStockArticle to get all the products and their stock

                    //testing purpose only :begin

                    /*Stock s1 = new Stock("product 1", "PROD1", "1234567891234", "59", "LOT-BDF9411123", "5.00000", "0");
                     * Stock s2 = new Stock("product 2", "PROD2", "4321987654321", "15", "MV32", "1.0000", "1");
                     * s.Add(s1);
                     * s.Add(s2);*/
                    //testing purpose only :end

                    if (s == null) //check if the list is empty or not
                    {
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Failed to obtain value from database : (Maybe failed to connect with database) ");
                    }
                    else
                    {
                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Nombre de Stock récupéré : " + s.Count);

                        string[] stocklines = new string[s.Count];                                                                                                                                                           //creating array to add output lines for file
                        int      i          = 0;
                        foreach (Stock stockline in s)                                                                                                                                                                       //reading line per line from the list
                        {
                            stocklines[i] = "L;" + stockline.reference + ";" + stockline.codebarre + ";" + stockline.stock + ";" + stockline.numerolot + ";" + stockline.lotqty + ";" + stockline.lotepuise + ";" + (i + 1); //adding lines into array for file
                            i++;                                                                                                                                                                                             //increment for further adding/reading into the array
                        }

                        string fileName_ = string.Format("stock_{0:yyMMddHHmmss}.csv", DateTime.Now); //file.
                        string fileName  = exportStockPath + @"\" + fileName_;                        //creating the file.

                        if (File.Exists(fileName))                                                    //verifying if the file exists else delete and recreate
                        {
                            File.Delete(fileName);                                                    //delete file.
                        }

                        using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileName)) // streaming the file
                        {
                            logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Écrire dans le fichier à : " + fileName);

                            foreach (string line in stocklines) //reading line per line from array
                            {
                                file.WriteLine(line);           //writing inside the file
                            }
                            file.WriteLine("F" + ";" + i);      //writing at the end of file

                            //export veolog
                            exportTo = @"Export\Veolog_Stock";
                        }

                        // *file has been generated at the end of the method using @fileName*

                        /*string myFileData = File.ReadAllText(fileName); //get all content of the created file (need to fix)
                         * if (myFileData.EndsWith(Environment.NewLine)) //check if at the end of the has empty return/jump character
                         * {
                         *  File.WriteAllText(@"D:\test_backup.csv", myFileData.TrimEnd(Environment.NewLine.ToCharArray()) ); //remove jump at the end of the file
                         * }*/

                        logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Le fichier a été généré à : " + fileName);

                        //add to backup folder
                        addFileToBackUp(pathExport + @"\BackUp\" + exportTo, pathExport + @"\" + fileName, fileName_, logFileWriter_export);
                    }
                }
                catch (Exception ex)
                {
                    //Exception pouvant survenir si lorsque l'accès au disque dur est refusé
                    logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : ERREUR :: " + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", ""));
                    logFileWriter_export.Flush();
                    logFileWriter_export.Close();
                    recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export du stock est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
                }
            }
            else
            {
                logFileWriter_export.WriteLine(DateTime.Now + "******************** Erreur Format Fichier ********************");
                logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Le format \"" + settings.configurationExport.Facture.Format + "\" n'existe pas dans le connecteur!");
                logFileWriter_export.WriteLine(DateTime.Now + " | ExportStock() : Vérifi le fichier de configuration \"" + Directory.GetCurrentDirectory() + @"\SettingExport.xml" + "\" à l'argument exportFactures_Format.");
                logFileWriter_export.Flush();
                recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export du stock est annulée.\nLe format \"" + settings.configurationExport.Stock.Format + "\" n'existe pas dans le connecteur!", "Le format \"" + settings.configurationExport.Stock.Format + "\" n'existe pas dans le connecteur!", "", "", logFileName_export));
            }


            logFileWriter_export.Flush();
            logFileWriter_export.Close();
            Console.WriteLine(DateTime.Now + " | ExportCommande() : Close.");
            return(recapLinesList_new);
        }
Пример #7
0
        /// <summary>
        /// Génération du fichier d'import, lancement de l'application et import des commandes
        /// </summary>
        public List <Alert_Mail.Classes.Custom.CustomMailRecapLines> ExportCommande(List <Alert_Mail.Classes.Custom.CustomMailRecapLines> recapLinesList_new)
        {
            string path = "";

            Init.Classes.SaveLoadInit setting = new Init.Classes.SaveLoadInit();
            setting.Load();
            path = setting.configurationGeneral.paths.EDI_Folder;

            string exportPath = path;
            string exportTo   = "";

            Order CommandeAExporter = null;

            if (!Directory.Exists(logDirectoryName_export))
            {
                Directory.CreateDirectory(logDirectoryName_export);
            }

            logFileName_export = logDirectoryName_export + @"\" + string.Format("LOG_Export_Commande_{0:dd-MM-yyyy HH.mm.ss}.txt", DateTime.Now);
            var logFile_export = File.Create(logFileName_export);

            //Write in the log file
            logFileWriter = new StreamWriter(logFile_export);
            //logFileWriter.Write(string.Format("{0:HH:mm:ss}", DateTime.Now) + " \r\n");
            logFileWriter.WriteLine("#####################################################################################");
            logFileWriter.WriteLine("################################ ConnecteurSage Sage ################################");
            logFileWriter.WriteLine("#####################################################################################");
            logFileWriter.WriteLine("");

            //Export all CMDs with status 1
            //Get Doc Entette DO_Statut

            /*  Get a list of 100 orders for Veolog with a DO_Statut == 1
             *  Export the 'Bon de Livraison' BC as .csv file
             *  send the csv file to Velog  */
            string[,] lits_of_stock = new string[100, 2];
            int countLimit = 0;

            using (OdbcConnection connexion = ConnexionManager.CreateOdbcConnexionSQL())
            {
                Config_Export.ConfigurationSaveLoad settings = new Config_Export.ConfigurationSaveLoad();
                try
                {
                    settings.Load();

                    connexion.Open();
                    OdbcCommand command = new OdbcCommand(QueryHelper.getCommandeStatut(true, settings.configurationExport.Commande.Status), connexion);

                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.getCommandeStatut(true, settings.configurationExport.Commande.Status));

                    using (IDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read()) // reads lines/rows from the query
                        {
                            //if (reader[1].ToString().Equals("1"))
                            //{
                            if (countLimit < 100)
                            {
                                lits_of_stock[countLimit, 0] = reader[0].ToString();     // cbMarq
                                lits_of_stock[countLimit, 1] = reader[1].ToString();     // DO_Statut
                                logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : result " + countLimit + " => cbMarq : " + reader[0].ToString() + " | DO_Statut : " + reader[1].ToString());
                                //Console.WriteLine(DateTime.Now + " | ExportCommande() : cbMarq = " + reader[0].ToString() + " DO_Statut = " + reader[1].ToString());
                                countLimit++;
                            }
                            //}
                        }
                    }
                    connexion.Close();
                }
                catch (OdbcException ex)
                {
                    logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() |  ********************** OdbcException *********************");
                    logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() |  SQL ===> " + QueryHelper.getCommandeStatut(true, settings.configurationExport.Commande.Status));
                    logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() |  Message : " + ex.Message + ".");
                    logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() |  Scan annulée");
                    logFileWriter.Flush();
                    logFileWriter.Close();
                    recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
                    return(recapLinesList_new);
                }
            }

            logFileWriter.Flush();
            Console.WriteLine(DateTime.Now + " | ExportCommande() :: countLimit:" + countLimit);
            logFileWriter.WriteLine("");

            for (int index = 0; index < countLimit; index++)
            {
                //Console.WriteLine("OK2 index:" + index+ " countLimit:" + countLimit+" ");
                //CommandeAExporter
                using (OdbcConnection connexion = ConnexionManager.CreateOdbcConnexionSQL())
                {
                    //Console.WriteLine("OK3");
                    try
                    {
                        //string deliveryClientName = "";
                        connexion.Open();

                        OdbcCommand command = new OdbcCommand(QueryHelper.getCoommandeById(true, lits_of_stock[index, 0]), connexion);

                        Console.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.getCoommandeById(true, lits_of_stock[index, 0]));

                        logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.getCoommandeById(true, lits_of_stock[index, 0]));

                        using (IDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read()) // reads lines/rows from the query
                            {
                                // DO_Piece, cli.CT_Num, Adresse, cmd.DO_DEVISE, cmd.DO_Date, cmd.DO_DateLivr, cmd.DO_Condition, cmd.DO_TotalHT, cli.CT_Intitule, cmd.DO_Motif, cli.CT_EdiCode, cmd.N_CATCOMPTA, cmd.DO_MOTIF, liv.LI_Contact, cli.N_Expedition, cli.CT_Telephone, cli.CT_EMail, cli.CT_Commentaire

                                CommandeAExporter = new Order(reader[0].ToString(), reader[1].ToString(), reader[2].ToString(), reader[3].ToString(), reader[4].ToString(), reader[5].ToString(), reader[6].ToString(), reader[7].ToString(), reader[8].ToString(), reader[9].ToString(), reader[10].ToString(), reader[11].ToString(), reader[12].ToString());

                                CommandeAExporter.telephone    = reader[13].ToString();
                                CommandeAExporter.email        = reader[14].ToString();
                                CommandeAExporter.commentaires = "";
                                CommandeAExporter.Transporteur = "";
                            }
                        }
                        if (CommandeAExporter != null)
                        {
                            docRefMail = CommandeAExporter.NumCommande;
                            if (!CommandeAExporter.NomClient.Equals("") && !CommandeAExporter.NomClient.Equals(" "))
                            {
                                logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Export Commande du client \"" + CommandeAExporter.NomClient + "\"");
                            }
                            else
                            {
                                logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Export Commande du client \"...\"");
                            }
                            try
                            {
                                if (CommandeAExporter.deviseCommande == "0")
                                {
                                    CommandeAExporter.deviseCommande = "1";
                                }
                                if (CommandeAExporter.deviseCommande != "")
                                {
                                    CommandeAExporter.deviseCommande = getDeviseIso(CommandeAExporter.deviseCommande);
                                }
                                if (CommandeAExporter.DO_MOTIF == "")
                                {
                                    CommandeAExporter.DO_MOTIF = CommandeAExporter.NumCommande;
                                }
                                if (CommandeAExporter.DO_MOTIF == "")
                                {
                                    CommandeAExporter.DO_MOTIF = "";
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande non enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'.");
                                }
                                else
                                {
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande non enregistrer, valuer '" + CommandeAExporter.DO_MOTIF + "'.");
                                }
                                if (CommandeAExporter.codeClient == "")
                                {
                                    CommandeAExporter.codeClient = "";
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Code GNL client n'est pas enregistrer, valeur '" + CommandeAExporter.codeClient + "'.");
                                }
                                else
                                {
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Code GNL client n'est pas enregistrer, valeur '" + CommandeAExporter.codeClient + "'.");
                                }
                                if (!IsNumeric(CommandeAExporter.DO_MOTIF) && CommandeAExporter.DO_MOTIF != "")
                                {
                                    CommandeAExporter.DO_MOTIF = "";
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande est mal enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'.");
                                }
                                else
                                {
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande est mal enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'.");
                                }
                                if (!IsNumeric(CommandeAExporter.codeClient) && CommandeAExporter.codeClient != "")
                                {
                                    CommandeAExporter.DO_MOTIF = "";
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Code GNL client est mal enregistrer.");
                                }
                                else
                                {
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : N° de commande est mal enregistrer, valeur '" + CommandeAExporter.DO_MOTIF + "'.");
                                }
                                var fileName = string.Format("EDI_ORDERS." + CommandeAExporter.codeClient + "." + CommandeAExporter.NumCommande + "." + ConvertDate(CommandeAExporter.DateCommande) + "." + CommandeAExporter.adresseLivraison + ".{0:yyyyMMddhhmmss}.csv", DateTime.Now);

                                fileName = fileName.Replace("...", ".");


                                //Verifier le format utilise depuis le fichier de config
                                Config_Export.ConfigurationSaveLoad settings = new Config_Export.ConfigurationSaveLoad();
                                settings.Load();

                                bool veolog_format = (settings.configurationExport.Commande.Format == "Véolog" ? true : false);
                                Console.WriteLine("veolog_format : " + veolog_format);
                                if (veolog_format)
                                {
                                    exportTo = @"Export\Veolog_Commande";
                                    if (!exportPath.Contains("Export_Veolog"))
                                    {
                                        exportPath = exportPath + @"\Export_Veolog";
                                    }

                                    if (!Directory.Exists(exportPath))
                                    {
                                        Directory.CreateDirectory(exportPath);
                                    }

                                    Connexion.ConnexionSaveLoad connexionSaveLoad = new Connexion.ConnexionSaveLoad();
                                    connexionSaveLoad.Load();

                                    veolog_format = true;
                                    fileName      = string.Format("orders_" + connexionSaveLoad.configurationConnexion.SQL.PREFIX + "_{0:yyyyMMdd}_" + CommandeAExporter.NumCommande + ".csv", DateTime.Now);
                                }
                                else
                                {
                                    exportTo = @"Export\Plat_Commande";
                                    if (!exportPath.Contains("Export_Plat"))
                                    {
                                        exportPath = exportPath + @"\Export_Plat";
                                    }

                                    if (!Directory.Exists(exportPath))
                                    {
                                        Directory.CreateDirectory(exportPath);
                                    }

                                    veolog_format = false;
                                    fileName      = fileName.Replace("..", ".");
                                }

                                bool veolog_file_check = false;
                                using (StreamWriter orderFileWriter = new StreamWriter(exportPath + @"\" + fileName, false, Encoding.Default))
                                {
                                    logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Ecrire le fichier dans : " + exportPath + @"\" + fileName);

                                    //Console.WriteLine("Export File Name: " + exportPath + @"\" + fileName);

                                    if (veolog_format)
                                    {
                                        //format Veolog
                                        string[] adresse            = new string[5];
                                        string[] date_time_delivery = new string[2];

                                        adresse            = CommandeAExporter.adresseLivraison.Split(',');
                                        date_time_delivery = CommandeAExporter.DateLivraison.Split(' ');

                                        //Split the adresse
                                        CommandeAExporter.adresse     = adresse[0];
                                        CommandeAExporter.adresse_2   = adresse[1];
                                        CommandeAExporter.codepostale = adresse[2];
                                        CommandeAExporter.ville       = adresse[3];

                                        // Get the country
                                        CommandeAExporter.pays = adresse[4];

                                        //Get Country ISO
                                        CountryFormatISO iso = new CountryFormatISO();
                                        string[,] country_iso = iso.getAllStaticCountryISOCode();

                                        if (CommandeAExporter.pays == "")
                                        {
                                            CommandeAExporter.pays = "France";
                                        }

                                        for (int i = 0; i < country_iso.GetLength(0); i++)
                                        {
                                            if (country_iso[i, 0].ToUpper().Equals(CommandeAExporter.pays.ToUpper()))
                                            {
                                                CommandeAExporter.pays = country_iso[i, 1];
                                            }
                                        }


                                        //Split the DateTime
                                        DateTime date_delivery = Convert.ToDateTime(CommandeAExporter.DateLivraison);

                                        //CommandeAExporter.DateCommande = date_time[0].Replace("/", "");
                                        //CommandeAExporter.DateLivraison = date_delivery.Year + "" + date_delivery.Month + "" + date_delivery.Day + "";
                                        CommandeAExporter.DateLivraison = string.Format("{0:yyyyMMdd}", date_delivery);

                                        string[] time_delivery = date_time_delivery[1].Split(':');
                                        CommandeAExporter.HeureLivraison = time_delivery[0] + "" + time_delivery[1];

                                        orderFileWriter.WriteLine("E;" + CommandeAExporter.NumCommande + ";" + CommandeAExporter.codeClient + ";;" + CommandeAExporter.NomClient + ";" + CommandeAExporter.adresse + ";" + CommandeAExporter.adresse_2 + ";;" + CommandeAExporter.codepostale + ";" + CommandeAExporter.ville + ";" + CommandeAExporter.pays + ";" + CommandeAExporter.telephone + ";" + CommandeAExporter.email + ";" + CommandeAExporter.DateLivraison + ";" + CommandeAExporter.HeureLivraison + ";" + CommandeAExporter.Transporteur + ";;;" + CommandeAExporter.commentaires); // E line

                                        CommandeAExporter.Lines = getLigneCommande(CommandeAExporter.NumCommande, recapLinesList_new);                                                                                                                                                                                                                                                                                                                                                                                                                                                              // Maybe thisssss

                                        int      qteTotal         = 0;
                                        string[] declarerpourrien = new string[2];
                                        for (int i = 0; i < CommandeAExporter.Lines.Count; i++)
                                        {
                                            if (!IsNumeric(CommandeAExporter.Lines[i].codeAcheteur))
                                            {
                                                CommandeAExporter.Lines[i].codeAcheteur = "";
                                            }

                                            if (!IsNumeric(CommandeAExporter.Lines[i].codeFournis))
                                            {
                                                CommandeAExporter.Lines[i].codeFournis = "";
                                            }

                                            declarerpourrien = CommandeAExporter.Lines[i].Quantite.Split(',');
                                            qteTotal         = qteTotal + Convert.ToInt16(declarerpourrien[0]);

                                            //add zeros to the article reference only for ALDI
                                            Connexion.ConnexionSaveLoad connexionSaveLoad = new Connexion.ConnexionSaveLoad();
                                            connexionSaveLoad.Load();
                                            string dns = connexionSaveLoad.configurationConnexion.SQL.PREFIX;

                                            if (dns.Contains("CFCI") || dns.Contains("TABLEWEAR") && CommandeAExporter.NomClient.Contains("ALDI"))
                                            {
                                                int maxChar = 13;
                                                int refChar = CommandeAExporter.Lines[i].codeArticle.Length;
                                                int addZero = maxChar - refChar;
                                                for (int index1 = 0; index1 < addZero; index1++)
                                                {
                                                    CommandeAExporter.Lines[i].codeArticle = "0" + CommandeAExporter.Lines[i].codeArticle;
                                                }
                                            }

                                            orderFileWriter.WriteLine("L;;" + ((CommandeAExporter.Lines[i].codeArticle.Length > 30) ? CommandeAExporter.Lines[i].codeArticle.Substring(0, 30) : CommandeAExporter.Lines[i].codeArticle) + ";;" + declarerpourrien[0] + ";"); // L line
                                        }
                                        orderFileWriter.WriteLine("F;" + CommandeAExporter.Lines.Count + ";" + qteTotal + ";");                                                                                                                                              // F line
                                        orderFileWriter.Close();
                                    }
                                    else
                                    {
                                        //Format Fichier plat
                                        orderFileWriter.WriteLine("ORDERS;" + CommandeAExporter.DO_MOTIF + ";" + CommandeAExporter.codeClient + ";" + CommandeAExporter.codeAcheteur + ";" + CommandeAExporter.codeFournisseur + ";;;" + CommandeAExporter.nom_contact + "." + CommandeAExporter.adresseLivraison.Replace("..", ".").Replace("...", ".") + ";" + CommandeAExporter.deviseCommande + ";;");
                                        if (CommandeAExporter.DateCommande != "")
                                        {
                                            CommandeAExporter.DateCommande = ConvertDate(CommandeAExporter.DateCommande);
                                        }

                                        //if (CommandeAExporter.DateCommande != " ")
                                        //{
                                        //    CommandeAExporter.conditionLivraison = "";
                                    }
                                }

                                //Vérifier si le fichier a bien été créé et écrit
                                if (File.Exists(exportPath + @"\" + fileName))
                                {
                                    if (new FileInfo(exportPath + @"\" + fileName).Length > 0)
                                    {
                                        veolog_file_check = true;

                                        //add to backup folder
                                        addFileToBackUp(path + @"\BackUp\" + exportTo, exportPath + @"\" + fileName, fileName, logFileWriter);
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("File: " + fileName + " does not exist!!!");
                                    logFileWriter.WriteLine(DateTime.Now + " : File: " + fileName + " does not exist!!!");
                                    //Console.ReadLine();
                                }

                                //update veolog delivery date
                                if (veolog_file_check)
                                {
                                    try
                                    {
                                        string delivery_date_veolog = string.Format("{0:dd/MM/yyyy hh:mm:ss}", DateTime.Now);
                                        logFileWriter.WriteLine("");
                                        logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Ajouter la date de livraision \"" + delivery_date_veolog + "\" de Veolog de la commande \"" + CommandeAExporter.NumCommande + "\".");

                                        logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.updateVeologDeliveryDate(true, CommandeAExporter.NumCommande, delivery_date_veolog));
                                        OdbcCommand command1 = new OdbcCommand(QueryHelper.updateVeologDeliveryDate(true, CommandeAExporter.NumCommande, delivery_date_veolog), connexion);
                                        {
                                            using (IDataReader reader = command1.ExecuteReader())
                                            {
                                                logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Date de livraison veolog à jour !");
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        logFileWriter.WriteLine("");
                                        logFileWriter.WriteLine(DateTime.Now + " ********** Erreur ********** ");

                                        if (File.Exists(exportPath + @"\" + fileName))
                                        {
                                            try
                                            {
                                                File.Delete(exportPath + @"\" + fileName);
                                                logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" est supprimer !.");
                                            }
                                            catch (Exception exf)
                                            {
                                                logFileWriter.WriteLine(DateTime.Now + " ********** Erreur Delete File ********** ");
                                                logFileWriter.WriteLine(DateTime.Now + " Impossible de supprimer le fichier \" " + exportPath + @"\" + fileName + " \".");
                                                logFileWriter.WriteLine(DateTime.Now + " Message: " + exf.Message);
                                            }
                                        }
                                        else
                                        {
                                            logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" n'existe plus (peut déjà être envoyé en EDI).");
                                        }

                                        logFileWriter.WriteLine(DateTime.Now + " Message: " + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", ""));
                                        logFileWriter.WriteLine(DateTime.Now + " Export Annuler.");
                                        logFileWriter.Flush();
                                        logFileWriter.Close();

                                        if (ex.Message.Contains("Cet élément est en cours d'utilisation !"))
                                        {
                                            logFileWriter.WriteLine("");
                                            logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Cet élément est en cours d'utilisation ! Impossible de changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\".");
                                            recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée. Cet élément est en cours d'utilisation ! Veuillez fermer la fenêtre de commande dans Sage afin que la commande puisse être exportée.", "Cet élément est en cours d'utilisation ! Impossible de mettre la date de livraison veolog à jour dans le champs \"Veolog\".", ex.StackTrace, "", logFileName_export));
                                        }
                                        else
                                        {
                                            logFileWriter.WriteLine("");
                                            logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : " + ex.Message);
                                            recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
                                        }

                                        return(recapLinesList_new);
                                    }


                                    //update order statut
                                    try
                                    {
                                        logFileWriter.WriteLine("");
                                        logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\".");

                                        logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : SQL ===> " + QueryHelper.changeOrderStatut(true, CommandeAExporter.NumCommande));
                                        OdbcCommand command1 = new OdbcCommand(QueryHelper.changeOrderStatut(true, CommandeAExporter.NumCommande), connexion);
                                        {
                                            using (IDataReader reader = command1.ExecuteReader())
                                            {
                                                while (reader.Read())
                                                {
                                                    //Statut Update
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        //Exceptions pouvant survenir durant l'exécution de la requête SQL
                                        logFileWriter.WriteLine("");
                                        logFileWriter.WriteLine(DateTime.Now + " ********** Erreur ********** ");

                                        if (File.Exists(exportPath + @"\" + fileName))
                                        {
                                            try
                                            {
                                                File.Delete(exportPath + @"\" + fileName);
                                                logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" est supprimer !.");
                                            }
                                            catch (Exception exf)
                                            {
                                                logFileWriter.WriteLine(DateTime.Now + " ********** Erreur Delete File ********** ");
                                                logFileWriter.WriteLine(DateTime.Now + " Impossible de supprimer le fichier \" " + exportPath + @"\" + fileName + " \".");
                                                logFileWriter.WriteLine(DateTime.Now + " Message: " + exf.Message);
                                            }
                                        }
                                        else
                                        {
                                            logFileWriter.WriteLine(DateTime.Now + " Le fichier \" " + exportPath + @"\" + fileName + " \" n'existe plus (peut déjà être envoyé en EDI).");
                                        }

                                        logFileWriter.WriteLine(DateTime.Now + " Message: " + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", ""));
                                        logFileWriter.WriteLine(DateTime.Now + " Export Annuler.");
                                        logFileWriter.Flush();
                                        // logFileWriter.Close();

                                        if (ex.Message.Contains("Cet élément est en cours d'utilisation !"))
                                        {
                                            logFileWriter.WriteLine("");
                                            logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Cet élément est en cours d'utilisation ! Impossible de changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\".");
                                            recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée. Cet élément est en cours d'utilisation ! Veuillez fermer la fenêtre de commande dans Sage afin que la commande puisse être exportée.", "Cet élément est en cours d'utilisation ! Impossible de changer le statut de la commande \"" + CommandeAExporter.NumCommande + "\".", ex.StackTrace, "", logFileName_export));
                                        }
                                        else
                                        {
                                            logFileWriter.WriteLine("");
                                            logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : " + ex.Message);
                                            recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
                                        }

                                        //recapLinesList_new.Add(new CustomMailRecapLines(docRefMail, "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
                                        return(recapLinesList_new);
                                    }
                                }

                                logFileWriter.WriteLine("");
                                logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : Commande exportée avec succés.");

                                //jamp:;

                                //logFileWriter.Close();
                                //Close();
                            }
                            catch (Exception ex)
                            {
                                //Exception pouvant survenir si lorsque l'accès au disque dur est refusé
                                logFileWriter.WriteLine(DateTime.Now + " | ExportCommande() : ERREUR :: " + ex.Message);
                                logFileWriter.Flush();
                                logFileWriter.Close();
                                Console.WriteLine(DateTime.Now + " | ExportCommande() : ERREUR :: " + ex.Message);
                                recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
                            }
                        }
                        else
                        {
                            Console.WriteLine("CommandeAExporter == null");
                        }

                        //Console.WriteLine(DateTime.Now + " | ExportCommande() : Connexion close.");
                        connexion.Close();
                    }
                    catch (OdbcException ex)
                    {
                        logFileWriter.WriteLine("");
                        logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() |  ********************** OdbcException *********************");
                        logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() |  Message : " + ex.Message + ".");
                        logFileWriter.WriteLine(DateTime.Now + " : ExportCommande() |  Scan annulée");
                        logFileWriter.Flush();
                        logFileWriter.Close();
                        recapLinesList_new.Add(new Alert_Mail.Classes.Custom.CustomMailRecapLines(docRefMail, "", "L'export de la commande est annulée.", ex.Message, ex.StackTrace, "", logFileName_export));
                        return(recapLinesList_new);
                    }
                }

                logFileWriter.Flush();
            }
            logFileWriter.Close();
            return(recapLinesList_new);
        }
Пример #8
0
        private void ExportStock(StreamWriter logFileWriter, Config_Export.ConfigurationSaveLoad exportSettings)
        {
            string exportPath = textBox1.Text;

            try
            {
                logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : Export Stock.");

                if (string.IsNullOrEmpty(exportPath))                                                        //check if the seleted path is empty
                {
                    MessageBox.Show("Le chemin pour l'export du fichier stock liste doit être renseigné !"); //if yes prompt error message

                    logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : Le chemin pour l'export du fichier stock liste doit être renseigné !");
                    logFileWriter.Close();
                    return;
                }

                logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : Récupérer le stock de tous les produits et leur stock.");

                List <Stock> s = new List <Stock>(); //creating list type stock
                s = GetStockArticle();               //call function GetStockArticle to get all the products and their stock

                //testing purpose only :begin

                /*Stock s1 = new Stock("product 1", "PROD1", "1234567891234", "59", "LOT-BDF9411123", "5.00000", "0");
                 * Stock s2 = new Stock("product 2", "PROD2", "4321987654321", "15", "MV32", "1.0000", "1");
                 * s.Add(s1);
                 * s.Add(s2);*/
                //testing purpose only :end

                if (s == null)                                                                                          //check if the list is empty or not
                {
                    MessageBox.Show("Failed to obtain value from database : (Maybe failed to connect with database) "); //show failed to connect with database

                    logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : Failed to obtain value from database : (Maybe failed to connect with database) ");
                }
                else
                {
                    logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : Nombre de Stock récupéré : " + s.Count);

                    string[] stocklines = new string[s.Count];                                                                                                                                                           //creating array to add output lines for file
                    int      i          = 0;
                    foreach (Stock stockline in s)                                                                                                                                                                       //reading line per line from the list
                    {
                        stocklines[i] = "L;" + stockline.reference + ";" + stockline.codebarre + ";" + stockline.stock + ";" + stockline.numerolot + ";" + stockline.lotqty + ";" + stockline.lotepuise + ";" + (i + 1); //adding lines into array for file
                        i++;                                                                                                                                                                                             //increment for further adding/reading into the array
                    }

                    if (exportSettings.configurationExport.Stock.Format.Equals("Plat"))
                    {
                        string fileName = string.Format(exportPath + @"\" + "stock_{0:yyMMddHHmmss}.csv", DateTime.Now); //creating the file.

                        if (File.Exists(fileName))                                                                       //verifying if the file exists else delete and recreate
                        {
                            File.Delete(fileName);                                                                       //delete file.
                        }

                        using (System.IO.StreamWriter file = new System.IO.StreamWriter(fileName)) // streaming the file
                        {
                            logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : Écrire dans le fichier à : " + fileName);

                            foreach (string line in stocklines) //reading line per line from array
                            {
                                file.WriteLine(line);           //writing inside the file
                            }
                            file.WriteLine("F" + ";" + i);      //writing at the end of file
                        }

                        // *file has been generated at the end of the method using @fileName*

                        /*string myFileData = File.ReadAllText(fileName); //get all content of the created file (need to fix)
                         * if (myFileData.EndsWith(Environment.NewLine)) //check if at the end of the has empty return/jump character
                         * {
                         *  File.WriteAllText(@"D:\test_backup.csv", myFileData.TrimEnd(Environment.NewLine.ToCharArray()) ); //remove jump at the end of the file
                         * }*/

                        MessageBox.Show("File has been generated at : " + fileName); //show message file has been generated

                        logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : Le fichier a été généré à : " + fileName);
                    }
                    else
                    {
                        MessageBox.Show("Le format \"" + exportSettings.configurationExport.DSADV.Format + "\" d'export n'existe pas dans le connecteur!", "Erreur Format Fichier", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        logFileWriter.WriteLine(DateTime.Now + "******************** Erreur Format Fichier ********************");
                        logFileWriter.WriteLine(DateTime.Now + " | ExportFacture() : Le format \"" + exportSettings.configurationExport.DSADV.Format + "\" n'existe pas dans le connecteur!");
                        logFileWriter.WriteLine(DateTime.Now + " | ExportFacture() : Vérifi le fichier de configuration \"" + Directory.GetCurrentDirectory() + @"\SettingExport.xml" + "\" à l'argument Facture => Format.");
                        logFileWriter.Flush();
                        logFileWriter.Close();
                        return;
                    }

                    logFileWriter.Flush();
                    logFileWriter.Close();
                }
            }
            catch (Exception ex)
            {
                //Exception pouvant survenir si lorsque l'accès au disque dur est refusé
                MessageBox.Show("" + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", ""), "Erreur!!",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

                logFileWriter.WriteLine(DateTime.Now + " | ExportStock() : ERREUR :: " + ex.Message.Replace("[CBase]", "").Replace("[Simba]", " ").Replace("[Simba ODBC Driver]", "").Replace("[Microsoft]", " ").Replace("[Gestionnaire de pilotes ODBC]", "").Replace("[SimbaEngine ODBC Driver]", " ").Replace("[DRM File Library]", ""));
                logFileWriter.Close();
            }
        }