Example #1
0
        public static string GenererPrefac(string annee, string mois, int intmois)
        {
            DateTime dateselectionnee  = new DateTime(2010, intmois, 1);
            string   mmmoisselectionne = dateselectionnee.ToString("MM");

            if (cheminmodeleprefacexcel == "")
            {
                //Message d'alerte
                //MessageBox.Show("Vous devez spécifier le répertoire de destination des préfacs");

                //Extraction du modèle depuis une ressource.
                cheminmodeleprefacexcel = Directory.GetCurrentDirectory() + "\\Doc\\" + "2020-01 PREFAC - modele.xls";

                using (FolderBrowserDialog openBrowserDialog = new FolderBrowserDialog())
                {
                    openBrowserDialog.Description = "Sélectionnez le répertoire de génération des préfacs";

                    if (openBrowserDialog.ShowDialog() == DialogResult.OK)
                    {
                        //Get the path of specified file
                        chemindestinationprefac = openBrowserDialog.SelectedPath + "\\";
                    }
                }
            }

            //écrire dans excel
            Excel.Application excelApp = new Excel.Application();
            if (excelApp != null)
            {
                //ouverture du modèle
                Excel.Workbook  excelWorkbook  = excelApp.Workbooks.Open(cheminmodeleprefacexcel);
                Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelWorkbook.Sheets["Feuil1"];

                //récupération des comptes dans la méthode
                DBConnect.DbConnection();
                List <ENT_Comptes> listeComptes = DAL_Comptes.GetAllComptes(DBConnect.dbconn);

                //récupération des actités dans la méthode
                List <ENT_Activites> ListeActivites = DAL_Activites.GetAllActivites(DBConnect.dbconn);

                //récupération des nom utilisateur distinct
                List <ENT_Activites> ListeUtilisateurs = DAL_Activites.SelectDistinctUserofActivites(DBConnect.dbconn);
                //Boucle création des pre factures
                //on commence par les montants mensuel et ponctuels
                foreach (ENT_Comptes entcompt in listeComptes)
                {
                    float totalgtht = 0;

                    excelWorksheet.Cells[14, 6] = entcompt.Filiale;
                    if (entcompt.Nomclient != null)
                    {
                        excelWorksheet.Cells[15, 1] = "Contact : " + entcompt.Nomclient;
                    }
                    //Ajout des lignes pour Montant Mensuel

                    excelWorksheet.Cells[29, 2]  = entcompt.Descriptionmontantmensuel;
                    excelWorksheet.Cells[29, 7]  = entcompt.Montantmensuel;
                    excelWorksheet.Cells[29, 10] = entcompt.Montantmensuel;

                    //ajout des lignes pour montant ponctuel
                    excelWorksheet.Cells[30, 2]  = entcompt.Descriptionmontantponctuel;
                    excelWorksheet.Cells[30, 7]  = entcompt.Montantponctuel;
                    excelWorksheet.Cells[30, 10] = entcompt.Montantponctuel;
                    excelWorksheet.Cells[31, 2]  = "Prestation de Gestion de projet informatique";


                    totalgtht += entcompt.Montantmensuel;
                    totalgtht += entcompt.Montantponctuel;

                    //on supprimer le montant ponctuel du compte
                    entcompt.Montantponctuel            = 0;
                    entcompt.Descriptionmontantponctuel = "";
                    DAL_Comptes.UpdateComptes(DBConnect.dbconn, entcompt);

                    //excelApp.ActiveWorkbook.SaveAs(Path.Combine(Path.GetDirectoryName(chemindestinationprefac), annee + "-" + mmmoisselectionne + " - " + entcompt.Filiale + ".xlsx"), Excel.XlFileFormat.xlWorkbookDefault);

                    int y = 2;

                    //boucle dans les utilisateurs distinct d'activite
                    foreach (ENT_Activites ActNomutilisateur in ListeUtilisateurs)
                    {
                        //MessageBox.Show("je suis ici " + ActNomutilisateur.Nomutilisateur);
                        //Boucle sur les utilisateurs

                        float compteurtemps         = 0;
                        float tauxjournalier        = 0;
                        float totalhtparutilisateur = 0;

                        switch (ActNomutilisateur.Nomutilisateur)
                        {
                        case "Lepain":
                            Console.WriteLine("Lepain");
                            tauxjournalier = 71;
                            //Console.WriteLine("Case 1");
                            break;

                        case "Coste":
                            Console.WriteLine("Coste");
                            tauxjournalier = 85;
                            //Console.WriteLine("Case 2");
                            break;

                        case "Boumahrou":
                            Console.WriteLine("Boumahrou");
                            tauxjournalier = 64;
                            break;

                        default:
                            //Console.WriteLine("Default case");
                            break;
                        }
                        //boucle dans les activités
                        foreach (ENT_Activites Activite in ListeActivites)
                        {
                            if (ActNomutilisateur.Nomutilisateur == Activite.Nomutilisateur & entcompt.Id == Activite.ENT_ComptesId)
                            {
                                Console.WriteLine("Compteur de temps : " + compteurtemps);
                                compteurtemps += Activite.Temps;
                            }
                        }
                        totalhtparutilisateur            = compteurtemps * tauxjournalier;
                        totalgtht                       += totalhtparutilisateur;
                        excelWorksheet.Cells[30 + y, 2]  = "Gestion de projet - " + ActNomutilisateur.Nomutilisateur;
                        excelWorksheet.Cells[30 + y, 7]  = totalhtparutilisateur;
                        excelWorksheet.Cells[30 + y, 10] = totalhtparutilisateur;
                        y++;
                    }
                    Console.WriteLine("le totalht est : " + totalgtht);
                    excelWorksheet.Cells[14, 6]  = entcompt.Filiale;
                    excelWorksheet.Cells[15, 1]  = "Contact : " + entcompt.Contact;
                    excelWorksheet.Cells[49, 10] = totalgtht;
                    //excelWorksheet.Cells[49, 10] = "et oui mon petit";
                    excelWorksheet.Cells[24, 2] = "Gestion de projet du mois de " + mois + " pour : " + entcompt.Nomclient;
                    excelApp.ActiveWorkbook.SaveAs(Path.Combine(Path.GetDirectoryName(chemindestinationprefac), annee + "-" + mmmoisselectionne + " - " + entcompt.Filiale + ".xlsx"), Excel.XlFileFormat.xlWorkbookDefault);

                    Console.WriteLine("fin du fichier excel");
                }//fin de foreach liste comptes
                excelWorkbook.Close();
                excelApp.Quit();
            }
            return("Prefac générées !");
        }
Example #2
0
        //Bouton Importer fichier csv
        private void SélectionnerLeFichierDactivitéToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //initialisation de la db
            DBConnect.DbConnection();

            //Variables de sélection du mois en cours
            int      monthcombo       = comboBox1.SelectedIndex + 1;
            int      yearcombo        = Int32.Parse(comboBox3.Text);
            DateTime DateSelectionnee = new DateTime(yearcombo, monthcombo, 1);

            //Liste des activités à charger depuis csv
            List <ENT_Activites> activiteCollection = new List <ENT_Activites>();
            //on ouvre la sélection d'un fichier

            var filePath = string.Empty;

            using (OpenFileDialog openFileDialog = new OpenFileDialog())
            {
                //openFileDialog.InitialDirectory = "c:\\";
                openFileDialog.Filter           = "fichier csv (*.csv)|*.csv|Tous les fichiers (*.*)|*.*";
                openFileDialog.FilterIndex      = 1;
                openFileDialog.RestoreDirectory = true;

                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    //Get the path of specified file
                    filePath = openFileDialog.FileName;
                }
            }
            //suppression des activités pour le mois en cours
            DAL_Activites.DeleteAll(DBConnect.dbconn);

            //On charge tout dans la collection d'activite
            if (filePath != "")
            {
                using (TextFieldParser parser = new TextFieldParser(filePath))
                {
                    parser.TextFieldType = FieldType.Delimited;
                    parser.SetDelimiters(";");
                    while (!parser.EndOfData)
                    {
                        //Processing row
                        string[] fields = parser.ReadFields();
                        //MessageBox.Show(fields[0]);
                        if (fields[0] != "Date")
                        {
                            try
                            {
                                DateTime madate = DateTime.ParseExact(fields[0], "dd/MM/yy", CultureInfo.InvariantCulture);
                                if (madate.Month == DateSelectionnee.Month & madate.Year == DateSelectionnee.Year)
                                {
                                    //MessageBox.Show("on est dans la date ! " + fields[0]);
                                    //on ajoute la ligne dans notre activitecsv
                                    ENT_Activites monActivite = new ENT_Activites();
                                    Console.WriteLine(fields[0]);
                                    monActivite.Dateact        = DateTime.ParseExact(fields[0], "dd/MM/yy", CultureInfo.InvariantCulture);
                                    monActivite.Temps          = float.Parse(fields[1], CultureInfo.InvariantCulture.NumberFormat);
                                    monActivite.Tache          = fields[2];
                                    monActivite.Nomutilisateur = fields[3];
                                    monActivite.Projet         = fields[4];

                                    //récupération du compte
                                    ENT_Comptes Moncompte = DAL_Comptes.GetOneComptesByFiliale(DBConnect.dbconn, fields[7]);
                                    if (Moncompte.Id > 0)
                                    {
                                        //on affecte le compte à l'activité
                                        monActivite.ENT_ComptesId = Moncompte.Id;
                                        monActivite.ENT_Comptes   = Moncompte;
                                        //MessageBox.Show(Moncompte.Id.ToString());
                                    }
                                    else
                                    {
                                        //on créé le compte
                                        ENT_Comptes Moncompte2 = new ENT_Comptes();
                                        Moncompte2.Filiale = fields[7];
                                        DAL_Comptes.CreateComptes(DBConnect.dbconn, Moncompte2);
                                        //on affecte le compte à l'activité
                                        monActivite.ENT_Comptes   = Moncompte2;
                                        monActivite.ENT_ComptesId = Moncompte2.Id;
                                    }

                                    //on ajout l'activité à la liste d'activite
                                    activiteCollection.Add(monActivite);
                                }
                            }
                            catch (FormatException)
                            {
                                Console.WriteLine("{0} n'est pas dans le format dd/MM/yy", fields[0]);
                            }
                        }
                    }
                    //on persiste toutes les activités en base
                    DAL_Activites.InsertListofActivities(DBConnect.dbconn, activiteCollection);
                    //GestionCSVActivite.listeActivite = activiteCollection;

                    /*
                     * GestionCSVActivite.ListeClientDistinct();
                     * GestionCSVActivite.ListeUtilisateurDistinct();
                     */
                    MessageBox.Show("Activitès chargées !");
                    //on raffraichit notre grid
                    refreshDataGridView();
                }
            }
        }