help plz.... fonction calcul prix degressif

Répondre
pocalypse
le 31/10/2008 à 02:10
pocalypse
bonsoir a tous et toutes.
j'ai un petit probleme.
voila je voudrais integrer à mon calcul un tarif degressif en fonction de la quantité.
donc le calcul de base c'est $pu*quantité.

à savoir:
quantité=1 ==> prix total à 100%
quantité=2 ==> prix total -5%
quantité=3 ==> prix total -8%
quantité=4 ==> prix total -10%
quantité=5 ==> prix total -15%
quantité=6 ==> prix total -18%
quantité=>7 ==> prix total -23%

le petit bout de code :

function getPrixTotal()
{
$pu=$this->getPrixUnitaire();
if($pu<0)return $pu;
return $pu*$this->quantite;
}

merci de votre aide
merki madame piche...
moogli
le 31/10/2008 à 09:17
moogli
salut,

n'ayant pas le reste de la classe je vais présumer.

Il te faut une méthode qui calcul la remise (comme ça tu déporte la moulinette remise c'est plus simple).

il faut appliquer, dans ta méthode getPrixTotal(), le calcul remise X PU X Quantité.

cela te permet de faire le calucl un peu comme tu veut (ajouter la tva ou pas etc).

Perso je te conseil d'utiliser une table qui contient les remises. Pourquoi ? pourquue tu puisse les changer sans devoir taper dans le code directement (ben oui p'tet que demain tu feras 45% pour 8 articles acheté ;) )

donc une table du genre
id : clef primaire
quantité
remise

Tu peut aussi faire en sorte de choisir la remise en fonction du produit. La table devient
id
idproduit <= clef primaire de la table produit (en supposant que tu ai une table produit ;) )
quantité
remise

donc la méthode getRemise() (je suppose que tu a dans les variables membres de la classe la clef primaire du produit

<?php
function getRemise() {
// connection sql si besoin
// requete sql : select remise from tablremise where quantité= $laquantitechoisie avec en option la clause sur produit)

return $remise;
}

function getPrixTotal() {
$pu=$this->getPrixUnitaire();
$remise = $this->getRemise();
if($pu<0) // je vois pas comment tu peut avoir un prix inférieur à zéro si c'est la cas donne moi l'adresse de ta boite que j'aille y faire des achats un commerçant qui me file des sous j'adore ;)).
return $pu;
return $pu*$this->quantite*$remise;
}
?>

enfin c'est une solution ;)

@+
Il en faut peu pour être heureux !!!!!
LupusMic
le 01/11/2008 à 03:30
LupusMic
S'il y a bien une chose que j'ai appris lors de l'usage de logiciels de calculs de prix, c'est qu'il faut toujours tout calculer une fois. Sinon, on obtient des problèmes en raison des bogues d'arrondis.

Donc il faut que tu fasse une table avec les prix précalculés en fonction de la quantité, et donc de la remise. Si tu prévois des remises flottantes, il faudra avoir un système un peu plus complexe. Mais là, je pense que ce sera pour une boîte pro, et tu auras toute latitude pour te payer des personnes compétentes.

Tout ça pour dire que c'est complexe à mettre en place, surtout si c'est pour une vraie boutique en ligne.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours