Bonjour,
Je galère ces derniers jours avec le module expédition, puis il s’est avéré que le problème auquel je fais face est relié avec Dolibar en global.
Je vous explique :
J’ai développé un système en PHP Laravel qui me permet de gérer plusieurs points d’une usine relié avec Dolibar. Une des fonctions sert a générer plusieurs expéditions et bien évidement leurs BL (bons de livraisons). La création dans la base de données se fait sans soucis depuis Laravel (Insertion dans llx_expedition, expeditiondet, mouvement_stock …) puis le problème est que j’essaye de générer aussi les BL en pdf avec le modèle infraS, la langue FR et avec un ID que je passe en paramètres. Le problème est que quand je lance une commande CURL pour faire un POST a l’URL reliée au générateur de BL, je recois en retour la page de connexion de Dolibar alors que je suis connecté !
Le problème aussi est que comme je l’ai attaché, et que quand j’essaye le même CURL mais avec le client RESTClient de Firefox, tout fonctionne sans soucis !
PS : au début j’ai un problème avec CSRF et j’ai du le désactiver depuis la config.
Voici mon code CURL PHP :
$pdf = "http://localhost/projects/dlb/htdocs/expedition/card.php?id=" . $expedition->rowid;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pdf);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "action=builddoc&model=InfraS_expedition&lang_id=fr_FR");
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$headers[] = 'x-content-type-options: nosniff';
$headers[] = 'x-frame-options: SAMEORIGIN';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$res = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
return ($res);
Toute aide ou idée est la bienvenue.
Merci