Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi
  • Page :
  • 1
  • 2

SUJET : Récupérations variables dolibarr

Récupérations variables dolibarr il y a 1 an 3 mois #98270

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
Bonjour à tous,

Je suis novice en développement et dans le cadre de mon stage de 1ère année de BTS, j'essaie de créer un module pour automatiser la création d'étiquettes de transport Colissimo.
Je suis bien partie du côté du web service Laposte mais je bloque sur la partie Dolibarr car je n'en comprends pas trop le code php.

J'ai suivi la doc pour coder un module qui ajoute un bouton dans la page des commande dont le lien ouvre une autre page php de mon module (celle avec le code de l'API).

Donc avec des variables écrite "en dur" ça fonctionne. Malheureusement, je ne sais pas comment récupérer les informations de la commande en cours de traitement. J'ai réussi à récupérer les infos du destinataire avec une requête sql sur la dernière commande, mais cela n'est pas une bonne option pour deux raisons :

- Cela ne me permet pas de récupérer le poids du ou des produit(s) de la commande en cours (et je ne sais pas comment faire) ;
- Si on crée la commande et que l'on ne fait l'étiquette que plus tard, il peut y avoir eu d'autres commandes et du coup cela ne fonctionne plus.

Pouvez-vous m'aider à régler ce problème ? Précisément, j'aurais besoin de :

- Cibler la commande en cours de traitement,
- Récupérer, en SQL ou PHP les informations de livraison (nom, prénom, adresse...)
- Cibler les produits contenu dans la commande afin d'en extraire le poids du colis.

Merci d'avance pour votre aide précieuse !
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98271

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1306
  • Remerciements reçus 192
  • Karma: 26
Bonjour :)
Dans utilise la classe commande
$object = new Commande($db);
$object->fetch($id);
et du coup $object contient les infos désirés.
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98272

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
Bonjour,

Merci pour ta réactivité :)

Et après pour récupérer les infos que je veux, je n'ai plus qu'à faire $object->laBonneVariable ? (Je ne suis pas trop caler en php objet, d'où ma difficulté avec le code Dolibarr !)

Et le poids des produits fera-t'il partie de mon objet ? Car dans la bdd, le poids n'est pas compris dans la table commande.

[EDIT] J'ai trouvé le fichier commande.class mais je ne suis pas sûr de la démarche pour récupérer mes données, peux-tu me détailler la procédure pour récupérer par exemple le nom de famille d'un contact si il y a un contact ajouté ? Je suppose qu'il faut aussi récupérer le contact courant en créant un objet mais comme je t'ai dit, je n'ai jamais appris le php objet, j'apprends sur le tas donc c'est un peu compliqué. Je pense qu'avec un exemple pour une des variables, je pourrais m'en sortir pour toutes les autres.
Merci d'avance !!
Dernière édition: il y a 1 an 3 mois par RomeNag. Raison: nouvelle question
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: dolibarr95

Récupérations variables dolibarr il y a 1 an 3 mois #98275

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1306
  • Remerciements reçus 192
  • Karma: 26
Fait un print_r($object); pour voir tout ce que tu peux sortir
exemple :
$object->ref
$object->total_ttc

Tu trouvera ca dans :
commande\class\commande.class.php
function fetch($id, $ref='', $ref_ext='', $ref_int='')

Inspire toi des pages card.php de commande expédition etc
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98276

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
Merci je vais essayer.

Je reviens vers le forum si j'ai un soucis.
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98280

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
J'ai un soucis ^^

J'ai suivi tes conseils et j'ai fait :

function debug($variable){
echo '<pre>'.print_r($variable, true).'</pre>';
}
$object = new Commande($db);
$object->fetch($id);

debug($object);

Mais lorsque je suis sur une commande et que je clique sur le bouton qui active ce code, j'ai une commande vierge en debug (aucune info sur la commande en cours), aperçu :


Sanstitre2.png


Comment ça se fait ? J'ai oublié quelque chose ? Je dois définir $id ?
Dernière édition: il y a 1 an 3 mois par RomeNag.
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98282

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
Problème résolu, effectivement je devais définir id, je ne voyais pas comment faire mais c'était tout bête ^^ :

$object->fetch($_GET["id"]);
Dernière édition: il y a 1 an 3 mois par RomeNag.
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98285

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1306
  • Remerciements reçus 192
  • Karma: 26
n'oublie pas de tester le get avant ex:
$id = GETPOST('id','int');

puis si $id

$object->fetch($id);
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98309

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
Ah oui ! Merci de m'y avoir fait pensé :)

J'ai un nouveau souci...

Je n'arrive pas à récupérer l'id de mes produits dans l'objet commande... Les valeurs de premier niveau ça va mais là a priori pour les produits c'est "objet->tableau->nouvelObjet->valeur" et j'ai eu beau essayer pas mal de trucs ce matin, je n'arrive pas à la récupérer.

Tu peux m'aider encore un peu ? (Ou quelqu'un d'autre, si il y a du monde dans le coin ;) ) Après ça je devrais pouvoir me débrouiller pour finir mon module (j'espère :) ) Je vous mets un extrait du debug() :

Sanstitre1.png



En gros il y a un tableau d'objet et dans le premier je veux récupérer 4689 et dans le 2e 4690.

Merci d'avance !!
Dernière édition: il y a 1 an 3 mois par RomeNag.
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98311

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1306
  • Remerciements reçus 192
  • Karma: 26
:)
c'est :
$object->lines[0]->fk_product
$object->lines[1]->fk_product
$object->lines[etc]->fk_product

fk_product = id du produit (foreign key product)

L'id que tu cite est je pense l'id de la ligne llx_commandedet
Dernière édition: il y a 1 an 3 mois par dolibarr95.
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: RomeNag

Récupérations variables dolibarr il y a 1 an 3 mois #98313

  • yves57
  • Portrait de yves57
  • Hors ligne
  • Gold Boarder
  • Messages : 713
  • Remerciements reçus 144
  • Karma: 11
Comme, ça, sans avoir testé, je dirais :
foreach($object->lines as $line) {
echo $line->fk_product;
}

Je pense que tu dois pouvoir aussi y accéder par un indice :
$monproduit = $object->lines[0]->fk_product;
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: RomeNag

Récupérations variables dolibarr il y a 1 an 3 mois #98314

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
Cool Merci !

C'est exactement ce que je cherchais !

J'espère m'en sortir maintenant ^^
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98315

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1306
  • Remerciements reçus 192
  • Karma: 26
B)
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98328

  • ZenAdm
  • Portrait de ZenAdm
  • Hors ligne
  • Senior Boarder
  • Messages : 46
  • Remerciements reçus 7
  • Karma: 1
Bonjour,

Avez-vous vu sur le dolistore le module « Chronopost » ?
Il est disponible pour 48€ et il est sous licence AGPL.
Il pourrait vous apporter de bonnes informations.

Cordialement
Marc
L'administrateur a désactivé l'accès en écriture pour le public.

Récupérations variables dolibarr il y a 1 an 3 mois #98331

  • RomeNag
  • Portrait de RomeNag
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 1
  • Karma: 0
Oui j'ai vu, j'ai aussi trouvé un module un peu plus cher qui comprend l'automatisation des étiquettes colissimo que j'essaie de mettre en place.
Mais je suis en stage de développement, et le but est donc que je programme moi-même, en évitant de faire dépenser de l'argent à mon patron.
Merci tout de même pour le conseil mais j'avance bien, je devrais m'en sortir :)
L'administrateur a désactivé l'accès en écriture pour le public.
  • Page :
  • 1
  • 2