Logique
Boucles
Math
Texte
Listes
Données
Variables
Fonctions
Programmation
p5.js
Objets web
Propriétés
Formes
Tortue
Apparence
GeoGebra
var canevas, imag, prixUnitaire, quant, facture, x, descr, description, image, largeur_image, prix_unitaire, nombre_d_items, no_item, rabais, k, total, taxes, calculs, titres, tableau, intro, prixUnitaireSansD, largeur_facture, largeur_calculs, resultat, suffixe, taxe, glissTaxe, glissRabais, pourcent1, nombres, boutons, ligneCourante, temp, calculsVisibles, retenirCalculsVisibles, bouton, pourcent2, imagr, couleur_caract_C3_A8res, couleur_fond, comment_calculer_le_r_C3_A9sultat; /** * Fonction exécutée une fois, au départ */ function actions_initiales() { disposerPageExecution(true,0); intro=createElement("h1",'Facture'); stylerObjetPrudent("intro",intro,'font-size','60px'); glissTaxe=nouvelleGlissiereValeur('Taxe ',0,100,15,1); pourcent1=createSpan(' %'); stylerObjetPrudent("glissTaxe",glissTaxe,'width','600px'); stylerObjetPrudent("glissTaxe",glissTaxe,'font-size','36px'); stylerObjetPrudent("pourcent1",pourcent1,'font-size','36px'); siChangementPrudent("glissTaxe",glissTaxe,"recreer_calculs",recreer_calculs); createSpan("<br>"); glissRabais=nouvelleGlissiereValeur('Rabais ',0,100,10,1); pourcent2=createSpan(' %'); stylerObjetPrudent("glissRabais",glissRabais,'width','600px'); stylerObjetPrudent("glissRabais",glissRabais,'font-size','36px'); stylerObjetPrudent("pourcent2",pourcent2,'font-size','36px'); siChangementPrudent("glissRabais",glissRabais,"recreer_calculs",recreer_calculs); createSpan("<br>"); bouton=createButton('Montrer les calculs'); siClicPrudent("bouton",bouton,"clic_bouton",clic_bouton); stylerObjetPrudent("bouton",bouton,'font-size','36px'); stylerObjetPrudent("bouton",bouton,'background',(color(75,125,170,255))); stylerObjetPrudent("bouton",bouton,'color','#ffffff'); createSpan("<br>"); createSpan("<br>"); creer_facture(); creer_calculs(); disposerPageExecution(true,(largeur_facture + 80)); } /** * Décrire cette fonction… */ function creer_facture() { init_facture(); ligneCourante = 1; ma_facture(); facture=creerAffichageListes([descr, imag, prixUnitaire, quant, boutons],largeur_facture,"PIXELS","INACTIVEE",500,36); } /** * Décrire cette fonction… */ function nb_items() { return descr.length - 1; } /** * Fonction exécutée périodiquement, de façon répétée */ function actions_en_boucle() { } /** * Décrire cette fonction… */ function creer_calculs() { calculsVisibles = false; titres = ['']; calculs = ['']; mes_calculs(); tableau=creerAffichageListes([titres, calculs],largeur_calculs,"PIXELS","INACTIVEE",500,48); positionnerObjetPrudent("tableau",tableau,(40 + (largeur_facture - largeur_calculs) / 2),400); stylerObjetPrudent("tableau",tableau,'visibility','hidden'); } /** * Décrire cette fonction… */ function identifier(x) { temp = Math.round(parseFloat(window.prompt('Nouveau nombre'))); if (estNombre(temp)) { quant[x] = temp; afficherListes([descr, imag, prixUnitaire, quant, boutons],facture); recreer_calculs(); } retenirCalculsVisibles = calculsVisibles; faireDelaiPrudent("cacher",cacher,0.01); } /** * Décrire cette fonction… */ function init_facture() { descr = ['Description']; imag = ['Image']; prixUnitaireSansD = ['Prix unitaire sans $']; prixUnitaire = ['Prix unitaire']; quant = ['Nombre']; boutons = ['Changer']; } /** * Décrire cette fonction… */ function prix__unitaire(no_item) { return prixUnitaireSansD[no_item]; } /** * Décrire cette fonction… */ function ajouter_calculs(description, resultat, suffixe) { titres.push(description); if (0 == suffixe.length) { calculs.push(resultat); } else { calculs.push((String((resultat).toFixed(2)) + String(suffixe))); } } /** * Décrire cette fonction… */ function image_de_fond(image, couleur_caract_C3_A8res) { if ((occurenceChaine(image,true,'http')) > -1) { document.body.style.backgroundImage = (['url("',image,'")'].join('')); document.body.style.backgroundSize = "cover"; } else { document.body.style.backgroundColor = image; } stylerObjetPrudent("intro",intro,'color',couleur_caract_C3_A8res); stylerObjetPrudent("glissTaxe",glissTaxe,'color',couleur_caract_C3_A8res); stylerObjetPrudent("glissRabais",glissRabais,'color',couleur_caract_C3_A8res); stylerObjetPrudent("pourcent1",pourcent1,'color',couleur_caract_C3_A8res); stylerObjetPrudent("pourcent2",pourcent2,'color',couleur_caract_C3_A8res); } /** * Décrire cette fonction… */ function cacher() { calculsVisibles = retenirCalculsVisibles; if (calculsVisibles) { stylerObjetPrudent("tableau",tableau,'visibility','hidden'); stylerObjetPrudent("tableau",tableau,'visibility','visible'); } else { stylerObjetPrudent("tableau",tableau,'visibility','hidden'); } } /** * Décrire cette fonction… */ function ajouter_item(description, image, prix_unitaire, nombre_d_items) { descr.push(description); imag.push((['<img src="',image,'" width="',largeur_image,'px">'].join(''))); prixUnitaireSansD.push(prix_unitaire); prixUnitaire.push((String((prix_unitaire).toFixed(2)) + String(' $'))); quant.push(nombre_d_items); boutons.push((['<button type="button" style="font-size:20pt" onclick="identifier(',ligneCourante,')">Nombre<br />d\'items</button>'].join(''))); ligneCourante = ligneCourante + 1; } /** * Décrire cette fonction… */ function quantit_C3_A9_item(no_item) { return quant[no_item]; } /** * Décrire cette fonction… */ function recreer_calculs() { titres = ['']; calculs = ['']; mes_calculs(); afficherListes([titres, calculs],tableau); positionnerObjetPrudent("tableau",tableau,(40 + (largeur_facture - largeur_calculs) / 2),400); if (calculsVisibles) { stylerObjetPrudent("tableau",tableau,'visibility','hidden'); stylerObjetPrudent("tableau",tableau,'visibility','visible'); } else { stylerObjetPrudent("tableau",tableau,'visibility','hidden'); } } /** * Décrire cette fonction… */ function ma_facture() { image_de_fond('https://cdn.pixabay.com/photo/2021/02/03/13/04/colored-pencils-5977918_1280.jpg', '#ffffff'); largeur_facture = 1400; largeur_image = 250; ajouter_item('Cahier d\'exercices scolaires 40 pages', 'https://i5.walmartimages.com/asr/ad4daa2c-d454-42f9-81f2-0df9563416d4.84d2e355137b303879c17290feb442c4.jpeg', 3.99, 4); ajouter_item('Classeur anneaux', 'https://i5.walmartimages.com/asr/c529818c-e7d2-4a9b-95c3-e6b628857390.adc3e18fd7c4d966b088190394cbd812.jpeg', 5.99, 3); ajouter_item('Feuilles mobiles lignées, 200 Feuilles', 'https://i5.walmartimages.ca/images/Enlarge/613/608/6000197613608.jpg', 7.99, 2); ajouter_item('Feuilles collantes 3x3,<br />6 blocs de 100 feuilles', 'https://i5.walmartimages.com/asr/5cc925cc-d0c5-4f18-a703-ace45f765631.7a84375fa7e737adc9665e7eb66335be.jpeg', 3.99, 2); ajouter_item('Crayons HB n° 2, paquet de 24', 'https://i5.walmartimages.ca/images/Enlarge/223/736/223736.jpg', 12.32, 2); ajouter_item('Surligneurs, couleurs assorties,<br />5 unités', 'https://i5.walmartimages.ca/images/Enlarge/908/376/999999-70330908376.jpg', 6.49, 3); ajouter_item('Trousse de géometrie', 'https://i5.walmartimages.ca/images/Enlarge/966/491/999999-3154141966491.jpg', 8.88, 1); ajouter_item('Elmer\'s bâton de colle mauve, paq./3', 'https://i5.walmartimages.ca/images/Enlarge/125/926/125926.jpg', 5.49, 2); } /** * Décrire cette fonction… */ function clic_bouton() { if (contenuPrudent("bouton",bouton) == 'Montrer les calculs') { fixeContenuPrudent("bouton",bouton,'Cacher les calculs'); stylerObjetPrudent("tableau",tableau,'visibility','visible'); calculsVisibles = true; } else { fixeContenuPrudent("bouton",bouton,'Montrer les calculs'); stylerObjetPrudent("tableau",tableau,'visibility','hidden'); calculsVisibles = false; } } /** * Décrire cette fonction… */ function mes_calculs() { largeur_calculs = 700; taxe = valeurPrudent("glissTaxe",glissTaxe) / 100; rabais = valeurPrudent("glissRabais",glissRabais) / 100; total = 0; for (k = 1; k <= nb_items(); k += abs(1)) { total = total + prix__unitaire(k) * quantit_C3_A9_item(k); } ajouter_calculs('Total', total, ' $ '); ajouter_calculs('Taxes', total * taxe, ' $ '); ajouter_calculs('Total + taxes', total * (1 + taxe), ' $ '); ajouter_calculs('Rabais', total * (1 + taxe) * rabais, ' $ '); ajouter_calculs('Total + taxes - rabais', total * (1 + taxe) * (1 - rabais), ' $ '); ajouter_calculs('-----', '-----', ''); ajouter_calculs('Total (reporté)', total, ' $ '); ajouter_calculs('Rabais', total * rabais, ' $ '); ajouter_calculs('Total - rabais', total * (1 - rabais), ' $ '); ajouter_calculs('Taxes', total * (1 - rabais) * taxe, ' $ '); ajouter_calculs('Total - rabais + taxes', total * (1 - rabais) * (1 + taxe), ' $ '); } //'#ff0000'; //ajouter_item('Nom de l\'item', 'adresse web de l\'image', 0, 0); //ajouter_calculs('Nom du calcul', comment_calculer_le_r_C3_A9sultat, ' $ ou pas'); //eval('total*(1-rabais)*(1+taxe)'); //eval('total*(1-rabais)*(1+taxes)');