Calculer l'indemnité de congé d'un employé
Oholabi12345
Messages postés
498
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be -
yg_be -
Bonjour, Bonjour,
Je souhaiterais calculer le congé d'un travailleur , en effet le congé est acquis après 12 mois de présence ; un travailleur est pointé chaque mois selon le nombre de jour effectués dans un mois donné et reçoit sa paie à la fin du mois , et à la fin du mois anniversaire de son entrée dans l'entreprise il reçoit et sa paie mensuelle et son indemnités de congé qui sera calculé en tenant compte de son salaire catégoriel, son sursalaire les autre indemnités sa prime d'ancienneté ; aussi le congé pourrait lui être versé quand son contrat de travail prend fin au prorata du temps de présence
Jai deja cette requete et je souhaite que la gratification soit payée un mois avant la date anniversaire du mois d'entrée du travailleur ; celle ci fonctionne mais au mois anniversaire
Je souhaiterais calculer le congé d'un travailleur , en effet le congé est acquis après 12 mois de présence ; un travailleur est pointé chaque mois selon le nombre de jour effectués dans un mois donné et reçoit sa paie à la fin du mois , et à la fin du mois anniversaire de son entrée dans l'entreprise il reçoit et sa paie mensuelle et son indemnités de congé qui sera calculé en tenant compte de son salaire catégoriel, son sursalaire les autre indemnités sa prime d'ancienneté ; aussi le congé pourrait lui être versé quand son contrat de travail prend fin au prorata du temps de présence
Jai deja cette requete et je souhaite que la gratification soit payée un mois avant la date anniversaire du mois d'entrée du travailleur ; celle ci fonctionne mais au mois anniversaire
1 SELECT REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, Round((Nz(([REQ_PAIE].
2 [SALAIRE_CATEGORIEL]+[REQ_PAIE].[SURSALAIRE]+[REQ_PAIE].[AUTRES_INDEMNITES]+[REQ_PAIE].
3 [PRIME_ANC]+Nz([TotSalPrec]))))*2.2*7/6/30) AS CONGES
4 FROM REQ_PAIE LEFT JOIN REQ_PREP_CONG ON (REQ_PAIE.CODE_EMPLOYE =
5 REQ_PREP_CONG.CODE_EMPLOYE) AND (REQ_PAIE.DATE_PAIE = REQ_PREP_CONG.DATE_PAIE)
6 WHERE (((Month([REQ_PAIE].[DATE_PAIE]))=Month([REQ_PAIE].[date_entree]) And (Month([REQ_PAIE].
7 [DATE_PAIE]))>Year([REQ_PAIE].[date_entree]))) OR (((Month([DATE_FIN]))=Month([DATE_PAIE])) AND
8 ((Year([DATE_FIN]))=Year([DATE_PAIE])) AND ((REQ_PAIE.DATE_FIN)>[DATE_PAIE]));
Configuration: Windows / Chrome 96.0.4664.110
A voir également:
- Calculer l'indemnité de congé d'un employé
- Comment calculer la moyenne sur excel - Guide
- Comment calculer un total sur excel - Guide
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel
- Comment calculer une note sur 20 - Forum Bureautique
- Santa barbara - Forum Musique / Radio / Clip
11 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
"un mois avant": ne suffit-il pas, alors, de soustraire un au mois?
"un mois avant": ne suffit-il pas, alors, de soustraire un au mois?
oui jai fait ceci mais ca ne donne toujours rien
Edit: Correction des balises de code..
SELECT REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, Round((Nz(([REQ_PAIE].[SALAIRE_CATEGORIEL]+[REQ_PAIE].[SURSALAIRE]+[REQ_PAIE].[AUTRES_INDEMNITES]+[REQ_PAIE].[PRIME_ANC]+Nz([TotSalPrec]))))*2.2*7/6/30) AS CONGES FROM REQ_PAIE LEFT JOIN REQ_PREP_CONG ON (REQ_PAIE.DATE_PAIE = REQ_PREP_CONG.DATE_PAIE) AND (REQ_PAIE.CODE_EMPLOYE = REQ_PREP_CONG.CODE_EMPLOYE) WHERE (((Month([REQ_PAIE].[DATE_PAIE]))=Month([REQ_PAIE].[date_entree])-1 And (Month([REQ_PAIE].[DATE_PAIE]))>Year([REQ_PAIE].[date_entree]))) OR (((Month([DATE_FIN]))=Month([DATE_PAIE])) AND ((Year([DATE_FIN]))=Year([DATE_PAIE])) AND ((REQ_PAIE.DATE_FIN)>[DATE_PAIE]));
Edit: Correction des balises de code..
Bonjour Mr; j'ai effectué la modification et je n'ai toujours pas le montant du congé dans la table MOUVEMENT ; ca apparait toujours dans le mois anniversaire et voici le code de la requete:
SELECT REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, Round((Nz(([REQ_PAIE].[SALAIRE_CATEGORIEL]+[REQ_PAIE].[SURSALAIRE]+[REQ_PAIE].[AUTRES_INDEMNITES]+[REQ_PAIE].[PRIME_ANC]+Nz([TotSalPrec]))))*2.2*7/6/30) AS CONGES
FROM REQ_PAIE LEFT JOIN REQ_PREP_CONG ON (REQ_PAIE.CODE_EMPLOYE = REQ_PREP_CONG.CODE_EMPLOYE) AND (REQ_PAIE.DATE_PAIE = REQ_PREP_CONG.DATE_PAIE)
WHERE (((Month([REQ_PAIE].[DATE_PAIE]))=Month(DateSerial(2020,Month([REQ_PAIE].[date_entree])-1,1)))) OR (((Month([DATE_FIN]))=Month([DATE_PAIE])) AND ((Year([DATE_FIN]))=Year([DATE_PAIE])) AND ((REQ_PAIE.DATE_FIN)>[DATE_PAIE]));
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
tu as écrit ceci: " je souhaite que la gratification soit payée un mois avant la date anniversaire du mois d'entrée du travailleur "
est-ce correct?
est-ce correct?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
je recommence:
je teste ainsi:
1) j'ouvre la base partagée en #4
2) je remplace la source SQL de REQ_DEF_CONGE par la source partagée en #6
3) j'exécute la requête ainsi modifiée
je ne reçois rien, comme toi.
et cela me semble normal.
qu'attends-tu d'autre? pourquoi?
je teste ainsi:
1) j'ouvre la base partagée en #4
2) je remplace la source SQL de REQ_DEF_CONGE par la source partagée en #6
3) j'exécute la requête ainsi modifiée
je ne reçois rien, comme toi.
et cela me semble normal.
qu'attends-tu d'autre? pourquoi?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je n'obtenais pas le résultat décrit en #44, et ne comprenais pas pourquoi tu y écrivais "les réponses attendues sont bonnes".
J'obtiens le résultat décrit en #50.
Je ne sais pas ce que tu as changé dans ton fichier entre les versions #14 et #44, ni pourquoi tu penses que la version #44 est meilleure que la #14.
Je constate, cependant, que la requête REQ_DEF_CONGE s'est dégradée.
J'obtiens le résultat décrit en #50.
Je ne sais pas ce que tu as changé dans ton fichier entre les versions #14 et #44, ni pourquoi tu penses que la version #44 est meilleure que la #14.
Je constate, cependant, que la requête REQ_DEF_CONGE s'est dégradée.
Le resultat affiché par REQ_DEF_CONGE apres avoir appliqué le REQ_AJOUT_MOUV donne une valeur correcte du congé qui 'appuie sur cette formule :
Round((Nz(([REQ_PAIE].[SALAIRE_CATEGORIEL]+[REQ_PAIE].[SURSALAIRE]+[REQ_PAIE].[AUTRES_INDEMNITES]+[REQ_PAIE].[PRIME_ANC]+[MOUVEMENTS].[GRATIF]+Nz([TotSalPrec])))))*2.2*7/6/30 AS CONGES
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je pense que tu n'as pas tenu compte de ceci:
faire une nouvelle requête (appelons-là REQ_CONGE), qui à partir de REQ_MOUV et REQ_PREP_CONGE, reprend toutes les infos de REQ_MOUV, ajoute l'indemnité de congé au salaire brut, et calcule les retenues.
C'était le point 6 du message publié le 1 déc. 2021 à 19:01 dans la discussion https://forums.commentcamarche.net/forum/affich-37429835-calcul-de-l-indemnites-de-conges
Pour t'aider à corriger cela, je t'invite à faire une liste de toutes les requêtes, avec, pour chaque requête, ses sources (tables et/ou requêtes). Cette liste t'aidera à identifier des erreurs et à les corriger.
faire une nouvelle requête (appelons-là REQ_CONGE), qui à partir de REQ_MOUV et REQ_PREP_CONGE, reprend toutes les infos de REQ_MOUV, ajoute l'indemnité de congé au salaire brut, et calcule les retenues.
C'était le point 6 du message publié le 1 déc. 2021 à 19:01 dans la discussion https://forums.commentcamarche.net/forum/affich-37429835-calcul-de-l-indemnites-de-conges
Pour t'aider à corriger cela, je t'invite à faire une liste de toutes les requêtes, avec, pour chaque requête, ses sources (tables et/ou requêtes). Cette liste t'aidera à identifier des erreurs et à les corriger.
bjr; voici la requete REQ_CONGE
Pour la liste des requetes et leur source je l'ai établie mais je n'ai pas encore fait la remarque ; est ce que vous pourriez me donner des pistes pour attirer mon attention
merci
SELECT REQ_MOUV.NUMERO_BULLETIN, REQ_MOUV.Date, REQ_MOUV.CODE_SOCIETE, REQ_MOUV.NOM_SOCIETE, REQ_MOUV.CODE_EMPLOYE, REQ_MOUV.NOM_EMPLOYE, REQ_MOUV.PRENOM_EMPLOYE, REQ_MOUV.NUMERO_CNPS, REQ_MOUV.TAUX_TRANSPORT, REQ_MOUV.SITUATION_MATRIMONIALE, REQ_MOUV.NBRE_ENFANTS, REQ_MOUV.TITRE, REQ_MOUV.ADRESSE, REQ_MOUV.DATE_ENTREE, REQ_MOUV.EMPLOI_OCCUPE, REQ_MOUV.ID_SERVICE, REQ_MOUV.DESIGNATION_SRVICE, REQ_MOUV.ETABLISSEMENT_BANCAIRE, REQ_MOUV.NUMERO_COMPTE_BANCAIRE, REQ_MOUV.ID_CATEGORIE, REQ_MOUV.LIBELLE_CATEGORIE, REQ_MOUV.TAUX_CATEGORIEL, REQ_MOUV.SURSALAIRE, REQ_MOUV.NOMBRE_JOUR, REQ_MOUV.SALAIRE_CATEGORIEL, REQ_MOUV.PRIME_ANC, REQ_MOUV.AUTRES_INDEMNITES, REQ_PREP_CONGE.CONGES, REQ_MOUV.GRATIF, Nz([SAL_BRUT]+[CONGES],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, Format(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))))))),0) AS IGR, REQ_MOUV.DATE_FIN, Round(Nz(0.85*(0.8*Round([SALAIRE_BRUT]/1000)*1000-([ITS]+[CN]))/[NBRE_PART],0),0) AS IMPOTREVENU, Round([SALAIRE_BRUT]-[its]-[cn]-[igr],0) AS SALAIRE_NET, REQ_MOUV.MENSUALITE_RETENUE_PRET, [TAUX_TRANSPORT]*[NOMBRE_JOUR] AS TRANSPORT, [salaire_net]+[transport]-[MENSUALITE_RETENUE_PRET] AS [NET A PAYER]
FROM REQ_MOUV LEFT JOIN REQ_PREP_CONGE ON (REQ_MOUV.CODE_EMPLOYE = REQ_PREP_CONGE.CODE_EMPLOYE) AND (REQ_MOUV.Date = REQ_PREP_CONGE.Date);
Pour la liste des requetes et leur source je l'ai établie mais je n'ai pas encore fait la remarque ; est ce que vous pourriez me donner des pistes pour attirer mon attention
merci
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Tu as un autre soucis, tu as négligé ceci:
https://forums.commentcamarche.net/forum/affich-37370773-mise-a-jour-des-parametres-de-la-paie-sans-modifier-les-salaires-anterieures#11
pour la table mouvement:
comme il s'agit d'un salaire mensuel, je mettrais toujours dans la colonne DateMouvement la date de premier jour du mois.
et je mettrais un index unique sur (DateMouvement, Code_Employe), pour empêcher un accident où on aurait deux fois les infos avec le même employé et le même mois.
Comme je te l'ai rappelé le 15 déc. 2021 à 15:52: le champs DATE_PAIE est bien calculé dans REQ_PAIE, mais est ensuite négligé par les autres requêtes, et on retrouve finalement une date incorrecte dans DateMov de la table Mouvements.
A cause de cela, plusieurs requêtes donnent un résultat incorrect.
Est-ce utile, dans la table Mouvements, d'avoir aussi la date comme est encodée dans la table PAIE?
https://forums.commentcamarche.net/forum/affich-37370773-mise-a-jour-des-parametres-de-la-paie-sans-modifier-les-salaires-anterieures#11
pour la table mouvement:
comme il s'agit d'un salaire mensuel, je mettrais toujours dans la colonne DateMouvement la date de premier jour du mois.
et je mettrais un index unique sur (DateMouvement, Code_Employe), pour empêcher un accident où on aurait deux fois les infos avec le même employé et le même mois.
Comme je te l'ai rappelé le 15 déc. 2021 à 15:52: le champs DATE_PAIE est bien calculé dans REQ_PAIE, mais est ensuite négligé par les autres requêtes, et on retrouve finalement une date incorrecte dans DateMov de la table Mouvements.
A cause de cela, plusieurs requêtes donnent un résultat incorrect.
Est-ce utile, dans la table Mouvements, d'avoir aussi la date comme est encodée dans la table PAIE?
je viens de corriger de sorte que datemov de la table MOUVEMENT ; prend la valeur de DATE_PAIE ; c'est a dire le 1er du mois encodé dans la table PAIE
effectivement dans la table MOUVEMENT ; il a 2 clés primaires à savoir la datemov et le code employé pour empêcher les répétions des mêmes infos
dans les autres requetes ; j'ai pris en compte DATE_PAIE; mais ca ne change rien au niveau des resultats des requetes
voici la requete congé :
effectivement dans la table MOUVEMENT ; il a 2 clés primaires à savoir la datemov et le code employé pour empêcher les répétions des mêmes infos
dans les autres requetes ; j'ai pris en compte DATE_PAIE; mais ca ne change rien au niveau des resultats des requetes
voici la requete congé :
SELECT REQ_MOUV.NUMERO_BULLETIN, REQ_MOUV.DATE_PAIE, REQ_MOUV.CODE_SOCIETE, REQ_MOUV.NOM_SOCIETE, REQ_MOUV.CODE_EMPLOYE, REQ_MOUV.NOM_EMPLOYE, REQ_MOUV.PRENOM_EMPLOYE, REQ_MOUV.NUMERO_CNPS, REQ_MOUV.TAUX_TRANSPORT, REQ_MOUV.SITUATION_MATRIMONIALE, REQ_MOUV.NBRE_ENFANTS, REQ_MOUV.TITRE, REQ_MOUV.ADRESSE, REQ_MOUV.DATE_ENTREE, REQ_MOUV.EMPLOI_OCCUPE, REQ_MOUV.ID_SERVICE, REQ_MOUV.DESIGNATION_SRVICE, REQ_MOUV.ETABLISSEMENT_BANCAIRE, REQ_MOUV.NUMERO_COMPTE_BANCAIRE, REQ_MOUV.ID_CATEGORIE, REQ_MOUV.LIBELLE_CATEGORIE, REQ_MOUV.TAUX_CATEGORIEL, REQ_MOUV.SURSALAIRE, REQ_MOUV.NOMBRE_JOUR, REQ_MOUV.SALAIRE_CATEGORIEL, REQ_MOUV.PRIME_ANC, REQ_MOUV.AUTRES_INDEMNITES, REQ_PREP_CONGE.CONGES, REQ_MOUV.GRATIF, Nz([SAL_BRUT]+[CONGES],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, Format(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))))))),0) AS IGR, REQ_MOUV.DATE_FIN, Round(Nz(0.85*(0.8*Round([SALAIRE_BRUT]/1000)*1000-([ITS]+[CN]))/[NBRE_PART],0),0) AS IMPOTREVENU, Round([SALAIRE_BRUT]-[its]-[cn]-[igr],0) AS SALAIRE_NET, REQ_MOUV.MENSUALITE_RETENUE_PRET, [TAUX_TRANSPORT]*[NOMBRE_JOUR] AS TRANSPORT, [salaire_net]+[transport]-[MENSUALITE_RETENUE_PRET] AS [NET A PAYER]
FROM REQ_MOUV LEFT JOIN REQ_PREP_CONGE ON (REQ_MOUV.DATE_PAIE = REQ_PREP_CONGE.DATE_PAIE) AND (REQ_MOUV.CODE_EMPLOYE = REQ_PREP_CONGE.CODE_EMPLOYE);
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
En lisant la liste partagée en #96, je me demande si l'indemnité de congé est correcte.
As-tu testé le calcul de l'indemnité de congé si la gratification est payée le même mois?
As-tu testé le calcul de l'indemnité de congé si la gratification est payée le même mois?
le congé dans la requête REQ_DEF_CONGE est correcte et elle est affichée dans la requête REQ_CONGE_DEFINITIF dans le mois de décembre mais dans la table MOUVEMENTS le congé est 0 après avoir fait le INSERT
voici la requête REQ_AJOUT_MOUV
voici la requête REQ_AJOUT_MOUV
INSERT INTO Mouvements ( NUMERO_BULLETIN, DateMov, CODE_SOCIETE, NOM_SOCIETE, CODE_EMPLOYE, NOM_EMPLOYE, PRENOM_EMPLOYE, DATE_ENTREE, TAUX_CATEGORIEL, SURSALAIRE, NOMBRE_JOUR, SALAIRE_CATEGORIEL, PRIME_ANC, AUTRES_INDEMNITES, CONGES, GRATIF, SALAIRE_BRUT, ITS, CN, IGR, SALAIRE_NET, MENSUALITE_RETENUE_PRET, TRANSPORT, NET_A_PAYER, DATE_FIN_CONTRAT )
SELECT REQ_CONGE_DEFINITIF.NUMERO_BULLETIN, REQ_CONGE_DEFINITIF.DATE_PAIE, REQ_CONGE_DEFINITIF.CODE_SOCIETE, REQ_CONGE_DEFINITIF.NOM_SOCIETE, REQ_CONGE_DEFINITIF.CODE_EMPLOYE, REQ_CONGE_DEFINITIF.NOM_EMPLOYE, REQ_CONGE_DEFINITIF.PRENOM_EMPLOYE, REQ_CONGE_DEFINITIF.DATE_ENTREE, REQ_CONGE_DEFINITIF.TAUX_CATEGORIEL, REQ_CONGE_DEFINITIF.SURSALAIRE, REQ_CONGE_DEFINITIF.NOMBRE_JOUR, REQ_CONGE_DEFINITIF.SALAIRE_CATEGORIEL, REQ_CONGE_DEFINITIF.PRIME_ANC, REQ_CONGE_DEFINITIF.AUTRES_INDEMNITES, REQ_CONGE_DEFINITIF.CONGES, REQ_CONGE_DEFINITIF.GRATIF, REQ_CONGE_DEFINITIF.SALAIRE_BRUT, REQ_CONGE_DEFINITIF.ITS, REQ_CONGE_DEFINITIF.CN, REQ_CONGE_DEFINITIF.IGR, REQ_CONGE_DEFINITIF.SALAIRE_NET, REQ_CONGE_DEFINITIF.MENSUALITE_RETENUE_PRET, REQ_CONGE_DEFINITIF.TRANSPORT, REQ_CONGE_DEFINITIF.[NET A PAYER], REQ_CONGE_DEFINITIF.DATE_FIN
FROM REQ_CONGE_DEFINITIF;
1) je suis surpris que la requête REQ_DEF_CONGE calcule correctement l'indemnité de congé en tenant compte de la gratification payée le même mois.
2) si le résultat de REQ_CONGE_DEFINITIF est correct et la table MOUVEMENTS ne contient pas les informations correctes après avoir utilisé REQ_AJOUT_MOUV, je pense à ces trois sources d'erreurs:
a) le tableau partagé en #96 n'est pas correct, ne correspond pas à la réalité
b) tu ne respectes pas les règles d'utilisation de la base de données
c) tu ignores des avertissements reçus, ou tu as modifié des options pour éviter de recevoir ces avertissements.
2) si le résultat de REQ_CONGE_DEFINITIF est correct et la table MOUVEMENTS ne contient pas les informations correctes après avoir utilisé REQ_AJOUT_MOUV, je pense à ces trois sources d'erreurs:
a) le tableau partagé en #96 n'est pas correct, ne correspond pas à la réalité
b) tu ne respectes pas les règles d'utilisation de la base de données
c) tu ignores des avertissements reçus, ou tu as modifié des options pour éviter de recevoir ces avertissements.
la première remarque a été corrigée ( la gratification payée le même mois a été retirée)
maintenant la table MOUVEMENT contient un montant qui est diffèrent de 0 et qui ne tient pas compte de la gratification payée ; en fait il reste à intégrer dans le calcul du congé la dernière gratification payée pour le travailleur
maintenant la table MOUVEMENT contient un montant qui est diffèrent de 0 et qui ne tient pas compte de la gratification payée ; en fait il reste à intégrer dans le calcul du congé la dernière gratification payée pour le travailleur
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je pensais que tu voulais travailler sur ceci, que tu as écrit en #103.
"en fait il reste à intégrer dans le calcul du congé la dernière gratification payée pour le travailleur"
J'essaie donc de te faire découvrir ce que tu dois corriger pour cela.
"en fait il reste à intégrer dans le calcul du congé la dernière gratification payée pour le travailleur"
J'essaie donc de te faire découvrir ce que tu dois corriger pour cela.
au vu du #117 je pense que les REQ_MOUV et REQ_PAIE et REQ_PREP_CONG servirons désormais à calculer la REQ_DEF_CONGE et permettront de d'obtenir la gratification payée le même mois de congé ainsi pour la fin de contrat dans le calcul de l'indemnité de congé
mais pour le cas ou la gratification n'est pas calculée le même mois de congé alors pour le moment rien ne s'affiche dans le calcul du congé car la REQ_MOUV affiche seulement le cas ou la gratification est pour le même mois
mais pour le cas ou la gratification n'est pas calculée le même mois de congé alors pour le moment rien ne s'affiche dans le calcul du congé car la REQ_MOUV affiche seulement le cas ou la gratification est pour le même mois
oui effectivement ; voici la requête REQ_DEF_CONGE
SELECT REQ_MOUV.CODE_EMPLOYE, REQ_MOUV.DATE_PAIE, Nz(Round((Nz(([SALAIRE_CATEGORIEL]+[SURSALAIRE]+[AUTRES_INDEMNITES]+Nz([REQ_MOUV].[GRATIF],0)+[PRIME_ANC]+Nz([TotSalPrec]))))*2.2*7/6/30)) AS CONGES
FROM REQ_MOUV LEFT JOIN REQ_PREP_CONG ON (REQ_MOUV.DATE_PAIE = REQ_PREP_CONG.DATE_PAIE) AND (REQ_MOUV.CODE_EMPLOYE = REQ_PREP_CONG.CODE_EMPLOYE)
WHERE (((Month([REQ_MOUV].[DATE_PAIE]))=Month(DateSerial(2020,Month([REQ_MOUV].[date_entree])-1,1)))) OR (((Month([REQ_MOUV].[DATE_FIN]))=Month([REQ_PREP_CONG].[DATE_PAIE])) AND ((Year([REQ_MOUV].[DATE_FIN]))=Year([REQ_PREP_CONG].[DATE_PAIE])) AND ((REQ_MOUV.DATE_FIN)=[REQ_PREP_CONG].[DATE_PAIE]))
GROUP BY REQ_MOUV.CODE_EMPLOYE, REQ_MOUV.DATE_PAIE, Nz(Round((Nz(([SALAIRE_CATEGORIEL]+[SURSALAIRE]+[AUTRES_INDEMNITES]+Nz([REQ_MOUV].[GRATIF],0)+[PRIME_ANC]+Nz([TotSalPrec]))))*2.2*7/6/30));
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Pour t'aider à comprendre ce que fait le WHERE de la requête REQ_PREP_CONGE que tu as écrite, je t'invite à créer une nouvelle requête, ayant le même WHERE:
Cette nouvelle requête devrait te montrer quels salaires sont utilisés à partir de la table MOUVEMENTS.
SELECT REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, DateMov, (Nz([SALAIRE_BRUT]))-([mouvements].[conges]) AS SalPrec FROM REQ_PAIE LEFT JOIN Mouvements ON REQ_PAIE.CODE_EMPLOYE = Mouvements.CODE_EMPLOYE WHERE (((REQ_PAIE.CODE_EMPLOYE)=Mouvements.CODE_EMPLOYE) And ((Month([DateMov]))<=Month([DATE_PAIE]))) order by REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, DateMov
Cette nouvelle requête devrait te montrer quels salaires sont utilisés à partir de la table MOUVEMENTS.
Ceci sera peut-être plus clair pour comprendre l'effet du WHERE:
SELECT REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, Mouvements.DateMov, (Nz([SALAIRE_BRUT]))-([mouvements].[conges]) AS TotSalPrec, Month([DateMov]) as moismouv, Month([DATE_PAIE]) as moispaie FROM REQ_PAIE LEFT JOIN Mouvements ON REQ_PAIE.CODE_EMPLOYE = Mouvements.CODE_EMPLOYE WHERE (((REQ_PAIE.CODE_EMPLOYE)=[Mouvements].[CODE_EMPLOYE]) AND ((Month([DateMov]))<=Month([DATE_PAIE]))) ORDER BY REQ_PAIE.CODE_EMPLOYE, REQ_PAIE.DATE_PAIE, Mouvements.DateMov;