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; } }
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."); } }
// 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; } }
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."); } }
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; }