probleme de calcul

10 messages dans ce sujet

Posté(e) · Signaler ce message

Dans achat/modele/achat_confirmatio, j'ai modifié ceci :

while ($prod = mysql_fetch_array($qid)) {

$quantite = $_SESSION['caddie']->articles[$prod['id']];

$promotion = $prod['promotion'] ;

$prix = $prod['prix'] * (1-$promotion/100)

$prix_ht = ($prod['prix'] * (1-$promotion/100)) / (1+$prod['tva'] / 100);

$total_ttc = $prix * $quantite;

$total_ht = $prix_ht * $quantite;

$ensemble_total_ht += $total_ht;

$ensemble_total_ttc += $total_ttc;

$tva = $ensemble_total_ttc - $ensemble_total_ht;

switch ($transport) {

case "normal" :

$expedition = $normal;

break;

case "express" :

$expedition = $express;

break;

}

?>

<tr>

<td class="normal"><?php echo $prod['reference'] ?></td>

<td class="normal">

<?php echo $prod['nom'] ?>

</td>

<td class="normal" align="right">

<?php

echo fprix($prix)." &euro; ";

if ($promotion != 0) { echo "(- ".$promotion." % )"; }

?>

</td>

<td class="normal" align="center"><?php echo $quantite?></td>

<td class="normal" align="right" colspan="2">

<?php echo fprix($total_ttc) ?> €

</td>

</tr>

<?php } ?>

<tr>

<td colspan="4"></td>

<td colspan="2"><hr size=1></td>

</tr>

<tr>

<td colspan="4" class="label" align="right"">Total H.T. :</td>

<td class="normal" align="right"><b><?php echo fprix($ensemble_total_ht) ?></b></td>

<td class="normal"><b>€ </b></td>

</tr>

<tr>

<td colspan="4" class="label" align="right">TVA :</td>

<td class="normal" align="right"><b><?php echo fprix($tva) ?></b></td>

<td class="normal"><b>&euro;</b></td>

</tr>

<tr>

<td colspan="4" class="label" align="right">Frais d'expédition :</td>

<td class="normal" align="right"><b><?php echo $expedition; ?></b></td>

<td class="normal">&euro;</td>

</tr>

<tr>

<td colspan="4" class="label" align="right">Total T.T.C :</td>

<td class="normal" align="right"><b>

<?php

$caddie_total = $ensemble_total_ttc + $expedition;

Par :

while ($prod = mysql_fetch_array($qid)) {

$quantite = $_SESSION['caddie']->articles[$prod['id']];

$promotion = $prod['promotion'] ;

$prix = $prod['prix'] * (1-$promotion/100) + $prod['ecotaxe'];

$prix_ht = ($prod['prix'] * (1-$promotion/100)) / (1+$prod['tva'] / 100);

$ecotaxe_ht = (($prod['prix'] * (1-$promotion/100) + $prod['ecotaxe']) - $prod['prix'] * (1-$promotion/100)) / 1.196;

$total_ttc = $prix * $quantite;

$total_ht = $prix_ht * $quantite;

$ensemble_total_ht += $total_ht;

$ensemble_total_ttc += $total_ttc;

$tva = $ensemble_total_ttc - $ensemble_total_ht - $ecotaxe_ht;

switch ($transport) {

case "normal" :

$expedition = $normal;

break;

case "express" :

$expedition = $express;

break;

}

?>

<tr>

<td class="normal"><?php echo $prod['reference'] ?></td>

<td class="normal">

<?php echo $prod['nom'] ?>

</td>

<td class="normal" align="right">

<?php

echo fprix($prix)." &euro; ";

if ($promotion != 0) { echo "(- ".$promotion." % )"; }

?>

</td>

<td class="normal" align="center"><?php echo $quantite?></td>

<td class="normal" align="right" colspan="2">

<?php echo fprix($total_ttc) ?> €

</td>

</tr>

<?php } ?>

<tr>

<td colspan="4"></td>

<td colspan="2"><hr size=1></td>

</tr>

<tr>

<td colspan="4" class="label" align="right"">Total H.T. :</td>

<td class="normal" align="right"><b><?php echo fprix($ensemble_total_ht) ?></b></td>

<td class="normal"><b>€ </b></td>

</tr>

<tr>

<td colspan="4" class="label" align="right"">Ecotaxe H.T. :</td>

<td class="normal" align="right"><b><?php echo fprix($ecotaxe_ht) ?></b></td>

<td class="normal"><b>€ </b></td>

</tr>

<tr>

<td colspan="4" class="label" align="right">TVA :</td>

<td class="normal" align="right"><b><?php echo fprix($tva) ?></b></td>

<td class="normal"><b>&euro;</b></td>

</tr>

<tr>

<td colspan="4" class="label" align="right">Frais d'expédition :</td>

<td class="normal" align="right"><b><?php echo $expedition; ?></b></td>

<td class="normal">&euro;</td>

</tr>

<tr>

<td colspan="4" class="label" align="right">Total T.T.C :</td>

<td class="normal" align="right"><b>

<?php

$caddie_total = $ensemble_total_ttc + $expedition;

Mais j'ai un probleme, dans les calculs, j'ai ajouté l'ecotaxe, ca fonctionne pour un produit et seulement 1

Si j'augmente son nombre , l'ecotaxe n'est pas multiplié

Si j'ajoute un autre produit, c'est l'ecotaxe de ce produit qui est calculé.

Pour voir un exemple: www.discountfolies.fr/boutique

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

essaye comme ca

$ecotaxe_ht += (($prod['prix'] * (1-$promotion/100) + $prod['ecotaxe']) - $prod['prix'] * (1-$promotion/100)) / 1.196;

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci, ca marche seulement si la quantité est de 1 par article.

J'ai essayé d'ajouter $quantité à la correction que tu m'a apporté mais ca ne marche pas

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

$ecotaxe_ht = ((($prod['prix'] * (1-$promotion/100) + $prod['ecotaxe']) - $prod['prix'] * (1-$promotion/100)) / 1.196)* $quantite

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Il y a une gestion de stock sur le site ?

J'ai testé une commande et l'un des produits n'est plus affiché.

Pour la commande, j'ai commandé le produit en 2 ex et le calcul était ok. En revanche, sur la facture tout est à 0.

Quand vous faites des tests sur ce genre de choses, que vous modifiez des fichiers mais sans résultat apparent, pensez à rebooter votre navigateur afin de vider la session.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Merci c'est impeccable

Par contre, il faut que je fasse la meme chose sur la facture mais la je bloque, j'ai deja essayé de faire quelque chose mais les modifs que j'ai fait ne vont pas et ca ecrit 0

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

oui il y a la gestion des stocks

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

pour ce qui est de la facture, la méthodologie est presque la même que pour la commande. il vous faut créer les variables correspondantes à l'écotaxe, récupéré la valeur écotaxe dans la table commande (si toutefois vous n'avez pas oublié de l'écrire dedans) et de revoir les divers calculs comme vous les avez modifiés sur vos pages de commandes.

en cas de souci publiez votre page afin que l'on voit ce qui cloche.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

de rien pour ce qui est de la commande, pour la facture, il faut voir ce que ca donne d'abord apres ton premier travail de defrichage.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

J'ai crée un champ ecotaxe dans la table commandes-articles comme ceci : float 5,2 non nul

voila mes modif pour le fichier facture :

<?php

include("../configuration.inc.php");

/* Charge les détails d'une commande et les affiche */

$timestamp = urldecode($_GET['timestamp']);

$id = $_GET['id'];

$mode = $_GET['mode'];

switch ($mode) {

case "proforma" :

$libelle = "BON DE COMMANDE";

break;

case "facture" :

$libelle = "FACTURE";

break;

}

if (!empty($id) && !empty($timestamp)) {

$qid_commande = mysql_query("SELECT * FROM peel_commandes WHERE id = '$id' AND o_timestamp = '$timestamp'");

$qid_items = mysql_query("

SELECT

p.reference

,p.nom

,p.promotion

,p.prix AS curr_prix

,p.ecotaxe AS curr_ecotaxe

,oi.prix AS purchase_prix

,oi.ecotaxe AS purchase_ecotaxe

,oi.quantite

,oi.tva

,oi.promotion

,oi.prix * oi.quantite AS total

FROM peel_commandes_articles oi

LEFT JOIN peel_produits p ON (oi.produit_id = p.id)

WHERE commande_id = '$id'

");

$commande = mysql_fetch_object($qid_commande);

?>

<html>

<head>

<TITLE><?php echo $libelle." numéro ".$id." du ".return_date_fr($commande->o_timestamp)."";?></TITLE>

<link REL="stylesheet" type="text/css" href="<?php echo $stylefile?>">

<script LANGUAGE="JavaScript" SRC="<?php echo $wwwroot?>/lib/js/window.js"></script>

</head>

<body>

<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" bgcolor="white">

<tr>

<td valign="top">

<div align="center">

<center>

<table border="0" cellspacing="0" width="90%" bgcolor="white">

<tr>

<td valign="top">

<div class="titre"><?php echo $libelle." numéro ".$id." du ".return_date_fr($commande->o_timestamp)."";?></div>

<div align="left">

<table border="1" cellpadding="5" cellspacing="0" width="60%" bordercolor="#000000">

<tr>

<td bgcolor="#ffffff" align="center" class="normal">

<?php

print_societe();

?>

</td>

</tr>

</table>

</div>

</td>

</tr>

</table>

</center>

</div>

<p align="center" class="normal"><a class="normal" href="java script:window.print();"><b>Imprimer le Facture</b></a></p>

<div align="center"><center>

<table border="0" cellpadding="0" cellspacing="0" width="90%" bgcolor="white">

<tr>

<td valign="top" width="50%">

<table border="1" cellpadding="5" cellspacing="1" width="100%" bordercolor="#808080">

<tr>

<td bgcolor="#f3e2a0" class="normal"><b>Adresse de facturation</b></td>

</tr>

<tr>

<td class="normal"><?php echo nl2br(stripslashes($commande->client_info1))?></td>

</tr>

</table>

</td>

<td valign="top" width="50%">

<table border="1" cellpadding="5" cellspacing="1" width="100%" bordercolor="#808080">

<tr>

<td bgcolor="#f3e2a0" class="normal"><b>Adresse de livraison</b></td>

</tr>

<tr>

<td class="normal"><?php echo nl2br(stripslashes($commande->client_info2))?></td>

</tr>

</table>

</td>

</tr>

</table>

</center>

</div>

<div align="center">

<table border="1" cellpadding="3" cellspacing="0" bordercolor="#000000" width="90%" bgcolor="white">

<tr>

<td align="center" bgcolor="#f3e2a0" class="label">Ref</td>

<td align="center" bgcolor="#f3e2a0" class="label">Produit</td>

<td align="center" bgcolor="#f3e2a0" class="label">Quantité</td>

<td align="center" bgcolor="#f3e2a0" class="label">Prix unitaire</td>

<td align="center" bgcolor="#f3e2a0" class="label">Prix Total</td>

</tr>

<?php

$ensemble_total_ht = 0;

$ensemble_total_ttc = 0;

if ($qid_items) {

if (mysql_num_rows($qid_items)) {

while ($prod = mysql_fetch_array($qid_items)) {

$prix = $prod['purchase_prix'] + $prod['purchase_ecotaxe'];

$prix_ht = $prod['purchase_prix'] / (1+$prod['tva']/100);

$ecotaxe_ht += ((($prod['purchase_prix'] * (1-$promotion/100) + $prod['purchase_ecotaxe']) - $prod['purchase_prix'] * (1-$promotion/100)) / 1.196) * $quantite;

$total_ttc = $prod['total'] ;

$total_ht = $total_ttc / (1+$prod['tva']/100);

$ensemble_total_ht += $total_ht;

$ensemble_total_ttc += $total_ttc ;

$tva = $ensemble_total_ttc - $ensemble_total_ht - $ecotaxe_ht;

?>

<tr>

<td class="normal"><?php echo $prod['reference'] ?></td>

<td class="normal"><?php print $prod['nom'];if ($prod['promotion'] != 0) {print "&nbsp;(-&nbsp; ".$prod['promotion']." % )";} ?>

</td>

<td class="normal" align="center"><?php echo $prod['quantite']?></td>

<td class="normal" align="center">

<?php echo fprix($prix)?></td>

<td class="normal" align="center">

<?php echo fprix($prod['total'])?> € T.T.C

</td>

</td>

</tr>

<?php } ?>

</table>

<?php

}

} ?>

<br />

<table border="1" cellpadding="3" cellspacing="0" width="90%" bordercolor="#000000">

<tr>

<td align="left" bgcolor="#ffffff" class="normal">Mode de paiement </td>

<td align="right" bgcolor="#ffffff" class="normal"><?php echo $commande->paiement?></td>

</tr>

<tr>

<td align="left" bgcolor="#ffffff" class="normal">TOTAL HT&nbsp; </td>

<td align="right" bgcolor="#ffffff" class="normal"><b><?php echo fprix($ensemble_total_ht)?> € H.T.</b></td>

</tr>

<tr>

<td align="left" bgcolor="#ffffff" class="normal">Ecotaxe HT&nbsp; </td>

<td align="right" bgcolor="#ffffff" class="normal"><b><?php echo fprix($ecotaxe_ht)?> € H.T.</b></td>

</tr>

<tr>

<td align="left" bgcolor="#ffffff" class="normal">TVA&nbsp;</td>

<td align="right" bgcolor="#ffffff" class="normal"><b><?php echo fprix($tva)?> €</b></td>

</tr>

et j'ai modifié dans lib/fonction/fontions dans function cree_commande(&$commande)

/* ajout des articles à la table commandes_articles */

$qid = recupere_articles_caddie();

if ($qid) {

if (mysql_num_rows($qid) > 0) {

while ($article = mysql_fetch_array($qid)) {

$prix = $article['prix'] * (1-$article['promotion']/100);

$requete = "INSERT INTO peel_commandes_articles (

commande_id, produit_id, nom_produit, prix, ecotaxe, quantite, promotion, tva

) VALUES (

'$commandeid'

,'".$article['id']."'

,'".addslashes($article['nom'])."'

,'".$prix."'

,'".$ecotaxe."'

,'".$_SESSION['caddie']->articles[$article['id']]."'

,'".$article['promotion']."'

,'".$article['tva']."'

)";

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping