Hello,

j'ai fait le plein de capsule de café, servez vous.
Je me prends la tête avec un truc en php où le problème d'un typage de données mais je trouve pas où

voila le code partiel :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
    if (file_exists($fichier)) {
        echo "La taille du fichier est de :" . filesize($fichier) . " octets <BR><BR>";
        $ligne = 1; // compteur de ligne
        $fic = fopen($fichier, "a+");
        while ($tab = fgetcsv($fic, 0, ';', '"')) {
            $champs = count($tab); //nombre de champ dans la ligne en question
            $ligne ++;
            //affichage de chaque champ de la ligne en question
            if ($tab[$vente["Statut"]] == $statut) {
                // Facture OK
                // détail
                // COMPTE
                echo $type_reglement[$tab[$vente["Mode paiement"]]] . ";";
                // LIBELLE
                $libelle = strtoupper($tab[$vente["Nom"]] . " " .
                        $tab[$vente["Prenom"]] . " - " .
                        $tab[$vente["Num_commande"]]);
 
                echo $libelle . ";";
                //DEBIT / CREDIT
                echo $tab[$vente["Total commande TTC"]] . ";0.00" . "<br />";
 
                // écriture TVA
                if ($tab[$tva["20"]] != 0) {
                    echo "445668;" . $libelle . ";0.00;" . $tab[$tva["20"]] . "<BR>";
                }
                if ($tab[$tva["10"]] != 0) {
                    echo "445666;" . $libelle . ";0.00;" . $tab[$tva["10"]] . "<BR>";
                }
                if ($tab[$tva["5.5"]] != 0) {
                    echo "445665;" . $libelle . ";0.00;" . $tab[$tva["5.5"]] . "<BR>";
                }
 
                // PORT
                if ($tab[$vente["Frais livraison HT"]] != 0) {
                    echo "6242xxx;" . $libelle . ";0.00;" . $tab[$vente["Frais livraison HT"]] . "<BR>";
                }
 
                // COMPTE 700
                echo "700;" . $libelle . ";0.00;" . $tab[$vente["Sous-total HT"]] . "<BR>";
 
                // PERTE OU PROFIT
                $pp = ($tab[$vente["Total commande TTC"]] - ($tab[$tva["20"]] + $tab[$tva["10"]] + $tab[$tva["5.5"]] + $tab[$vente["Frais livraison HT"]] + $tab[$vente["Sous-total HT"]]));
                if ($pp != 0) {
                    if ($pp > 0)
                        echo "758;" . $libelle . ";0.00;" . $pp . "<BR>";
                    else
                        echo "658;" . $libelle . ";" . $pp . ";0.00" . "<BR>";
                    print_r($tab);
                    print_r(" PP=".$pp."<BR>");
                    $pp = $tab[$tva["20"]] + $tab[$tva["10"]] + $tab[$tva["5.5"]] + $tab[$vente["Frais livraison HT"]] + $tab[$vente["Sous-total HT"]];
                    print_r(" PP=".$pp."<BR>");
                    print_r(" PPmoins=".($tab[$vente["Total commande TTC"]]-$pp)."<BR>");
                    //print_r(" PP=".($tab[$tva["20"]] + $tab[$tva["10"]] + $tab[$tva["5.5"]] + $tab[$vente["Frais livraison HT"]] + $tab[$vente["Sous-total HT"]]));
                    echo " Total TTC=".$tab[$vente["Total commande TTC"]] . "<BR>";
                    print_r (" 20%=".$tab[$tva["20"]]) . "<BR>";
                    print_r (" 10%=".$tab[$tva["10"]]) . "<BR>";
                    print_r (" 5.5%=".$tab[$tva["5.5"]]) . "<BR>";
                    echo " Livraison HT=".$tab[$vente["Frais livraison HT"]] . "<BR>";
                    echo " ssTotal HT=".$tab[$vente["Sous-total HT"]] . "<BR>";
                    echo "<BR>";
 
                }
 
 
                echo "<BR>";
            }
        }
    }
    ?>
et voila le résultat

411CLIENTPP;VENET PHILIPPE - 59;31.62;0.00
445668;VENET PHILIPPE - 59;0.00;5.27
6242xxx;VENET PHILIPPE - 59;0.00;6.35
700;VENET PHILIPPE - 59;0.00;20.00
758;VENET PHILIPPE - 59;0.00;3.5527136788005E-15
Array ( [0] => 59 [1] => 56 [2] => 11-03-2014 [3] => [4] => 78 [5] => philippe [6] => *** [7] => **@*fr [8] => 11-03-2014 [9] => En cours de livraison [10] => 20.00 [11] => 24.00 [12] => 6.35 [13] => 7.62 [14] => Colissimo France sans signature [15] => 26.35 [16] => 31.62 [17] => PayPal [18] => 2 [19] => 12-03-2014 [20] => € Euro [21] => [22] => [23] => [24] => Payment accepted. [25] => philippe [26] => *** [27] => [28] => 6, avenue [29] => [30] => 69000 [31] => corbas [32] => France [33] => [34] => 0615****** [35] => 5.27 [36] => [37] => [38] => ) PP=3.5527136788005E-15
PP=31.62
PPmoins=3.5527136788005E-15
Total TTC=31.62
20%=5.27 10%= 5.5%= Livraison HT=6.35
ssTotal HT=20.00


411CLIENTCB;ELISABETE DE LIMA VAZ - 60;90.00;0.00
445668;ELISABETE DE LIMA VAZ - 60;0.00;15.00
700;ELISABETE DE LIMA VAZ - 60;0.00;75.00

411CLIENTCB;GALLIGARI MURIEL - 61;90.00;0.00
445668;GALLIGARI MURIEL - 61;0.00;15.00
700;GALLIGARI MURIEL - 61;0.00;75.00

411CLIENTPP;VOYER DANIEL - 62;180.00;0.00
445668;VOYER DANIEL - 62;0.00;30.00
700;VOYER DANIEL - 62;0.00;150.00

411CLIENTPP;PESSAH FRANCOIS - 63;90.00;0.00
445668;PESSAH FRANCOIS - 63;0.00;15.00
700;PESSAH FRANCOIS - 63;0.00;75.00
Le soucis est au niveau du calcul de $pp ( Pertes et Profits )
c'est qu'un squelette d'une moulinette d'où les print_r et echo à tout va!

je comprends pas comment peux trouver
31.62-31.62 = 3.5527136788005E-15????

mais pas sur toutes les lignes ...

Merci par avance.

Amicalement

Stéf