Exemple #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 !");
        }
Exemple #2
0
 public void refreshDataGridView()
 {
     DBConnect.DbConnection();
     eNTComptesBindingSource.DataSource = DAL_Comptes.GetAllComptes(DBConnect.dbconn);
 }