private void click_enregistre(object sender, RoutedEventArgs e) { // Envoie des champs en base de données afin de modifier les champs. try { // Mise à jour d'un paye avec tous les champs dans les textbox. MySqlPaieService _service = new MySqlPaieService(); /* Voici ce que le système fait pour nous : * _Paie.MontantAllocations = float.Parse(allocation.Text.Replace(".",",")); _Paie.MontantBrute = float.Parse(Montant.Text.Replace(".", ",")); _Paie.MontantIndemnite = float.Parse(indemite.Text.Replace(".", ",")); _Paie.MontantNet = float.Parse(montantNet.Text.Replace(".", ",")); _Paie.MontantPourboire = float.Parse(pourboire.Text.Replace(".", ",")); _Paie.MontantPrime = float.Parse(prime.Text.Replace(".", ",")); _Paie.NombreHeure = float.Parse(heure.Text.Replace(".", ",")); _Paie.NombreHeureSupp = float.Parse(heureSupp.Text.Replace(".", ","));*/ if (!_service.updatePay(_Paie)) { throw new Exception(); } MessageBox.Show("Enregistrement complété."); Dictionary<string, object> parametre = new Dictionary<string, object>() { { "paie", _Paie } }; IApplicationService applicationService = ServiceFactory.Instance.GetService<IApplicationService>(); applicationService.ChangeView<DetailPaieView>(new DetailPaieView(parametre)); }catch(Exception){ MessageBox.Show("Une erreure s'est produite, veuillez recommencer"); } }
public float getTauxFederal(float montantBrute, float heure, float heureSupp, String idPeriode) { MySqlPaieService _service = new MySqlPaieService(); DataTable Periode; Periode = _service.anciennePeriode(idPeriode); DateTime start = (DateTime)Periode.Rows[0][0], end = (DateTime)Periode.Rows[0][1]; TimeSpan t = end - start; Double days = t.TotalDays; days = 365 / (days + 1); return (tauxCombineQC_CA((days * montantBrute))); }
private void calculeHeureSupp(object sender, RoutedEventArgs e) { try { if (Math.Round(Paies.NombreHeureSupp,2) != Math.Round(float.Parse(heureSupp.Text.Replace(".", ",")),2)) { MySqlPaieService _service = new MySqlPaieService(); float tauxHoraire = float.Parse(_service.tauxHorraire(Paies.idEmploye)); float heureNormal = float.Parse(heureSupp.Text.Replace(".", ",")); float temporaire = (float)((tauxHoraire * 1.5) * Paies.NombreHeureSupp); Paies.MontantBrute -= temporaire; Paies.MontantBrute += (float)((_Paie.NombreHeureSupp = heureNormal) * (tauxHoraire * 1.5)); float taux = Paies.getTauxFederal(Paies.MontantBrute, Paies.NombreHeure, Paies.NombreHeureSupp, Paies.idPeriode); Paies.MontantNet = (Paies.MontantBrute * (1 - taux)); } } catch (Exception) { MessageBox.Show("Le montant entré est invalide! format accepté : 00.00"); } }
// 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; } }