コード例 #1
0
ファイル: MySqlPaieService.cs プロジェクト: benpala/model
        public bool insertPaie(Paie insertPaie, DateTime start, DateTime end, string idEmploye)
        {
            try
            {
                connexion = new MySqlConnexion();
                /*{
                          System.Globalization.NumberFormatInfo nf = new System.Globalization.NumberFormatInfo()
                          {
                              NumberGroupSeparator = "."
                          };
                          Brute = float.Parse(Brute, nf);
                          Net = float.Parse(Net.ToString(), nf);
                          HeureSupp = float.Parse(HeureSupp.ToString(), nf);
                          temps = float.Parse(temps.ToString(), nf);
                 }*/
                StringBuilder sb = new StringBuilder();

                sb.Append("INSERT INTO Paies (idEmploye, idPeriode, montantDueBrute, montantDueNet, nombreHeure,nombreHeureSupp) VALUES(");
                sb.Append("(SELECT idEmploye FROM Employes WHERE idEmploye ='");
                sb.Append(idEmploye);
                sb.Append("'),(SELECT idPeriode FROM periodepaies WHERE dateDebut ='");
                sb.Append(start);
                sb.Append("' AND dateFin = '");
                sb.Append(end);
                sb.Append("'),");
                sb.Append(insertPaie.MontantBrute.ToString().Replace(",", "."));
                sb.Append(",");
                sb.Append(insertPaie.MontantNet.ToString().Replace(",", "."));
                sb.Append(",");
                sb.Append(insertPaie.NombreHeure.ToString().Replace(",", "."));
                sb.Append(",");
                sb.Append(insertPaie.NombreHeureSupp.ToString().Replace(",", "."));
                sb.Append(")");
                /* string requete = "INSERT INTO Paies (idEmploye, idPeriode, montantDueBrute, montantDueNet, nombreHeure,nombreHeureSupp) VALUES("
                                  +"(SELECT idEmploye FROM Employes WHERE idEmploye ='" + idEmploye + "'),"
                                  +"(SELECT idPeriode FROM periodepaies WHERE dateDebut = '"+start+"' AND dateFin = '"+end+"'),"

                                  +""+insertPaie.MontantBrute+","+insertPaie.MontantNet+","+insertPaie.NombreHeure+","+insertPaie.NombreHeureSupp+""
                                  +")";*/
                connexion.Query(sb.ToString());
                return true;
            }
            catch (MySqlException)
            {
                return false;
            }
        }
コード例 #2
0
ファイル: DetailPaieView.xaml.cs プロジェクト: benpala/model
 public DetailPaieView(IDictionary<string,object> parametre)
     : this()
 {
     _Paie = parametre["paie"] as Paie;
 }
コード例 #3
0
ファイル: Paie.cs プロジェクト: benpala/model
        // 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;
            }
        }
コード例 #4
0
ファイル: Paie.cs プロジェクト: benpala/model
        public void generateSlipePay(Paie p)
        {
            #region headerPDF
            int PDF_WIDTH = 250;
            int PDF_MARGIN_LEFT=20;
            int NEXT_MARGIN_TOP = 60;
            PdfDocument pdf = new PdfDocument();
            pdf.Info.Title = p.Nom + "_Paie";
            PdfPage page;
            page = pdf.AddPage();
            page.Orientation = PageOrientation.Portrait;
            page.Size = PageSize.A4;
            XGraphics graph = XGraphics.FromPdfPage(page);
            List<LiaisonProjetEmploye> Liaison = new List<LiaisonProjetEmploye>();
            MySqlEmployeService _ServiceMysql = new MySqlEmployeService();
            XFont font = new XFont("Consolas", 10.0); //new XFont("Verdana", 20, XFontStyle.Bold);
            var formatter = new XTextFormatter(graph);
            XPen penn = new XPen(XColors.Black, 1);
            penn.DashStyle = XDashStyle.Dash;

            graph.DrawLine(penn, 0, 3, page.Height, 3);
            graph.DrawRectangle(new XSolidBrush(XColor.FromArgb(95,95,95)), new XRect(0, 3, page.Height, 30));

            var layoutRectangle = new XRect(5, 12.5, page.Width, page.Height);
            formatter.DrawString("GEM-C Rapport de paie de : " + (p.Nom), font, XBrushes.White, layoutRectangle);
            layoutRectangle = new XRect(300, 12.5, page.Width, page.Height);
            formatter.DrawString(("Talon pour la période du : " + p.Periode), font, XBrushes.White, layoutRectangle);

            graph.DrawLine(penn, 0, 33, 800, 33);

            graph.DrawRectangle(new XSolidBrush(XColor.FromArgb(255, 243, 229)), new XRect(0, 34, page.Height, 255));
            layoutRectangle = new XRect(PDF_MARGIN_LEFT, 40, page.Width, page.Height);
            formatter.DrawString("Calcul du salaire :", font, XBrushes.Black, layoutRectangle);
            graph.DrawLine(penn, PDF_MARGIN_LEFT, 55, 150, 55);
            #endregion

            if(p.MontantCommission != 0)
            {
                drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font,layoutRectangle, formatter,"Montant commission : ", Math.Round(p.MontantCommission,2).ToString());
                NEXT_MARGIN_TOP+=10;
            }
            if (p.MontantIndemnite != 0)
            {
                drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Montant indemnite : ", Math.Round(p.MontantIndemnite,2).ToString());
                NEXT_MARGIN_TOP += 10;
            }
            if (p.MontantPourboire != 0)
            {
                drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Montant pourboire : ", Math.Round(p.MontantPourboire,2).ToString());
                NEXT_MARGIN_TOP += 10;
            }
            if (p.MontantPrime != 0)
            {
                drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Montant prime : ", Math.Round(p.MontantPrime,2).ToString());
                NEXT_MARGIN_TOP += 10;
            }
            if (p.MontantAllocations != 0)
            {
                drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Montant allocations : ", Math.Round(p.MontantAllocations, 2).ToString());
                NEXT_MARGIN_TOP += 10;
            }
            double lesmontants = Math.Round((p.MontantAllocations + p.MontantCommission + p.MontantIndemnite + p.MontantPourboire + p.MontantPrime), 2);
            if (lesmontants != 0)
            {
                drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "", "--------------", "");
                NEXT_MARGIN_TOP += 10;
                drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Total des montants :  ", lesmontants.ToString());
                NEXT_MARGIN_TOP += 30;
            }

            // ce qui nou intéresse commence

            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Heure regulier : ", Math.Round(p.NombreHeure, 2).ToString(), " hr(s)");
            NEXT_MARGIN_TOP += 10;

            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Heure suplémentaire : ", Math.Round(p.NombreHeureSupp, 2).ToString(), " hr(s)");
            NEXT_MARGIN_TOP += 10;

            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, ("Taux rég : " + p.salaire.ToString() + "$ "), Math.Round((p.NombreHeureSupp*(Convert.ToDouble(p.salaire))),2).ToString());
            NEXT_MARGIN_TOP+=10; supp :
            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Taux supp :  " + Math.Round((Convert.ToDouble(p.salaire) * 1.5), 4).ToString() + " $", Math.Round((p.MontantBrute - lesmontants) - (p.NombreHeure * Convert.ToDouble(p.salaire)), 2).ToString());
            NEXT_MARGIN_TOP += 10;

            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "", "--------------", "");
            NEXT_MARGIN_TOP += 10;
            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Montant brute total :  ", Math.Round((p.MontantBrute), 2).ToString());
            NEXT_MARGIN_TOP += 10;
            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "", "--------------", "");
            NEXT_MARGIN_TOP += 10;

            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Montant impôt combiné (Féd. et prov.): ", "-" + (Math.Round(p.MontantBrute, 2) - Math.Round(p.MontantNet, 2)).ToString());
            NEXT_MARGIN_TOP += 20;

            graph.DrawRectangle(XPens.Black, XBrushes.LightSeaGreen, 5, NEXT_MARGIN_TOP-2.5, page.Width-10, page.Height-825);

            drawPDF(PDF_WIDTH, NEXT_MARGIN_TOP, PDF_MARGIN_LEFT, page, font, layoutRectangle, formatter, "Montant Net du : ", Math.Round(p.MontantNet, 2).ToString());

            graph.DrawLine(XPens.Black, 0, 280, 800, 280);
            #region outputPDF
            StringBuilder b = new StringBuilder();
            b.Append("talon_");
            b.Append(p.Nom.ToString());
            b.Append("_");
            b.Append(String.Format("{0:M/d/yyyy}", Convert.ToDateTime(p.DateGenerationRapport)));
            b.Append(".pdf");
            string pdfFilename = b.ToString().Replace(" ", "_");
            pdf.Save(pdfFilename);
            Process.Start(pdfFilename);
            #endregion
        }
コード例 #5
0
ファイル: RapportView.xaml.cs プロジェクト: benpala/model
 private void CorpsAtomiqueD(ref PdfPage page, ref XTextFormatter formatter, ref XFont font, XRect layoutRectangle, ref int height, Paie paie, int tB, int tHS, int tP, int tI)
 {
     layoutRectangle = new XRect(25, height += 15, page.Width, page.Height);
     formatter.DrawString(String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(paie.DateGenerationRapport)), font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(116, height, page.Width, page.Height);
     formatter.DrawString(paie.Nom.Substring(0, 1).ToString() + "." + paie.Nom.Substring(paie.Nom.IndexOf(' ')).ToString(), font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(310, height, page.Width, page.Height);
     formatter.DrawString(paie.ID.ToString(), font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(362, height, page.Width, page.Height);
     formatter.DrawString(String.Format("{0,"+tB+"}",Math.Round(Convert.ToSingle(paie.MontantBrute), 2)) + "$", font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(447, height, page.Width, page.Height);
     formatter.DrawString(String.Format("{0,"+tHS+"}",Math.Round(Convert.ToSingle(paie.NombreHeureSupp), 2).ToString()), font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(530, height, page.Width, page.Height);
     formatter.DrawString(String.Format("{0,"+tP+"}",Math.Round(Convert.ToSingle(paie.MontantPourboire), 2).ToString()) + "$", font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(613, height, page.Width, page.Height);
     formatter.DrawString(String.Format("{0,"+tI+"}",Math.Round(Convert.ToSingle(paie.MontantIndemnite), 2).ToString()) + "$", font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(676, height, page.Width, page.Height);
     formatter.DrawString(Math.Round(Convert.ToSingle(paie.salaire), 2).ToString() + "$/h", font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(759, height, page.Width, page.Height);
     formatter.DrawString(Math.Round(Convert.ToSingle(paie.NombreHeure), 2).ToString(), font, XBrushes.Black, layoutRectangle);
 }
コード例 #6
0
ファイル: RapportView.xaml.cs プロジェクト: benpala/model
 private void CorpsAtomique(ref PdfPage page, ref XTextFormatter formatter, ref XFont font, XRect layoutRectangle, ref int height, Paie paie, int tB)
 {
     layoutRectangle = new XRect(30, height += 15, page.Width, page.Height);
     formatter.DrawString(String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(paie.DateGenerationRapport)), font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(136, height, page.Width, page.Height);
     formatter.DrawString(paie.Nom.Substring(0, 1).ToString() + "." + paie.Nom.Substring(paie.Nom.IndexOf(' ')).ToString(), font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(380, height, page.Width, page.Height);
     formatter.DrawString(paie.ID.ToString(), font, XBrushes.Black, layoutRectangle);
     layoutRectangle = new XRect(470, height, page.Width, page.Height);
     formatter.DrawString(String.Format("{0,"+tB+"}",Math.Round(Convert.ToSingle(paie.MontantBrute), 2)) + " $", font, XBrushes.Black, layoutRectangle);
 }
コード例 #7
0
ファイル: MySqlPaieService.cs プロジェクト: benpala/model
        public bool updatePay(Paie updatePaie)
        {
            try
            {
                connexion = new MySqlConnexion();
                /*
                 *  montantDueBrute, montantDueNet, nombreHeure,
                 *  nombreHeureSupp, montantPrime, montantIndemnites,
                 *  montantAllocations, montantCommissions, montantPourboire
                 */
                StringBuilder req = new StringBuilder();
                req.Append("UPDATE Paies SET ");
                req.Append(" montantDueBrute='"); req.Append(updatePaie.MontantBrute.ToString().Replace(",","."));
                req.Append("', montantDueNet='"); req.Append(updatePaie.MontantNet.ToString().Replace(",", "."));
                req.Append("', nombreHeure='"); req.Append(updatePaie.NombreHeure.ToString().Replace(",", "."));
                req.Append("', nombreHeureSupp='"); req.Append(updatePaie.NombreHeureSupp.ToString().Replace(",", "."));
                req.Append("', montantPrime='"); req.Append(updatePaie.MontantPrime.ToString().Replace(",", "."));
                req.Append("', montantIndemnites='"); req.Append(updatePaie.MontantIndemnite.ToString().Replace(",", "."));
                req.Append("', montantAllocations='"); req.Append(updatePaie.MontantAllocations.ToString().Replace(",", "."));
                req.Append("', montantCommissions='"); req.Append(updatePaie.MontantCommission.ToString().Replace(",", "."));
                req.Append("', montantPourboire='"); req.Append(updatePaie.MontantPourboire.ToString().Replace(",", "."));
                req.Append("', updatedetail=NOW() ");
                req.Append(" WHERE idPaies='");
                req.Append(updatePaie.ID.ToString());
                req.Append("' ");

                connexion.Query(req.ToString());
                return true;
            }
            catch (MySqlException)
            {
                return false;
            }
        }