Donnez vie à vos documents numériques !
 

JavaScript pour calcul de 2 TVA avec formule conditionnelle

abracadabraPDF Forums PDF – Général JavaScript pour calcul de 2 TVA avec formule conditionnelle

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46358
    ClaireR
    Membre

    Bonjour,
    Sur un formulaire pdf Adobe type bon de commande, je dois appliquer 2 TVA (une à 10% et une à 20%) car selon les items, la TVA n’est pas la même.
    En soit, rien de compliqué mais mon problème est que selon certaines conditions, la TVA de certains produits peut changer en passant de 20% à 10%.
    Cela implique donc une formule conditionnelle de calcul que je maîtrise parfaitement sur Excel, mais dans ce cas là d’un formulaire Adobe, il faut un script Java que je ne maîtrise pas du tout car j’ai pour habitude de faire des formulaires avec les fonctionnalités de base de Adobe.
    J’ai essayé de la retranscrire dans la notation simplifiée du Calcul mais ça ne fonctionne pas.

    Ci-dessous les 2 formules Excel que je dois retranscrire :
    Pour la TVA à 10% :
    ((Total_cocktail_18p+Total_softs+Total_mocktail+Total_participation+Total_personnel+Total_animation_salée+Total_animation_sucrée)*0.1)+SI((Total_personnel+Total_animation_salee+Total_animation_sucree)0;(Total_materiel+Total_decoration+Total_reprise_nuit)*0,1;0)
    Pour la TVA à 20% :
    (Total_champagne+Total_vin+Total_biere+Total_sydre+Total_cocktail_alcool)*0,2+SI((Total_personnel+Total_animation_salee+Total_animation_sucree)=0;(Total_materiel+Total_decoration+Total_reprise_nuit)*0,2;0)

    Un ami m’a aidé pour faire pour la TVA à 20% en prenant le calcul dans l’autre sens.
    Cependant, quand je place le script dans Notation simplifiée, rien ne se calcule et quand je le place dans Script personnalisé, j’ai un message d’erreur, cf PJ.
    Voici le script :

        // Déclaration des variables
        var total_champagne = 0;
        var total_vin = 0;
        var total_biere = 0;
        var total_sydre = 0;
        var total_cocktail_alcool = 0;

        var total_personnel = 0;
        var total_animation_salee = 0;
        var total_animation_sucree = 0;

        var total_materiel = 0;
        var total_decoration = 0;
        var total_reprise_nuit = 0;

        var x = 0;
        var y = 0;
        var z = 0;

        var result = 0;

        // Ajout des valeurs dans les variables
        total_champagne = 1;
        total_vin = 2;
        total_biere = 3;
        total_sydre = 4;
        total_cocktail_alcool = 5;

        total_personnel = 0;
        total_animation_salee = 0;
        total_animation_sucree = 0;

        total_materiel = 1;
        total_decoration = 1;
        total_reprise_nuit = 1;

        // Calcul des totaux
        var x = (total_champagne + total_vin + total_biere + total_sydre + total_cocktail_alcool)*0.2;
        var y = total_personnel + total_animation_salee + total_animation_sucree;
        var z = total_materiel + total_decoration + total_reprise_nuit;

        // Test de la valeur de Y pour définir la valeur de RESULT
        if (y == 0) { result = z * 0.2; }
        else { result = 0; }

        // Calcul final
        total_final = x + result;

       

    Est-ce que l’un de vous pourrait m’aider à résoudre mon blocage ?

    Merci par avance pour votre aide !

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Auteur
    Réponses
  • #67788
    Merlin
    Maître des clés

    Bonjour

    En fait moi c’est l’inverse, ce sont les formules d’Excel que je ne comprend pas.  :joker:
    Peux tu les traduire en langage “normal” ? Parce-qu’il y a des trucs qui m’échappent, comme : 0  :Euuuh:

    #67789
    ClaireR
    Membre

    Bonjour,
    Alors après m’etre clairement cassée la tête hier 😅 j’ai trouvé la solution et le bon script !
    Je suis très fière de moi pour la novice que je suis ! 🙂

    Du coup si jamais ça peut un jour intéresser quelqu’un, ci-dessous le script que j’ai utilisé et qui fonctionne pour la TVA à 10% par exemple  lorsqu’on met une condition. Jai changé les conditions pour la TVA à 20% mais c’est le même principe que j’ai utilisé.

    if((this.getField(“Total_personnel”).value + this.getField(“Total_animation_salee”).value + this.getField(“Total_animation_sucree”).value) == 0)
    {
    event.target.value = (this.getField(“Total_cocktail_18p”).value + this.getField(“Total_softs”).value + this.getField(“Total_mocktail”).value + this.getField(“Total_participation”).value) * 0.1;
    }
    if((this.getField(“Total_personnel”).value + this.getField(“Total_animation_salee”).value + this.getField(“Total_animation_sucree”).value) != 0)
    {
    event.target.value = (this.getField(“Total_cocktail_18p”).value + this.getField(“Total_softs”).value + this.getField(“Total_mocktail”).value + this.getField(“Total_personnel”).value + this.getField(“Total_animation_salee”).value + this.getField(“Total_animation_sucree”).value + this.getField(“Total_participation”).value + this.getField(“Total_materiel”).value + this.getField(“Total_decoration”).value + this.getField(“Total_reprise_nuit”).value) * 0.1;{

    Et du coup pour répondre à votre question le signe veut dire différent en langage excel 😉

    Par contre, petite et dernière question car après j’aurais enfin bouclé ce formulaire, j’ai mis un bouton avec action “envoyer le formulaire en pdf” ainsi qu’une signature électronique.
    Cependant, une fois la signature apposée, si le signataire verrouille le pdf au moment de la signature (ce qui est plus sécurisant), je constate qu’il ne peut plus cliquer sur le bouton d’envoi du formulaire.
    Est ce qu il n y a pas une solution à ça ? Je voulais qu’il ai juste à cliquer sur un bouton pour que ça lui prépare le mail avec le formulaire plutôt que de lui expliquer qu’il faut ensuite enregistrer le pdf puis le renvoyer par mail.

    Merci  beaucoup

    #67790
    Merlin
    Maître des clés

    Pour le coup ça n’y changera pas grand-chose et c’est un peu long à expliquer pourquoi mais pour bien faire il faudrait remplacer :
    if((this.getField(“Total_personnel”).value + this.getField(“Total_animation_salee”).value + this.getField(“Total_animation_sucree”).value) != 0)

    Par :
    else if((this.getField(“Total_personnel”).value + this.getField(“Total_animation_salee”).value + this.getField(“Total_animation_sucree”).value) != 0)

    Concernant la signature il y a deux options :
    – spécifier dans les paramètres du champ signature qu’il faut verrouiller tous les champs sauf le bouton.
    – utiliser la fonction “Envoyer pour signature”.

    #67791
    ClaireR
    Membre

    Super merci beaucoup. J’ai fait ces modifs et c’est nickel.  :Smiley01:  un grand merci !!  :extra:

Affichage de 4 réponses de 1 à 4 (sur un total de 4)
  • Vous devez être connecté pour répondre à ce sujet.