Calcul gratification annuelle

Résolu/Fermé
Oholabi12345 Messages postés 498 Date d'inscription vendredi 21 août 2020 Statut Membre Dernière intervention 29 octobre 2022 - Modifié le 27 oct. 2021 à 21:15
 Oholabi12345 - 30 nov. 2021 à 14:47
Bonjour,
Je souhaiterais calculer la gratification annuelle ; qui tient compte du salaire du sal de base( txtsalbase) et du temps de travail qui doit être égal à un an de travail ; et elle se calcule chaque année apres un an de travail
gratification=txtsalbase*75%
Comment le programmer en vba access pour que la gratification soit payéé au travailleur chaque annéé après un an de travail
A voir également:

7 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
7 nov. 2021 à 10:11
Tu as écrit que la table PAIE était alimentée a partir de la REQ_PAIE.
Je vois que la table PAIE est une source de REQ_PAIE.

A quel moment, par quelle opération, la table PAIE est-elle modifiée quand on change ensuite sursalaire , les indemnites et le nombre de jour?
1
Oholabi12345 Messages postés 498 Date d'inscription vendredi 21 août 2020 Statut Membre Dernière intervention 29 octobre 2022
Modifié le 7 nov. 2021 à 11:42
bjr; en ce qui concerne le nombre de jour , il peut arriver qu'on saisisse par erreur une valeur au lieu d'une autre; le sursalaire et les indemnités peuvent varier d'un mois à un autre ; par contre par quelle opération je ne saisi pas la question
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Oholabi12345 Messages postés 498 Date d'inscription vendredi 21 août 2020 Statut Membre Dernière intervention 29 octobre 2022
7 nov. 2021 à 11:56
Confirmes-tu que la table PAIE était alimentée a partir de la REQ_PAIE? Cela m'étonne, car je vois que la table PAIE est une source de REQ_PAIE.

Comment l'utilisateur de la base gère-t-il la paie? Que fait-il pour modifier les paramètres de la paie?
Comment ces modifications modifient-ils les anciens enregistrements de la table PAIE?
0
Oholabi1234 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
7 nov. 2021 à 13:15
Effectivement, table PAIE est une source de REQ_PAIE.

Pour modifier les paramètres de la paie, je pense qu'il faudra créer une autre requête qui associera les tables PAIE et EMPLOYE et à chaque fois qu'on aura besoin de modifier un paramètre on choisira l'employé dans la requête et on modifiera ses paramètres

Mais pour modifier les anciens enregistrements de la paie je n'ai aucune idée
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Oholabi1234
7 nov. 2021 à 13:49
Je pense que tu es parti sur de mauvaises bases, et que ta table PAIE ne sert à rien.

Dans ces conditions, je ne vois pas comment je peux t'aider à aller plus loin.
0
Oholabi1234 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 7 nov. 2021 à 14:37
Mais vous ne m'expliquez pas pourquoi la tale paie est unitile, jusque là je n'ai rien compris encore, si oui
Quelles suggestions vous me faites alors pour continuer mon application, qu'en ait il de la table mouvement et de la table Catégorie
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
27 oct. 2021 à 19:47
bonjour,
comme souvent, le point de départ, c'est de réfléchir à propos des données.
as-tu toutes les données pour calculer cela?
sans doute utile de rajouter un champ avec la dernière date de paiement de cette gratification, pour chaque travailleur.
0
Oholabi1234
28 oct. 2021 à 09:26
Bjr mr, par rapport à votre suggestion
faut il créer une table gratification, avec les champs,
id_gratf
Date_gratif
Code_employe
Gratif
Enfin de mieux gérer ce volet
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Oholabi1234
28 oct. 2021 à 10:14
C'est une option.
L'autre possibilité, c'est d'ajouter des champs dans des tables existantes.

Le calcul de cette gratification sera-t-il intégré dans la fiche de paie?
Ou bien est-ce totalement séparé?
0
Oholabi1234 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
28 oct. 2021 à 10:56
Elle devra être intégrée dans la fiche de paie chaque
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Oholabi1234
28 oct. 2021 à 11:09
Je me demande, alors, s'il n'est pas préférable d'ajouter des champs dans des tables existantes.
Il suffit peut-être d'avoir un champ "montant_gratif" dans la table "mouvement" (si je me souviens du nom).
0
Oholabi12345 Messages postés 498 Date d'inscription vendredi 21 août 2020 Statut Membre Dernière intervention 29 octobre 2022 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
28 oct. 2021 à 12:08
voici les tables et les relations ; et dans la table PAIE il y a déjà un champ date correspondant à la date de paie ; faut il ajouter une autre date_gratif ; je pense qu'il faut créer une autre table GRATIFICATION et la lier à la table EMPLOYE
0
Bonsoir,
Sans aller contre ce que dit Ygbe, Access est-il le bon support pour ce genre de calcul, Excel ne serait-il pas mieux adapté ? Combien de salariés ? Parce que Access , risque d'être un peu lourd si c'est pour un nombre réduit de salariés.
A moins qu'il s'agisse d'un exercice de formation (scolaire ou professionnelle)
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
2 nov. 2021 à 15:04
peux-tu donner la liste des tables et les champs des tables?
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
3 nov. 2021 à 08:30
Je ne comprends pas à quoi servent les deux tables PAIE et MOUVEMENT.
J'ai supposé que tu avais renommé PAIE la table MOUVEMENT, et fait des suggestions en fonction de cela.
0
Bjr, c'est maintenant que je v de voir cette demande, je vous reviens alors
0
Oholabi1234 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 3 nov. 2021 à 20:24
Les tables PAIE et mouvement existent toujours, j'avais créé la table mouvement au cas où les données de la table PAIE étaient modifiées les anciennes données soient toujours conserver dans la table mouvement
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > Oholabi1234
4 nov. 2021 à 09:18
A quoi sert la table PAIE? Quelle est la différence entre les deux tables?
Donne la liste des champs de ces deux tables.
Comment ces deux tables sont-elles alimentées?
Comment sont-elles utilisées?
0
Oholabi12345 Messages postés 498 Date d'inscription vendredi 21 août 2020 Statut Membre Dernière intervention 29 octobre 2022 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 4 nov. 2021 à 22:45
LES CHAMPS DE LA PAIE :( numero_bulletin;date;sursalaire;conges;autres_indemnites;nombre_jour)
cette table sert à saisire les accessoires du salaire et surtout le nombre de jour effectué dans le mois de paie enfin de calculer la paie du mois elle est alimentéé a partir de la REQ_PAIE
et la table MOUVEMENT( NUMERO_BULLETIN, DateMov, CODE_SOCIETE, NOM_SOCIETE, CODE_EMPLOYE, NOM_EMPLOYE, PRENOM_EMPLOYE, NOMBRE_JOUR, TAUX_CATEGORIEL, SALAIRE_CATEGORIEL, SURSALAIRE, PRIME_ANC, GRATIF, AUTRES_INDEMNITES, CONGES, SALAIRE_BRUT, ITS, TRANSPORT, SALAIRENET, RETENUE_PRET, CN, IGR, NET_A_PAYER)
la table MOUVEMENT est une table obtenue a partir de la requete
INSERT INTO Mouvements ( NUMERO_BULLETIN, DateMov, NOMBRE_JOUR, ...
SELECT REQ_PAIE.NUMERO_BULLETIN, REQ_PAIE.Date, REQ_PAIE.NOMBRE_JOUR, ...

LA Table MOUVEMENT est utilisée pour sauvegarder les données de la paie de sorte à ne pas etre modifiées au cas ou un accessoire du salaire adviendrait à etre changé d'un mois à un autre
et cette requete est declenchée grace à un bouton
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
14 nov. 2021 à 11:55
J'ai été surpris de découvrir que tu gardais les données des anciens mois dans la table PAIE.
Ce serait plus propre de vider la table après avoir peuplé la table MOUVEMENTS.

Suggestions:
1) modifier REQ_PAIE pour y ajouter la date de fin de contrat.

2) création de REQ_GRATIF:
SELECT REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, (REQ_PAIE.SALAIRE_CATEGORIEL+Sum(nz(Mouvements.SALAIRE_CATEGORIEL)))/16 AS GRATIF
FROM REQ_PAIE LEFT JOIN Mouvements ON (REQ_PAIE.CODE_EMPLOYE = Mouvements.CODE_EMPLOYE) AND (year(REQ_PAIE.DATE_PAIE) = year(Mouvements.Datemov))
WHERE month(REQ_PAIE.DATE_PAIE) = 12 
OR ( month(DATE_FIN)=month(DATE_PAIE) AND year(DATE_FIN)=year(DATE_PAIE))
GROUP BY REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, REQ_PAIE.SALAIRE_CATEGORIEL;


3) modification de REQ_MOUV:
SELECT REQ_PAIE.NUMERO_BULLETIN, REQ_PAIE.Date_PAIE, REQ_PAIE.CODE_SOCIETE, REQ_PAIE.NOM_SOCIETE, REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.NOM_EMPLOYE, REQ_PAIE.PRENOM_EMPLOYE, REQ_PAIE.NOMBRE_JOUR, REQ_PAIE.TAUX_CATEGORIEL, REQ_GRATIF.GRATIF, REQ_PAIE.SALAIRE_CATEGORIEL, REQ_PAIE.SURSALAIRE, REQ_PAIE.PRIME_ANC, REQ_PAIE.AUTRES_INDEMNITES, REQ_PAIE.CONGES, REQ_PAIE.SALAIRE_BRUT, REQ_PAIE.ITS, REQ_PAIE.TRANSPORT, Round(([SALAIRE_BRUT]-[ITS]-[CN]-[IGR]),0) AS SALAIRENET, Round(Nz(Sum([MENSUALITE_RETENUE_PRET]),0),0) AS RETENUE_PRET, REQ_PAIE.CN, REQ_PAIE.IGR, Round([SALAIRENET]+[TRANSPORT]-Nz(Sum([MENSUALITE_RETENUE_PRET]),0),0) AS NET_A_PAYER
FROM (REQ_PRET RIGHT JOIN REQ_PAIE ON REQ_PRET.CODE_EMPLOYE = REQ_PAIE.CODE_EMPLOYE) LEFT JOIN REQ_GRATIF ON (REQ_PAIE.DATE_PAIE = REQ_GRATIF.DATE_PAIE) AND (REQ_PAIE.CODE_EMPLOYE = REQ_GRATIF.CODE_EMPLOYE)
GROUP BY REQ_PAIE.NUMERO_BULLETIN, REQ_PAIE.Date_PAIE, REQ_PAIE.CODE_SOCIETE, REQ_PAIE.NOM_SOCIETE, REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.NOM_EMPLOYE, REQ_PAIE.PRENOM_EMPLOYE, REQ_PAIE.NOMBRE_JOUR, REQ_PAIE.TAUX_CATEGORIEL, REQ_PAIE.GRATIFICATION, REQ_PAIE.SALAIRE_CATEGORIEL, REQ_PAIE.SURSALAIRE, REQ_PAIE.PRIME_ANC, REQ_PAIE.AUTRES_INDEMNITES, REQ_PAIE.CONGES, REQ_PAIE.SALAIRE_BRUT, REQ_PAIE.ITS, REQ_PAIE.TRANSPORT, REQ_PAIE.CN, REQ_PAIE.IGR, REQ_PAIE.GRATIF, ([SALAIRE_BRUT]-[ITS]), REQ_GRATIF.GRATIF;


4) création de AJOUT_MOUV, qui ajoute des enregistrements dans la table MOUVEMENTS
INSERT INTO Mouvements ( NUMERO_BULLETIN, DateMov, CODE_SOCIETE, NOM_SOCIETE, CODE_EMPLOYE, NOM_EMPLOYE, PRENOM_EMPLOYE, NOMBRE_JOUR, TAUX_CATEGORIEL, GRATIFICATION, SALAIRE_CATEGORIEL, SURSALAIRE, PRIME_ANC, AUTRES_INDEMNITES, CONGES, SALAIRE_BRUT, TRANSPORT, ITS, SALAIRENET, RETENUE_PRET, CN, IGR, NET_A_PAYER )
SELECT NUMERO_BULLETIN, Date_PAIE, CODE_SOCIETE, NOM_SOCIETE, CODE_EMPLOYE, NOM_EMPLOYE, PRENOM_EMPLOYE, NOMBRE_JOUR, TAUX_CATEGORIEL, GRATIF, SALAIRE_CATEGORIEL, SURSALAIRE, PRIME_ANC, AUTRES_INDEMNITES, CONGES, SALAIRE_BRUT, ITS, TRANSPORT, SALAIRENET, RETENUE_PRET, CN, IGR, NET_A_PAYER
FROM REQ_MOUV;


Je me demande si le calcul des retenues ne devrait pas tenir compte de la gratification.
0
oholabi12345
14 nov. 2021 à 14:58
merci pour cette proposition ;
les retenues sont effectuées sur le salaire brut qui contient :
SALAIRE_BRUT: [SALAIRE_CATEGORIEL]+[CONGES]+[PRIME_ANC]+[SURSALAIRE]+[GRATIF]+[AUTRES_INDEMNITES]
mais j'espère que le mode d'utilisation pour la paie reste inchangé ; c'est à dire que je saisis toujours la paie en double cliquant la REQ_PAIE et aussi dois je supprimer le formule de calcul de la gratification qui s'y trouve
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > oholabi12345
14 nov. 2021 à 15:58
Pourquoi ne pas utiliser la table PAIE pour saisir la paie, plutôt que REQ_PAIE?
0
oholabi12345 > oholabi12345
Modifié le 14 nov. 2021 à 16:52
je pense aussi que pour le calcul de la gratification ; vous avez appliquer la formule de facon genérale sans tenir compte du temps de travail; je m'explique

- un employé qui a commencé a travailler en octobre cest à dire que [date_entree]=01/10/2021
et en decembre on decide de calculer sa gratification on aura:

moyenne([salaire_categoriel] /16 *3 ou 3 représente le temps de travail ( octobre , novembre , decembre)

- un employé qui commence à travailler en octobre et que son contrat s'arrete à fin novembre
le calcul de sa gratification donnera:

moyenne([salaire_categoriel] /16 *2 ou 2 représente le temps de travail (octobre , novembre)

- un employe qui a fait un an de travail sa gratification sera:
moyenne([salaire_categoriel] /16 *12 = moyenne([salaire_categoriel]*75%*12/12 ou 12 représente le temps de travail ( janvier à decembre)

NB: la gratification tient compte du prorota du temps de travail par rapport au 12 mois de l'année
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > oholabi12345
14 nov. 2021 à 16:45
c'est pris en compte dans le calcul. as-tu testé?
0
oholabi12345 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
14 nov. 2021 à 17:20
j'ai fait un test sur l'employé 14 pour l'année 2025 et je constate que la gratification renvoyée est de 3500 au lieu de 40125 voici le lien:

https://www.cjoint.com/c/KKoqrBaqZev
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
14 nov. 2021 à 18:09
Tu n'as pas tenu compte de [https://forums.commentcamarche.net/forum/affich-37370773-mise-a-jour-des-parametres-de-la-paie-sans-modifier-les-salaires-anterieures#11 ma suggestion pour l'index de la table Mouvements.

Il serait préférable que le numéro de bulletin soit créé dans la table Mouvements, donc de le supprimer de la table PAIE.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
24 nov. 2021 à 12:25
Je me demande si la gratification est correctement prise en compte dans le calcul du salaire brut et des retenues.
0
oui la gratification est prise en compte dans le calcul du salaire brut:

select req_paie.numero_bulletin, req_paie.date_paie, req_paie.code_societe, req_paie.nom_societe, req_paie.code_employe, req_paie.nom_employe, req_paie.prenom_employe, req_paie.nombre_jour, req_paie.taux_categoriel, req_gratif.gratif, req_paie.salaire_categoriel, req_paie.sursalaire, req_paie.prime_anc, req_paie.autres_indemnites, req_conges.conges, [salaire_brut]+nz([req_gratif].[gratif],0)+nz([conges],0) as sal_brut, req_paie.its, req_paie.transport, round(([salaire_brut]-[its]-[cn]-[igr]),0) as salairenet, round(nz(sum([mensualite_retenue_pret]),0),0) as retenue_pret, req_paie.cn, req_paie.igr, round([salairenet]+[transport]-nz(sum([mensualite_retenue_pret]),0),0) as net_a_payer
from req_conges left join ((req_pret right join req_paie on req_pret.code_employe = req_paie.code_employe) left join req_gratif on (req_paie.code_employe = req_gratif.code_employe) and (req_paie.date_paie = req_gratif.date_paie)) on (req_conges.date_paie = req_paie.date_paie) and (req_conges.code_employe = req_paie.code_employe)
group by req_paie.numero_bulletin, req_paie.date_paie, req_paie.code_societe, req_paie.nom_societe, req_paie.code_employe, req_paie.nom_employe, req_paie.prenom_employe, req_paie.nombre_jour, req_paie.taux_categoriel, req_gratif.gratif, req_paie.salaire_categoriel, req_paie.sursalaire, req_paie.prime_anc, req_paie.autres_indemnites, req_conges.conges, [salaire_brut]+nz([req_gratif].[gratif],0)+nz([conges],0), req_paie.its, req_paie.transport, req_paie.cn, req_paie.igr, req_paie.gratification, req_paie.gratif, ([salaire_brut]-[its]);
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > oholabi12345
24 nov. 2021 à 14:15
et les retenues sont calculées en tenant compte de la gratification?
0
oholabi12345 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 26 nov. 2021 à 15:19
oui parce que dans le salaire brut , il y a la gratification en effet;
salaire brut: salaire categoriel+prime_ancienneté+sursalaire+conge +gratification+autre_indemnités
toutes les retenues sont effectuées sur le salaire brut
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > oholabi12345
26 nov. 2021 à 16:42
as-tu testé que les retenues sont calculées en tenant compte de la gratification?

dans quelle requête se fait le calcul que tu montres?
0
oholabi12345 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 29 nov. 2021 à 23:20
oui les retenues sont effectuées en tenant compte de la gratification ; en effet les retenues sont faites sur le salaire brut or salaire brut=salaire categoriel +conges +gratification + prime_ancienete + sursalaire+ autres primes
et jai repris toutes les requetes a savoir:
REQ_PAIE
SELECT PAIE.NUMERO_BULLETIN, PAIE.Date, EMPLOYE.CODE_SOCIETE, SOCIETE.NOM_SOCIETE, PAIE.NOMBRE_JOUR, EMPLOYE.DATE_FIN, PAIE.CODE_EMPLOYE, EMPLOYE.NOM_EMPLOYE, EMPLOYE.PRENOM_EMPLOYE, EMPLOYE.NUMERO_CNPS, EMPLOYE.SITUATION_MATRIMONIALE, EMPLOYE.NBRE_ENFANTS, EMPLOYE.TITRE, EMPLOYE.ADRESSE, EMPLOYE.DATE_ENTREE, EMPLOYE.EMPLOI_OCCUPE, EMPLOYE.ID_SERVICE, SERVICE.DESIGNATION_SRVICE, EMPLOYE.ETABLISSEMENT_BANCAIRE, EMPLOYE.NUMERO_COMPTE_BANCAIRE, EMPLOYE.ID_CATEGORIE, CATEGORIE.LIBELLE_CATEGORIE, CATEGORIE.TAUX_CATEGORIEL, PAIE.SURSALAIRE, EMPLOYE.TAUX_TRANSPORT, PAIE.AUTRES_INDEMNITES, IIf(DatePart("m",[DATE_PAIE])=DatePart("m",[Date_Gratification]),[SALAIRE_CATEGORIEL]*[ANCIENNETE]*0.75/12,IIf(DatePart("m",[DATE_PAIE])=DatePart("m",[Date_fin]),[SALAIRE_CATEGORIEL]*[ANCIENNETE]*0.75,IIf([DATE]=[Date_Gratification],[SALAIRE_CATEGORIEL]*0.75))) AS GRATIFICATION, [NOMBRE_JOUR]*[TAUX_CATEGORIEL] AS SALAIRE_CATEGORIEL, EMPLOYE.VILLE, IIf([SITUATION_MATRIMONIALE]="CELIBATAIRE",[NBRE_ENFANTS]*0.5+1,[NBRE_ENFANTS]*0.5+2) AS NBRE_PART, [TAUX_TRANSPORT]*[NOMBRE_JOUR] AS TRANSPORT, ([DATE]-[DATE_ENTREE])/30 AS ANCIENNETE, IIf([ANCIENNETE]>=2,[SALAIRE_CATEGORIEL]*[ANCIENNETE]/100,0) AS PRIME_ANC, DateSerial(Year([DATE]),Month([DATE]),1) AS DATE_PAIE, ([date_gratification]-[Date_paie])/360 AS Duree, DateSerial(Year([date_paie]),12,31) AS Date_Gratification, IIf(Month([DATE_PAIE])=12,10000) AS GR
FROM SOCIETE INNER JOIN (SERVICE INNER JOIN ((CATEGORIE INNER JOIN EMPLOYE ON CATEGORIE.ID_CATEGORIE = EMPLOYE.ID_CATEGORIE) INNER JOIN PAIE ON EMPLOYE.CODE_EMPLOYE = PAIE.CODE_EMPLOYE) ON SERVICE.ID_SERVICE = EMPLOYE.ID_SERVICE) ON SOCIETE.CODE_SOCIETE = EMPLOYE.CODE_SOCIETE;

REQ_MOUV
SELECT [REQ_PAIE 1].NUMERO_BULLETIN, [REQ_PAIE 1].Date, [REQ_PAIE 1].CODE_SOCIETE, [REQ_PAIE 1].NOM_SOCIETE, [REQ_PAIE 1].CODE_EMPLOYE, [REQ_PAIE 1].NOM_EMPLOYE, [REQ_PAIE 1].PRENOM_EMPLOYE, [REQ_PAIE 1].NUMERO_CNPS, [REQ_PAIE 1].SITUATION_MATRIMONIALE, [REQ_PAIE 1].NBRE_ENFANTS, [REQ_PAIE 1].TITRE, [REQ_PAIE 1].ADRESSE, [REQ_PAIE 1].DATE_ENTREE, [REQ_PAIE 1].EMPLOI_OCCUPE, [REQ_PAIE 1].ID_SERVICE, [REQ_PAIE 1].DESIGNATION_SRVICE, [REQ_PAIE 1].ETABLISSEMENT_BANCAIRE, [REQ_PAIE 1].NUMERO_COMPTE_BANCAIRE, [REQ_PAIE 1].ID_CATEGORIE, [REQ_PAIE 1].LIBELLE_CATEGORIE, [REQ_PAIE 1].TAUX_CATEGORIEL, [REQ_PAIE 1].SURSALAIRE, [REQ_PAIE 1].NOMBRE_JOUR, [TAUX_CATEGORIEL]*[NOMBRE_JOUR] AS SALAIRE_CATEGORIEL, REQ_CONGES.CONGES, [REQ_PAIE 1].PRIME_ANC, [REQ_PAIE 1].AUTRES_INDEMNITES, REQ_GRATIF.GRATIF, [SALAIRE_CATEGORIEL]+[CONGES]+[GRATIF]+[PRIME_ANC]+[SURSALAIRE]+Nz([AUTRES_INDEMNITES],0) AS SALAIRE_BRUT, [SALAIRE_BRUT]*0.012 AS ITS, IIf(Round([SALAIRE_BRUT]/1000,0)*1000*8/10<=50000,0,IIf(Round([SALAIRE_BRUT]/1000,0)*1000*8/10<=130000,((Round([SALAIRE_BRUT]/1000,0)*1000)*8/10-50000)*15/1000,IIf(Round([SALAIRE_BRUT]/1000,0)*1000*8/10<=200000,((((Round([SALAIRE_BRUT]/1000,0)*1000)*8/10-130000)*5/100)+1200),((((Round([SALAIRE_BRUT]/1000,0)*1000)*8/10-200000)*1/10)+4700)))) AS CN, IIf([SITUATION_MATRIMONIALE]="CELIBATAIRE",[NBRE_ENFANTS]*0.5+1,[NBRE_ENFANTS]*0.5+2) AS NBRE_PART, IIf([IMPOTREVENU]<=25000,0,IIf([IMPOTREVENU]<=45583,0.85/11*(0.8*Round([SALAIRE_BRUT]/1000)*1000-[ITS]+[CN])-[NBRE_PART]*2281,IIf([IMPOTREVENU]<=(979000/12),0.85*(0.8*Round([SALAIRE_BRUT]/1000)*1000-([ITS]+[CN]))*15/115-[NBRE_PART]*48913/12,IIf([IMPOTREVENU]<=(1519000/12),0.85*(0.8*Round([SALAIRE_BRUT]/1000)*1000-([ITS]+[CN]))*1/6-[NBRE_PART]*84375/12,IIf([IMPOTREVENU]<=(2644000/12),0.85*(0.8*Round([SALAIRE_BRUT]/1000)*1000-([ITS]+[CN]))*25/125-[NBRE_PART]*11250,IIf([IMPOTREVENU]<=4669000/12,0.85*(0.8*Round([SALAIRE_BRUT]/1000)*1000-([ITS]+[CN]))*35/135-[NBRE_PART]*291667/12,IIf([IMPOTREVENU]<=10106000/12,0.85*(0.8*Round([SALAIRE_BRUT]/1000,0)*1000-([ITS]+[CN]))*45/145-[NBRE_PART]*530172/12,0.85*(0.8*Round([SALAIRE_BRUT]/1000,0)*1000-([ITS]+[CN]))*60/160-[NBRE_PART]*1183594/12))))))) AS IGR, Nz(0.85*(0.8*Round([SALAIRE_BRUT]/1000)*1000-([ITS]+[CN]))/[NBRE_PART],0) AS IMPOTREVENU, [SALAIRE_BRUT]-[its]-[cn]-[igr] AS SALAIRE_NET, REQ_PRET.MENSUALITE_RETENUE_PRET, [TAUX_TRANSPORT]*[NOMBRE_JOUR] AS TRANSPORT, [SALAIRE_NET]+[TRANSPORT]-Nz([MENSUALITE_RETENUE_PRET],0) AS NET_A_PAYER
FROM (([REQ_PAIE 1] LEFT JOIN REQ_GRATIF ON ([REQ_PAIE 1].DATE_PAIE = REQ_GRATIF.DATE_PAIE) AND ([REQ_PAIE 1].CODE_EMPLOYE = REQ_GRATIF.CODE_EMPLOYE)) LEFT JOIN REQ_CONGES ON ([REQ_PAIE 1].DATE_PAIE = REQ_CONGES.DATE_PAIE) AND ([REQ_PAIE 1].CODE_EMPLOYE = REQ_CONGES.CODE_EMPLOYE)) LEFT JOIN REQ_PRET ON [REQ_PAIE 1].CODE_EMPLOYE = REQ_PRET.CODE_EMPLOYE;

REQ_CONGES
SELECT REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, Format(Nz(([REQ_PAIE].[SALAIRE_BRUT]+Sum(Nz([Mouvements].[SALAIRE_BRUT])))*2.2*7/6/30,0),0) AS CONGES
FROM REQ_PAIE LEFT JOIN Mouvements ON REQ_PAIE.CODE_EMPLOYE = Mouvements.CODE_EMPLOYE
WHERE (((Month(REQ_PAIE.DATE_PAIE))=Month([date_entree])) And ((Year(REQ_PAIE.DATE_PAIE))=Year([date_entree])+1)) Or (((Month([DATE_FIN]))=Month([DATE_PAIE])) And ((Year([DATE_FIN]))=Year([DATE_PAIE])))
GROUP BY REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, REQ_PAIE.SALAIRE_BRUT, REQ_PAIE.DATE_ENTREE;
0