Beispiel #1
0
        public bool registerPeriode(PeriodePaie p)
        {
            try
            {

                StringBuilder sb = new StringBuilder();
                connexion = new MySqlConnexion();
                sb.Append("INSERT INTO PeriodePaies (dateDebut, dateFin) VALUES('");
                sb.Append(p.Debut);
                sb.Append("', '");
                sb.Append(p.Fin);
                sb.Append("');");
                string req = sb.ToString();
                connexion.Query(req);
                return true;
            }
            catch (MySqlException)
            {
                return false;
            }
        }
Beispiel #2
0
        private void click_periodeList(object sender, RoutedEventArgs e)
        {
            try
            {
                PeriodePaie Periode = new PeriodePaie(Convert.ToDateTime(datedebut.Text), Convert.ToDateTime(datefin.Text));
                string message ="";
                foreach (PeriodePaie p in Periodes)
                {
                    if (p.Debut == Periode.Debut)
                    {
                        message = "Cette période à déjà été enregistré dans le passé!";
                    }
                }
                if(message == "")
                {
                    if (nouvPeriodes.Count() == 0)
                    {
                        nouvPeriodes.Add(Periode);
                    }
                    else
                    {
                        foreach (PeriodePaie p2 in nouvPeriodes)
                        {
                            if (p2.Debut == Periode.Debut)
                            {
                               message = "Vous avez déjà choisi cette période!";
                            }
                        }
                        if(message == "")
                        {
                            nouvPeriodes.Add(Periode);
                        }
                        else
                        {
                            MessageBox.Show(message);
                        }
                    }
                }
                else
                {
                    MessageBox.Show(message);
                }

            }catch(Exception){
                MessageBox.Show("Les champs que vous avez entrez ne correspondes pas à des dates.");
            }
        }
Beispiel #3
0
        // Fin de la classe de test.
        public void GenererPaies()
        {
            MySqlPaieService _service = new MySqlPaieService();
            DataTable Periode;

            float temps;
            try
            {
                // Aller chercher tous les employés
                MySqlEmployeService _emService = new MySqlEmployeService();
                IList<Employe> emp = _emService.RetrieveAll();
                Periode = _service.PeriodeTemps();

                if (Periode.Rows.Count == 0)
                {
                    throw new Exception("Toutes les périodes de paies ont déjà été générer. Allez en rentré de nouvelle pour la nouvelle année.");
                }
                else
                {
                    DateTime start = (DateTime)Periode.Rows[0][0],
                    end = (DateTime)Periode.Rows[0][1];
                    DateTime date = DateTime.Now;
                    PeriodePaie tmpTime = new PeriodePaie(date, date);
                    if(tmpTime.Fin < end)
                    {
                        throw new Exception("La période que vous essayez de générer est en cours.");
                    }
                    float HeureSupp = 0;
                    int compteurTemps = 0;
                    int totalEmp = emp.Count;
                // Pour chaque employé aller chercher leur temps.
                    foreach (Employe em in emp)
                    {
                        {

                            temps = _service.RetrieveCompteurs(em.ID, start, end);
                            // Vérification dans le cas ou personne n'aurais travailler dans cette période.
                            if(temps == 0)
                            {
                                compteurTemps++;
                                if(compteurTemps == totalEmp)
                                {
                                    StringBuilder mess = new StringBuilder();
                                    mess.Append("Aucune employé à travail durant la période. Cette période à été noté comme généré: ");
                                    mess.Append(start.ToString());
                                    mess.Append(end.ToString());
                                    if (!(_service.periodeGenere(start, end)))
                                    {
                                        throw new Exception("Problème avec l'état des périodes de paie, vérifier que votre période courrante est cohérente.");
                                    }
                                    throw new Exception(mess.ToString());
                                }
                            }
                            else
                            {
                                if (temps > supp)
                                {
                                    HeureSupp = temps - supp;
                                    temps = temps - supp;
                                }

                                float Brute = ((float)em.Salaire * temps) + ((float)em.SalaireOver * HeureSupp);
                                TimeSpan t = end - start;
                                Double days = t.TotalDays;
                                days = 365/(days+1);
                                double EstimatedAnnualSalary = days * Brute;
                                float Net = 0;
                                Net = Brute * (1 - tauxCombineQC_CA((double)(days * Brute)));

                                Paie tmpPaie = new Paie() { MontantBrute = Brute, MontantNet = Net, NombreHeure = temps, NombreHeureSupp = HeureSupp };
                                if (!(_service.periodeGenere(start, end)))
                                {
                                    throw new Exception("Problème avec l'état des périodes de paie, vérifier que votre période courrante est cohérente.");
                                }
                                // Appel  de la fonction de génération de paie.
                                if (!(_service.insertPaie(tmpPaie, start, end, em.ID)))
                                {
                                    throw new Exception("Impossible de générer la paie de " + em.Prenom + " , " + em.Nom + " correctements vérifier les dates de vos périodes de paies.");
                                }
                           }
                        }
                    }
                    // change la période paye à terminé.
                    throw new Exception("Réussite de la génération des paies pour la période de :" + (start.Date).ToString("d") + " au " + (end.Date).ToString("d"));
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #4
0
        private void GenererRapportFinancie(object sender, RoutedEventArgs e)
        {
            int NbPaie = 0;
            int tailleB = 0;
            int tailleHS = 0;
            int tailleP = 0;
            int tailleI = 0;

            try
            {
                if (dtDateDebut.Text.ToString() == "" && dtDateFin.Text.ToString() == "")
                    throw new Exception("PasDate");
                if (chxA.IsChecked.Value){
                    if(chxB.IsChecked.Value)
                    {
                        if(chxC.IsChecked.Value)
                            throw new Exception("tropChx");
                        else
                            throw new Exception("tropChx");
                    }
                } else {
                    if (chxB.IsChecked.Value)
                    {
                        if (chxC.IsChecked.Value)
                            throw new Exception("tropChx");
                    }
                }

                if (chxA.IsChecked.Value || chxB.IsChecked.Value)
                {
                    PeriodePaie tmp = new PeriodePaie(Convert.ToDateTime(dtDateDebut.Text), Convert.ToDateTime(dtDateFin.Text));
                    float BruteTotal = 0;

                    PdfDocument pdf = new PdfDocument();
                    pdf.Info.Title = "Rapport Paie";
                    PdfPage page;
                    page = pdf.AddPage();
                    page.Orientation = PageOrientation.Landscape;
                    page.Size = PageSize.A4;
                    XGraphics graph = XGraphics.FromPdfPage(page);

                    XFont font = new XFont("Consolas", 12.0); //new XFont("Verdana", 20, XFontStyle.Bold);
                    XTextFormatter formatter = new XTextFormatter(graph);
                    int height = 0;

                    XRect layoutRectangle = new XRect(10, height += 15, page.Width, page.Height);

                    EnteteDPF(ref formatter, ref font, layoutRectangle);

                    graph.DrawLine(XPens.Black, 10, 50, page.Width - 10, 50);

                    if (chxA.IsChecked.Value)
                        ColonneA(ref page, ref graph, ref formatter, ref font, layoutRectangle);
                    else if (chxB.IsChecked.Value)
                        ColonneAD(ref page, ref graph, ref formatter, ref font, layoutRectangle);

                    layoutRectangle = new XRect(10, height += 75, page.Width, page.Height);

                    foreach (Paie paie in Paie)
                    {
                        tailleB = VerifeTaille(paie.MontantBrute.ToString().Length, tailleB);
                        tailleHS = VerifeTaille(paie.NombreHeureSupp.ToString().Length, tailleHS);
                        tailleP = VerifeTaille(paie.MontantPourboire.ToString().Length, tailleP);
                        tailleI = VerifeTaille(paie.MontantIndemnite.ToString().Length, tailleI);
                    }

                    foreach (Paie paie in Paie)
                    {
                        int tmpD = DateTime.Compare(Convert.ToDateTime(paie.DateGenerationRapport), tmp.Debut);
                        int tmpF = DateTime.Compare(Convert.ToDateTime(paie.DateGenerationRapport), tmp.Fin);

                        if (height > 700)
                        {
                            page = pdf.AddPage();
                            graph = XGraphics.FromPdfPage(page);
                            formatter = new XTextFormatter(graph);
                            height = 0;
                        }

                        if (tmpD > 0 && tmpF < 0)
                        {
                            if (chxA.IsChecked.Value)
                                CorpsAtomique(ref page, ref formatter, ref font, layoutRectangle, ref height, paie, tailleB);
                            else if (chxB.IsChecked.Value)
                                CorpsAtomiqueD(ref page, ref formatter, ref font, layoutRectangle, ref height, paie, tailleB, tailleHS, tailleP, tailleI);
                            BruteTotal = BruteTotal + paie.MontantBrute;
                            NbPaie++;
                        }

                    }

                    if (BruteTotal == 0)
                        throw new Exception("erreur");

                    layoutRectangle = new XRect(10, page.Height - 70, page.Width, page.Height);
                    formatter.DrawString(("Coût pour la période : " + String.Format("{0:yyyy-MM-dd}", tmp.Debut) + " à " + String.Format("{0:yyyy-MM-dd}", tmp.Fin) + "\t\t\tMontant total : " + Math.Round(Convert.ToSingle(BruteTotal), 2) + " $" + "\t\t\tNombre de Paie : " + NbPaie.ToString()), font, XBrushes.Black, layoutRectangle);

                    DateTime now = DateTime.Now;

                    StringBuilder b = new StringBuilder();
                    b.Append("RPaie_");
                    b.Append(String.Format("{0:yyyy/MM/dd}", now));
                    b.Append("_");
                    b.Append(String.Format("{0:hh:mm:ss}", now));
                    b.Append(".pdf");
                    string pdfFilename = b.ToString().Replace(":", "");
                    pdf.Save(pdfFilename);
                    Process.Start(pdfFilename);
                }
                else
                    throw new Exception("nochecked");
            }
            catch (Exception E)
            {
                if (E.Message == "erreur")
                    MessageBox.Show("Aucune paie durant cette période");
                else if (E.Message == "nochecked")
                    MessageBox.Show("Veuillez cocher atomique ou atomique détail pour afficher le rapport. L'option regrouper n'est pas disponible");
                else if (E.Message == "PasDate")
                    MessageBox.Show("Veuillez entrer des dates.");
                else if (E.Message == "tropChx")
                    MessageBox.Show("Veuillez choisir un seul choix à la fois.");
                else
                    MessageBox.Show("Le fichier est déjà utilisé, veuillez le fermer pour le regenerer.");
            }
        }
Beispiel #5
0
        private List<Projet> filtreAppliquerDate(List<Projet> listp)
        {
            PeriodePaie tmp = new PeriodePaie(Convert.ToDateTime(dtDebut.ToString()), Convert.ToDateTime(dtFin.ToString()));

            List<Projet> returnlist = new List<Projet>();
            foreach (Projet p in listp)
            {
                if (Convert.ToDateTime(p.dateun.ToString()) >= tmp.Debut && Convert.ToDateTime(p.dateun.ToString()) <= tmp.Fin)
                    returnlist.Add(p);
            }
            return returnlist;
        }