1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

WD Formule Libre de Calcul des valeurs

Discussion dans 'Windev' créé par LAPIPE2018, Juin 27, 2018.

  1. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    647
    J'aime reçus:
    227
    Bonjour,
    J'ai un vieux Logiciel de Paie. Il y a un client qui veut introduire de nouveau éléments avec calcul. Il veut quitté Sage.
    Exemple : element de salaire=salaire Net * 13/12
    J'ai prie le plus simple qui soit. Mais moi, je ne dois pas lui créer une contrainte. Comment je fais au niveau de sa formule. Je sais que je vais utiliser la commande Compile.
    je cherche un retour d'expérience.
    Merci
     
  2. trick

    trick Active Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 1, 2018
    Messages:
    169
    J'aime reçus:
    95
    Salut,

    Tu met dans la base de données un fichier Formules et tu colle dedans tes formules (modifiables) par le client.
    Ensuite pour chaque ligne de ta fiche de paie tu indique l'ID de ta la ligne de formule et ensuite tu lance ton calcul avec Compile
    Ou autre option pour chaque ligne de Paie , tu met dans ta bdd une zone formule de calcul et la tu indique quelle formule de calcul tu utilise pour la ligne
     
    LAPIPE2018 et joker aiment ça.
  3. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    647
    J'aime reçus:
    227
    Bonjour, Comment déclarer une variable de façon dynamique avec la commande compile ?
     
  4. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour, Comment déclarer une variable de façon dynamique avec la commande compile ?
    Cliquez pour agrandir...
    je pense qu'il est préférable d'utiliser

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  • ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    371
    J'aime reçus:
    372
    @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    {"MaVariable", indVariable}

    Bon Dev
     
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    647
    J'aime reçus:
    227
    Merci @Popoy,

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    J'essaie d'expliquer en mieux pour mieux comprendre . Supposons une table TABRUBRIQUE qui a une structure (CODE,VALEUCODE), pour utiliser une valeur comme variable saisie par un client, il faut la déclarer. le Client a déclarer au paramétrage le code C001 et lui a attribué la valeur 10, il a déclarer C002 il a mis 30, il veut faire la formule, C002 divisé par C001. Vous voyez que je ne suis ni au début, ni à la fin de sa pensée. Je dois juste lui donner un champ SFormule dans lequel il il met ce qu'il veut et je récupère. C'est ça ce que je cherche.
    Je pensais que je pouvais au démarrage créer des variable, de façon dynamique , associé à C001,C002. Pour que le champ Formule puisse avoir des variables globales(c'est sur que ça ne marche pas), il faut le faire dans la procédure et donc compiler plusieurs fois
    Merci
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bonjour,

    Et pourquoi compliquer les choses? :)

    Peut import ce que le "client" va rentrer dans sa formule de calcul.. on peut toujours récupérer ce qu'il a saisi, l'analyser et l'utiliser dans des "variables" ; il suffit d'avoir un peut d'optimisme :D

    Le principe est le même qu'une calculatrice, au final ce ne sont que des opérations de calcul avec des "délimiteurs" prédéfinis : les opérateurs (*/+-()=).

    Pour les variables "créés" : Une partie d'une chaine est une variable indépendante qu'on peut l'utiliser indépendamment de la chaine de dépare. exp :

    si maChaine = "element de salaire=salaire Net * 13/12" après analyse j'aurai :

    maChaine[1] = "element de salaire"
    maChaine[2] = "="
    maChaine[3] = "salaire Net"
    maChaine[4] = "*"
    maChaine[5] = "13"
    maChaine[6] = "/"
    maChaine[7] = "12"

    au final on a 7 variables qu'on n'a pas pré-déclaré, d'une manière orthodoxe, mais qu'on peut les utiliser qd même.

    Sinon, pour ma petite expérience personnelle (si sa peut t'aider) pour mes logiciels de paie j'utilise les éléments fixes et les éléments variables (mais en limitant les choix aux utilisateurs tout en gardant le principe de "variable" )

    [​IMG]

    [​IMG]

    Après chaque pays a ses propres règles de calcul suivant les lois reste a s'adapter et d'appliquer ces règles...

    Voici par exemple comment je procède dans mon approche je commence par déclarer les éléments de la paie et les règles de calcul au code initial du projet:

    Code (Windev):

    SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Types_Element_Paie) = 0 ALORS
        Init_Types_Element_Paie()
    FIN

    SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Ajout_Deduct) = 0 ALORS
        Init_Ref_Ajout_Deduct()
    FIN

    SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul) = 0 ALORS
        Init_Ref_Base_Calcul()
    FIN

    SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Assiette) = 0 ALORS
        Init_Ref_Assiette()
    FIN

    SI

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Types_Salaire) = 0 ALORS
        Init_Types_Salaire()
    FIN
     
    les procédures globales :


    Code (Windev):

    PROCEDURE Init_Types_Element_Paie()

    F_Ref_Types_Element_Paie.Description = "Fixe"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Types_Element_Paie)

    F_Ref_Types_Element_Paie.Description = "Variable"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Types_Element_Paie)
     
    Code (Windev):

    //
    PROCEDURE Init_Ref_Ajout_Deduct()

    F_Ref_Ajout_Deduct.Description = " + Brut, + Imp."

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Ajout_Deduct)

    F_Ref_Ajout_Deduct.Description = " + Brut, - Imp."

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Ajout_Deduct)

    F_Ref_Ajout_Deduct.Description = " + Imposable"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Ajout_Deduct)

    F_Ref_Ajout_Deduct.Description = " - du Sal. Brut"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Ajout_Deduct)

    F_Ref_Ajout_Deduct.Description = " + au Sal. Net"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Ajout_Deduct)

    F_Ref_Ajout_Deduct.Description = " - du Sal. Net"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Ajout_Deduct)
     
    //
    Code (Windev):

    PROCEDURE Init_Ref_Base_Calcul()

    F_Ref_Base_Calcul.Description = "Entière"
    F_Ref_Base_Calcul.TypeCalcul = 1
    F_Ref_Base_Calcul.Formule = ""

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Pourcentage"
    F_Ref_Base_Calcul.TypeCalcul = 2
    F_Ref_Base_Calcul.Formule = ""

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Mt*Nj/26, Mt*Nh"
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = "Mt*Nj/26, Mt*Nh"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Th* Nbre* Taux"
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = "Th* Nbre* Taux"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Max= Nbj. Base"
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = "Max= Nbj. Base"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Mt * Nbj / 26"
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = "Mt * Nbj / 26"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Spécial Tâche"
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = ""

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Spéc. C.Maladie"
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = ""

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Spéc. Acc.Trav."
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = ""

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)

    F_Ref_Base_Calcul.Description = "Mt * Nbj"
    F_Ref_Base_Calcul.TypeCalcul = 3
    F_Ref_Base_Calcul.Formule = "Mt * Nbj"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Base_Calcul)
    [code]
    [code=windev]
    //
    PROCEDURE Init_Ref_Assiette()

    F_Ref_Assiette.Description = "du Sal. Base"
    F_Ref_Assiette.TypeSalaire = 1

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Assiette)

    F_Ref_Assiette.Description = "du Sal. Brut"
    F_Ref_Assiette.TypeSalaire = 2

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Assiette)

    F_Ref_Assiette.Description = "du Sal. Net"
    F_Ref_Assiette.TypeSalaire = 3

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Assiette)
     
    //
    Code (Windev):

    PROCEDURE Init_Types_Salaire()

    F_Ref_Types_Salaire.Description = "Base"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Types_Salaire)

    F_Ref_Types_Salaire.Description = "Brut"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Types_Salaire)

    F_Ref_Types_Salaire.Description = "Net"

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (F_Ref_Types_Salaire)
     
     
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    647
    J'aime reçus:
    227
    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , en supposant que j'ai bien compris ta méthode pour ta paie, elle est plus simple. Est ce que tu ne pouvais pas fusionner F_Ref_Types_Salaire et F_Ref_Assiette ? Juste pour les soucis de compréhension à mon niveau.
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Non on peut pas les fusionner; le type de salaire est différent de l'assiette, qui est une base de calcul.

    Sinon, ce ne sont que des référentiels pour faciliter les saisies dans les fiches (exactement comme un fichier de civilité ou de codes postaux...)

    Pour pouvoir tenir un paie simple et correct il faut prévoir TOUT les assiettes et formules de calcul possibles selon votre modèle de paie local. Généralement les formules sont toujours les mêmes et ne changent pas tout les jours!
     
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    647
    J'aime reçus:
    227

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , Dans la figure que tu as donné, J'essaie , mais je ne vois pas où intervient F_Ref_Types_Salaire ainsi que les variations liées à F_Ref_Base_Calcul.TypeCalcul (1 à :relievedface:. Je suis entrain de regarder une autre façon. Utiliser le Drag and Drop, ça semble aussi complexe. Parce que ça suppose j'impose un certains ordre. C'est pour ça que j'essaie de comprendre en même temps la tienne.
     
  • thedrhb

    thedrhb Active Member

    Inscrit:
    Mai 19, 2018
    Messages:
    299
    J'aime reçus:
    160
    je crois qu'on peut faire ça avec programmation
     
  • channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bobjour,
    Commençant par le commencement :
    - Quels sont tes éléments fixes (CNSS, vacation, prime de rendement, prime de logement,...) ?
    - Qu'elles sont tes variables (avance sur salaire, prime semi remorque, congé payé,...)?
    - Quelles sont tes formules de calcul (pour un prime de logement par exemple)?
    Ton but est de faire un logiciel de paie qui tient des fiches de paie, gère les conges, les prêts, édite les déclarations periodiques d'employeur,...
    Ou juste un éditeur de fomules?
     
  • LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    647
    J'aime reçus:
    227

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , Le Logiciel existe et marche. je veux juste permettre à un client de définir lui même son élément, ensuite introduire la formule de Calcul.
    Je ne suis pas au niveau du projet. Je ne veux que mettre en place un éditeur de formule.
    Thx
     
  • Partager cette page

    Chargement...