|
|
|
Re:Émettre réglement 2008/08/08 14:40
|
Karma: 40
|
|
Bon on a un chp quelque part qui n'as pas subit d'arrondi comme il faut.
Peux tu regarder en base dans les chps de facture, ligne de facture mais aussi llx_societe_remise_except si tu vois le chp qui ne serait pas bien arrondi ?
|
|
|
|
Logged
|
|
|
The administrator has disabled public write access.
|
|
|
|
Re:Émettre réglement 2008/08/08 15:16
|
Karma: 1
|
non rien trouvé
| Code: | 2008-08-08 15:00:47 INFO 192.168.1.181 ??? Session name=DOLSESSID_dolibarr Session id()=khnv6psoml0nsdk8h51ioahcq7, _SESSION['dol_login
2008-08-08 15:00:47 DEBUG 192.168.1.181 ??? User::Fetch sql=SELECT u.rowid, u.name, u.firstname, u.email, u.office_phone, u.office_fax,
2008-08-08 15:00:47 INFO 192.168.1.181 sladame This is an already logged session. _SESSION['dol_login']=sladame
2008-08-08 15:00:47 INFO 192.168.1.181 sladame Access to /compta/facture.php
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame User::getRights sql=SELECT r.module, r.perms, r.subperms FROM llx_user_rights as ur, llx_rig
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame User::getRights sql=SELECT r.module, r.perms, r.subperms FROM llx_usergroup_rights as gr, ll
2008-08-08 15:00:47 INFO 192.168.1.181 sladame Menubase::menuTopCharger sql=SELECT m.rowid, m.mainmenu, m.titre, m.url, m.langs, m.perms, m
2008-08-08 15:00:47 INFO 192.168.1.181 sladame Menubase::menuLeftCharger sql=SELECT m.rowid, m.fk_menu, m.url, m.titre, m.langs, m.perms, m
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame Facture::Fetch rowid=33, societe_id=0
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame Facture::fetch_lines sql=SELECT l.rowid, l.fk_product, l.description, l.price, l.qty, l.tva_
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame Discount::getAvailableDiscounts sql=SELECT SUM(rc.amount_ttc) as amount FROM llx_societe_rem
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame Discount::getAvailableDiscounts sql=SELECT SUM(rc.amount_ttc) as amount FROM llx_societe_rem
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame Facture::getSommePaiement sql=SELECT sum(amount) as amount FROM llx_paiement_facture WHERE f
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame Discount::getSommeCreditNote sql=SELECT sum(rc.amount_ttc) as amount FROM llx_societe_remise
2008-08-08 15:00:47 DEBUG 192.168.1.181 sladame User::Fetch sql=SELECT u.rowid, u.name, u.firstname, u.email, u.office_phone, u.office_fax,
2008-08-08 15:00:48 INFO 192.168.1.181 sladame DiscountAbsolute::fetch sql=SELECT sr.rowid, sr.fk_soc, sr.fk_user, sr.amount_ht, sr.amount_
2008-08-08 15:00:48 DEBUG 192.168.1.181 sladame Facture::Fetch rowid=28, societe_id=0
2008-08-08 15:00:48 DEBUG 192.168.1.181 sladame Facture::fetch_lines sql=SELECT l.rowid, l.fk_product, l.description, l.price, l.qty, l.tva_
2008-08-08 15:00:48 DEBUG 192.168.1.181 sladame Facture::Fetch rowid=24, societe_id=0
2008-08-08 15:00:48 DEBUG 192.168.1.181 sladame Facture::fetch_lines sql=SELECT l.rowid, l.fk_product, l.description, l.price, l.qty, l.tva_
2008-08-08 15:00:48 DEBUG 192.168.1.181 sladame Facture::Fetch rowid=34, societe_id=0
2008-08-08 15:00:48 DEBUG 192.168.1.181 sladame Facture::fetch_lines sql=SELECT l.rowid, l.fk_product, l.description, l.price, l.qty, l.tva_
2008-08-08 15:00:48 DEBUG 192.168.1.181 sladame Form::load_cache_conditions_paiements sql=SELECT rowid, code, libelle FROM llx_cond_reglemen
2008-08-08 15:00:48 INFO 192.168.1.181 sladame files.lib.php::dol_dir_list /var/www/html/dolibarr/documents/facture/FA0808-0023
2008-08-08 15:00:48 INFO 192.168.1.181 sladame facture.php: sql=SELECT unix_timestamp(p.datep) as dp, p.total_ht, p.ref, p.ref_client, p.ro
2008-08-08 15:00:48 INFO 192.168.1.181 sladame FormActions::showactions sql=SELECT a.id, unix_timestamp(a.datep) as da, a.label, a.note, u.
|
j'ai exécuter toute les requetes tous est nickel
j'ai aussi regarder dans llx_paiement et llx_facture rien non plus 
|
|
|
|
Logged
|
|
|
|
|
|
The administrator has disabled public write access.
|
|
|
|
Re:Émettre réglement 2008/08/08 15:20
|
Karma: 0
|
|
Attention en compta il y a la règle "des contres parties".
Donc la solution:
1/Création d'une facture ex: 100 Euros.
2/ (Ha!! Erreur dans la facture ou remise que le client avait demandé)
Attention on n'annule pas une facture on la "supprime" avec une contre partie de l'AVOIR (Partiel ou total)----> Mettre le N° de facture dans la facture (sa aide pour la compta!!)
Ex : 50 Euros
3/ l'avoir servira de moyen de paiement pour la facture
Donc : Fact 100 = la contre partie (Avoir 50 plus Réglement du client de 50 Euros)
Je vous donnerais par un fichier joint l'astuce par des copies écran.
Thierry
Formateur Eco-Gestion et Consultant déploiement ERP (Ha!!! CEGID !!$$$$$$$)
Bravo en 2 jours prise en main facile et un outil que je donnerais aux éléves Gestion ccial pour comprendre les bases d'un ERP GRATUIT
|
|
|
|
Logged
|
|
|
The administrator has disabled public write access.
|
|
|
|
Re:Émettre réglement 2008/08/08 15:41
|
Karma: 1
|
bon ... pour le reste à payer (2,2737367544323E-13 Euros) il y a un gros problème.
je suis allé directement affiché les variables dans le code de la page compta/facture.php et la pas d'erreur :
total_ttc:4305.6
totalpaye:3480.36
totalavoir:825.24000000
donc la je me dit truck de ouf les valeur sont bonne et le calcule foire.
donc je lance xcalc vite fais et je tape 4305.6-3480.36-825.24000000 et la normalement çà doit donner 0 mais non  ca me donne 2,2737367544323E-13 ??????? la je comprend plus ...
en tout cas on sais ou est l'erreur au moins.
|
|
|
|
Logged
|
|
|
|
|
|
The administrator has disabled public write access.
|
|
|
|
Re:Émettre réglement 2008/08/08 16:11
|
Karma: 0
|
|
Erreur l'édition de l'avoir se fait en négatif
Impossible en compta le signe négatif n'existe pas
Toujours en compta la règle de la contre partie.
Voulez vous un coup de main
|
|
|
|
Logged
|
|
|
The administrator has disabled public write access.
|
|
|
|
Re:Émettre réglement 2008/08/08 20:34
|
Karma: 40
|
|
Le super truc de ouf résolu ? Il y en aura 2 !
Il y a bien une erreur dans le montant de l'avoir. Il vaut 825.24000000 alors qu'il devrait valoir 825.24. Les 0 a la fin sont trompeurs car ils signifient qu'il y a encore des chiffres beaucoup plus loin mais non affichés car la fonction affichage tronque. Seul le PHP affiche la valeur reelle en base mais la base a bien une valeur incorrecte. En voici la demo:
J'ai réussi à reproduire ton pb et à obtenir des valeurs corrompues en base qui pourtant s'affiche comme il faut avec un select mais que le PHP affiche différement.
Pour le prouver, tu peux insérer toi meme une valeur qui fait déconner par cette requete (issu des logs lorsque j'ai reproduit ton pb).
INSERT INTO llx_societe_remise_except (datec, fk_soc, fk_user, description, amount_ht, amount_tva, amount_ttc, tva_tx, fk_facture_source)
VALUES (now(),1,1,'x', '345','67.62','412.62','19.6', '1')
en faisant le select derriere, j'obtient sur le champ amount_ttc
412,62
et pourtant le meme select fait en php affiche a l'écran
412.61999512.
Alors pourquoi, car ma requete demande bien d'inserer 412.62 !
Peut-etre car de type chaine .
Si on fait la meme requete sans les quotes sur les montants
INSERT INTO llx_societe_remise_except (datec, fk_soc, fk_user, description, amount_ht, amount_tva, amount_ttc, tva_tx, fk_facture_source)
VALUES (now(),1,1,'x', 345,67.62, 412.62, 19.6, '1')
La tout marche ! ... presque helas.
Car cela semble etre un coup de bol.
en effet, si dans mon code PHP, je fais
print 239.2 - 229.3 - 9.9;
est bien, je n'obtiens pas zéro, donc il y a encore un pb quelquepart !
Et la la doc PHP semble dire que pour toute opération sur des nombres non entiers n'est pas fiable, sauf si on utilise les fonctions bc* et non +-*/
Autre solution et c'est ainsi que j'ai corrigé dans dolibarr, utlisez l'implementation price2num de dolibarr qui est un équivalent des fonctions php bc* sur le resultat du calcul. La fonction price2num accepte en parametre le niveau de precision max accepté qui dépend de la config utilisateur (en 2eme parametre, on passe 'MT' pour avoir arrondi a la precision max pour les prix totaux).
|
|
|
|
Logged
|
|
|
Last Edit: 2008/08/13 12:28 By eldy.
|
|
|
The administrator has disabled public write access.
|
|