TP bulletins de salaires

Documents pareils
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

I. Compte courants d associés : taux maximal d intérêts déductibles

Réduction Fillon sur les bas salaires Employeur de 1 à 19 salariés au plus

Programme Compte bancaire (code)

Journal de paye détaillé en euros

Chapitre 10. Les interfaces Comparable et Comparator 1

TP1 : Initiation à Java et Eclipse

TD/TP PAC - Programmation n 3

DECLARATION DU SALARIE(E)

Cotisations et points de la retraite complémentaire. n o 3

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Le Bulletin de salaire

TD/TP PAC - Programmation n 3

Contribution de solidarité. Le taux de la contribution est de 1 % sur la rémunération «nette».

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

COMPLEMENTAIRE SANTE OBLIGATOIRE

COTISATIONS ET POINTS DE

AVANTAGES EN NATURE 4 AVANTAGE EN NATURE REPAS 4 TITRES - RESTAURANT 4 AVANTAGE EN NATURE LOGEMENT (EVALUE FORFAITAIREMENT) 4

Tp 1 correction. Structures de données (IF2)

LETTRE CIRCULAIRE N

Pégase 3 MSA Les contrats «vendanges» Dernière révision le 28/09/ pegase3@micromegas.fr

TESA Notice additive générale

Bulletins de paie. Modèles à jour au

Bulletins de paie. Modèles à jour au

Les nouveautés du Plan de Paie Sage

MODE D EMPLOI CONTRAT D APPRENTISSAGE

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Contribution de solidarité

Heures supplémentaires

Réduction Dégressive Fillon (RDF) annualisée

Cegid Business Paie. Mise à jour plan de paie 01/01/2014. Service d'assistance Téléphonique

Saari PAIE SOMMAIRE

CONVENTION DE PORTAGE

Premiers Pas en Programmation Objet : les Classes et les Objets

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

ACCORD RELATIF AU COMPTE EPARGNE TEMPS

TP, première séquence d exercices.

Java Licence Professionnelle CISII,

Aujourd hui, il est consultant dans les domaines de Paie, Déclarations et Ressources Humaines.

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Cours 1: Java et les objets

Projet de programmation (IK3) : TP n 1 Correction

LE CHOMAGE PARTIEL GROUPE ALPHA SECAFI ALPHA ALPHA CONSEIL. Bordeaux Lille Lyon Marseille Metz Nantes Paris Toulouse

Les nouveautés du Plan de Paie Sage

LES NOUVEAUTES DU PLAN DE PAIE SAGE Janvier 2011

INFORMATIONS POUR LES JEUNES AVOCATS

Utiliser Java sans BlueJ

Cegid Business Paie. Mise à jour plan de paie 01/03/2014. Service d'assistance Téléphonique


TP1 : Initiation à Java et Eclipse

INDEMNISATION VOUS REPRENEZ UNE ACTIVITÉ POLE-EMPLOI.FR

les derniers salaires qui comptent

Mise à jour 17/04/2012

Les outils de simulation pour chaque type de structure permettent d estimer l impact de la réforme sur la période

RMI le langage Java XII-1 JMF

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Programmation par les Objets en Java

LA Lettre AL Adhérent

Mise en place de la réintégration sociale et fiscale des cotisations de retraite et de prévoyance

Réintégration de la garantie chirurgie du BTP

WAGRAM CONSULTING sarl. 5 rue Villaret de Joyeuse Paris. Tel : contact@wagramconsulting.

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Auto-évaluation Programmation en Java

Les nouveautés du Plan de Paie Sage

Les nouveautés du Plan de Paie Sage

Chapitre I Notions de base et outils de travail

Flux de données Lecture/Ecriture Fichiers

JOURNEE DE SOLIDARITE CONDITIONS DE MISE EN PLACE

Modèle de décision unilatérale instituant un système de garanties collectives complémentaire obligatoire frais de santé

ACTIVITÉ DE PROGRAMMATION

CONVENTION DE PORTAGE

Introduction. Nous vous remercions d'avoir porté votre attention sur le nouveau service e-salairefer.

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Régime social et fiscal des primes d intéressement

Solutions du chapitre 4

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Le langage C. Séance n 4

LDPaye. Etablir sa DADS-U 2014 N4DS V01X09

MODELE DE CONTRAT DE TRAVAIL A DUREE INDETERMINEE ENTRE PARENTS ET ASSISTANTES MATERNELLES

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Package Java.util Classe générique

Héritage presque multiple en Java (1/2)

Module.NET 3 Les Assemblys.NET

Corrigés des premiers exercices sur les classes

ACCORD RELATIF A L'APPLICATION DE L'AMENAGEMENT ET DE LA REDUCTION DU TEMPS DE TRAVAIL AUX INTERIMAIRES

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

LE MAINTIEN DES COTISATIONS VIEILLESSES ET RETRAITE

Décision unilatérale de l employeur instituant une garantie complémentaire de remboursement de frais médicaux

2. LE REGIME DE SECURITE SOCIALE

Le créateur d entreprise

Documentation. Nouveautés du Plan de Paie Sage. Génération i7 Version 7.10 Janvier 2015 Mise à jour n 1

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

MINISTERE DE LA COMMUNAUTE FRANCAISE ADMINISTRATION GENERALE DE L ENSEIGNEMENT ET DE LA RECHERCHE SCIENTIFIQUE

Note technique à l attention des employeurs DTA

Corrigé des exercices sur les références

CONVENTION DE STAGE ÉTUDIANT

Transcription:

TP bulletins de salaires L'entreprise Camaurel, spécialisée dans les installations électriques chez les particuliers et les petites entreprises, souhaite développer un logiciel de gestion des bulletins de salaires de ses salariés non cadres. Tous les salariés sont à temps plein. L'application de concernera que les parties salariales des éléments du salaire, à l'exclusion dons des charges patronales. En phase de test, le logiciel sera développé en C#, en mode console. A) Les éléments du salaire. 1) Le salaire brut Le salaire de base Il est calculé à partir du salaire horaire de base et de l'horaire mensuel : ce dernier est de 151,67 heures pour tous. Les heures supplémentaires (HS) sont les heures hebdomadaires qui dépassent l'horaire mensuel légal : elles sont payées à 125 % du salaire horaire de base pour les 8 premières et à 150 % pour les suivantes. Le salaire brut est la somme du salaire de base et des HS. 2) Les retenues. Le salarié verse différentes cotisations qui vont être déduites sur salaire brut, elles sont calculées à partir du salaire brut. La sécurité sociale ( assurance maladie, vieillesse...) : 7,4 % L'assurance chômage (Assedic, AGFF) : 5% La retraite complémentaire : pour les non cadres, 3 % pour la tranche du salaire inférieure à 2476 et 7 % pour la tranche qui va de 2476 à 7296 La RDS/CSG (contributions sociales) : 2,9 % B) L'application 1) La classe Bulletin. Elle représente un bulletin de salaire mensuel d'un salarié. Dans un premier temps, nous ne tiendons compte que du salaire de base (sans les HS). Cette classe contiendra deux attributs : le numéro du mois (de 1 à 12 ) et le salaire horaire de base. Cette classe aura les responsabilités suivantes : Retourner le nombre d'hs (valeur décimale) pour le mois Retourner le montant des HS (en décimaux) Retourner le salaire brut Retourner la retenue sécurité sociale Retourner la retenue liée à l'assurance chomâge Retourner la retenue liée à la retraite complémentaire

Retourner la retenue CSG Retourner l'ensemble des retenues Retourner le salaire net. Faire le diagramme de cette classe en faisant appaître les attributs et signatures des méthodes. 2) La classe Parametre De nombreux paramètres sont utilisés, pouvant évoluer dans le temps (les différents taux, les maxima...) ; nous allons créer une classe Parametre qui va retourner chacun de ces éléments. Cette classe ne contiendra que des méthodes statiques. On dit d'une telle classe qu'elle est utilitaire. Faire le diagramme de cette classe en faisant appaître les signatures des méthodes. 3) Code de la classe Parametre Nous allons commencer par écrire le code de la classe Parametre. Créer un projet console en C# avec Visual Studio ; nommez-le tpsalaire. Changer le nom de la classe créée : Appsalaire. Ajouter une classe Parametre. Ecrire le code de cette classe. Chaque méthode retourne simplement une valeur, la valeur actuelle indiquée dans l'énoncé. 4) Code partiel de la classe Bulletin Ecrire la déclaration de la classe Bulletin (conforme au diagramme de classe). Les fonctions retourneront une valeurs nulles (dans un pemier temps) Ajouter deux constructeurs ; un par défaut et l'autre avec deux arguments afin de valoriser les deux champs. Ecrire également deux accesseurs sur les champs privés. Créer deux instances de Bulletin. Générer la solution. 4.a La classe Ecran Afin de tester cette classe, on va utiliser une classe Ecran qui ne contiendra qu'une seule méthode statique (pour le moment) : public static void Afficher(Bulletin b) // affiche les éléments du salaire : salaire de base, montant HS, salaire brut, retenues,..., salaire net 4.b Les méthodes de la classe Bulletin

Les calculs des retenues dépendent du salaire brut : salaire mensuel de base + Heures sup. Dans un premier temps, les heures sup seront fixées en dur dans le code afin de tester le salaire brut, les montants des retenues et le salaire net. Modifier le code de la méthode nbhs() : public double nbhs() { return 25; } Ecrire dans l'ordre les méthodes suivantes : - salairebase() : les employés sont a plein temps et effectue la durée mensuelle légale du travail - montanths() : calculés à partir des heures supplémentaires effectuées - salairebrut() - retenuesss(), retenuecsg(), retenuechomage() - retenueretraite() : tenir compte des plafonds -salairenet() Tester avec : static void Main(string[] args) { Bulletin b = new Bulletin(1, 15); Ecran.afficher(b); } Ce qui produit la sortie suivante : et avec : static void Main(string[] args) { Bulletin b = new Bulletin(1, 25); Ecran.afficher(b); } Ce qui produit la sortie suivante :

5) Gestion des horaires Les bulletins de salaire dépendent des heures travaillées, c'est à dire de relevés hebdomadaires qui permettront ainsi de déterminer les heures supplémentaires. A chaque bulletin correspond plusieurs relevés (4 ou 5 selon les mois). Les heures supplémentaires sont calculées à partir du maximum légal mensuel ; ainsi chaque heure qui dépasse ce maximum légal mensuel est considérée comme une heure supplémentaire. 5.1 La classe ReleveHebdo Cette classe contiendra deux champs : le numéro d'ordre (pour le mois) et le nombre d'heures travaillées. Ses responsabilités sont très limitées : fournir uniquement ses informations. Dessiner le diagramme de la classe ReleveHebdo 5.2 Code de la classe ReleveHebdo La classe possède un seul constructeur, à deux arguments, ainsi que deux accesseurs. Ecrire le code de la la classe ReleveHebdo 5.3 Retour sur la classe Bulletin Les relevés sont associés à un Bulletin. Dessiner le diagramme des classes Bulletin et ReleveHebdo L'association sera réalisée grâce à une ArrayList dans la classe Bulletin : - Ajouter le namespace : using System.Collections; - Ajouter la déclaration et la construction du nouveau champs : private ArrayList mesreleves = new ArrayList(); La classe Bulletin a la responsabilité de construire et d'ajouter les relevés :

Ajouter une nouvelle méthode publique : void ajoutreleve( int numero, Double nbheures) dans la classe Bulletin ; écrire son code. La méthode nbhs de la classe Bulletin peut maintenant être écrite ; elle cumule les heures des relevés et détermine ainsi le nombre d'heures supplémentaires. Utiliser la clause foreach pour parcourir l'arraylist. Ecrire la méthode nbhs ; tester avec : qui affiche : Bulletin b = new Bulletin(1, 15); b.ajouterreleve(1, 42); b.ajouterreleve(2, 40); b.ajouterreleve(3, 35); b.ajouterreleve(4, 42); Ecran.afficher(b); Ainsi que : qui affiche Bulletin b = new Bulletin(1, 15); b.ajouterreleve(1, 35); b.ajouterreleve(2, 35); b.ajouterreleve(3, 35); b.ajouterreleve(4, 35); Ecran.afficher(b);

6) Une classe Salarie. Cette classe permettra de rassembler les bulletins d'un salarié pour une année. Cette classe n'aura qu'un seul champ : le nom du salarié. Ajouter cette classe dans le diagramme de classe : Ecrire le code de cette classe : - Un constructeur à un argument - Une ArrayList pour enregistrer les bulletins : mesbulletins - Une méthode void ajouterbulletin( Bulletin b) qui l'ajoute dans mesbulletins. Une méthode de la classe permet de cumuler les salaires nets : public float salaireannuel() Ecrire le code de cette méthode. Pour tester cette méthode, ajouter une méthode statique dans la classe écran (afficher(salarie s) )qui affiche le nom du salairié et son salaire net. Ecrire l' accesseur nécessaire. Tester avec : Bulletin b1 = new Bulletin(1, 16); b1.ajouterreleve(1, 35); b1.ajouterreleve(2, 39); b1.ajouterreleve(3, 35); b1.ajouterreleve(4, 41); Bulletin b2 = new Bulletin(2, 16); b2.ajouterreleve(1, 39); b2.ajouterreleve(2, 38); b2.ajouterreleve(3, 43); b2.ajouterreleve(4, 41); Bulletin b3 = new Bulletin(3, 16); b3.ajouterreleve(1, 39); b3.ajouterreleve(2, 38); b3.ajouterreleve(3, 43); b3.ajouterreleve(4, 41); Bulletin b4 = new Bulletin(4, 17); b4.ajouterreleve(1, 35); b4.ajouterreleve(2, 40); b4.ajouterreleve(3, 35); b4.ajouterreleve(4, 38); Salarie s = new Salarie("toto"); s.ajouterbulletin(b1); s.ajouterbulletin(b2); s.ajouterbulletin(b3);

s.ajouterbulletin(b4); Ecran.afficher(s); Ce qui doit donner : La classe Salarie ne propose qu'une seule méthode ; imaginer d'autres services qu'elle pourrait rendre. Ajouter les méthodes en conséquence. 7) La persistance des informations. Une classe de persistance Actuellement les données sont conservées en mémoire ; il n'y a pas de sauvegarde des informations sur un support de masse. nous allons utliser un mécanisme qui va nous permettre de sauvegarder les instances des classes créées : la sérialisation. Lire à ce propos. Nous allons créer une classe PersisteSalarie qui permettra d'écrire les appels suivants :...suite du code fourni plus haut et qui valorise un salarie s.ajouterbulletin(b4); Ecran.afficher(s); PersisteSalarie.sauve(s, "salarie.sr"); Salarie s1 = PersisteSalarie.charge("salarie.sr"); Ecran.afficher(s1); Remarque : le salarie s est lu à partir de la mémoire, le salarie s1 est désérialisé. Créer la classe PersisteSalarie qui ne contiendra que deux méthodes statiques (utiliser la sérialisation binaire).