pb 3.3 beta et propal.class.php

Suite au développement de mon module pour mon cms (e107) via les objets métiers je remarques 2 bugs assez gênant

- la numérotation des propositions commerciales ne se fait que sur l’ancien mode (PROVXX) et non directement la référence telle que définie de plus on ne peut la modifier dans dolibarr

- même en indiquant $com->statut= 0; le statut est toujours défini a validé ce qui m’empêche de valider manuellement les demandes et les rends accessible via mon module sur mon cms ( n’affichant pas les brouillons que je dois valider)

- par ailleurs cela ne crée pas non plus de pdf y compris le brouillon

Merci de votre aide !

il faut regarder dans la class la fonction create pour comprendre : tout est là …
la numérotation se fait en 3 temps :
d’abord à l’insert il prend la valeur (prov)
ensuite un update après avoir récupéré l’id de la clé pour faire (provxx)
enfin la création de la clé à la validation de la propal en prenant la bonne ref

le statut n’est pas définie dans la requête d’ajout mais par défaut, n’as-tu pas changer cette valeur dans la table ou ne lances-tu pas le générateur de ref qui doit faire passer le code à 1…

enfin pour créer le pdf il faut lancer
propale_pdf_create($db, $object, $object->modelpdf, $outputlangs, GETPOST(‹ hidedetails ›), GETPOST(‹ hidedesc ›), GETPOST(‹ hideref ›), $hookmanager);
mais attention, il faut avoir défini à la création de l’enreg le $com->modelpdf sinon cela ne marchera pas…

Mon code est le suivant pour le moment

// Create order object
$com = new Propal($db);

$com->socid = $dolibarr;
$com->ref_client = ‹ le ‹ .$jour. ›/ ›.$mois.’/’.$annee.’ à '.$lieu;
$com->datec = mktime();
$com->date = mktime();
$com->datep = mktime();
$com->statut= 0;
$com->cond_reglement_id = 6;
$com->mode_reglement_id = 0;
$com->demand_reason_id = 1;
$com->modelpdf = ‹ arpege ›;

// Create order
$idobject=$com->create($user);
if ($idobject > 0)
{
// Change status to validated
$result=$com->valid($user);
if ($result > 0) $text .= « OK Object created with id « .$idobject. »\n »;
else
{
$error++;
dol_print_error($db,$com->error);
}
}
else
{
$error++;
dol_print_error($db,$com->error);
}

// -------------------- END OF YOUR CODE

if (! $error)
{
$db->commit();
$text .= « — end ok »."\n";
}
else
{
$text .= « — end error code= ».$error."\n";
$db->rollback();
}

$db->close();

sinon en essayant de créer une proposition classiquement et normalement dans dolibarr avec la 3.3 beta il n’y a pas plus de ref (PROVxx) elles ont dès le brouillon la référence définitive (en tout cas c’est comme ça que ça se passe sur mon dolibarr et je n’ai rien fait de spécial pour que cela soit comme ça)

pas besoin de la ligne suivante aussi
$com->statut= 0;

met simplement en commentaire la ligne suivante pour rester en brouillon…
$result=$com->valid($user);

normalement la référence ne devrait pas non plus être enregistré…

ça a résolu mon problème de brouillon mais pas celui de la référence qui reste sous forme (provxx) même après validation

cette partie ne serait pas lier à la 3.3.0 beta qui n’utilisent plus les (provxx) et directement la référence alors que le propal.class.php les mentionnent toujours ligne 699 et 723 ?

après de nouveau test ce matin ce pb de comportement n’existe que sur les propositions commerciales

les commandes ou factures utilisent toujours le système (provxx) qui est mis à jour en référence définitive lors de la validation mais pour une raison que j’ignore bug? chgt de procédure en cours ? les propositions commerciales en 3.3.0 beta attribue directement la référence définitive ce qui provoque un problème avec propal.class.php car à lors de la validation dans dolibarr la référence n’est pas modifiée dans mon cas reste (provxx)

petit up! le pb existe toujours sur la 3.3 beta 2 c’est à dire:

en utilisant la fonction « objets métier » pour les propal ( et je ne dois pas être le seul), il ,'il y a aucun problème de création si je fais le choix d’une propal directement validée lors de la soumission par mon interface (référence ok selon la norme que j’ai choisi) si par contre la propal soumise est à l’état de brouillon ( ce que je souhaite afin de réaliser une validation et vérification manuelle avant envoi ou récupération, la propal se voit attribuer une référence de type (PROVXX) ce qui est normale je pense mais quand je la valide celle ci reste sous la forme (PROVXX) et non sous sa référence définitive… ça pose du coup un pb pour le pdf qui reste aussi sous la forme provxx et est non validé…

aucun soucis en passant par dolibarr directement mais on a directement une référence sans passer par l’étape (PROVXX) pour la référence…

merci pour l’aide ou de m’indiquer ou soumettre ce petit bug certes mais assez gênant pour ceux qui utilise la fonction

ps: j’ai besoin de ces focntions car je développe des plugins pour un cms e107 (plus simple à utiliser à mon sens que Joomla) qui permettent de mettre en relation dolibarr et ce cms ce qui crée un couple cms/erp/crm très efficace et facile d’accès pour mes utilisateurs et clients. ces modules seront mises à dispo du public dans l’année a priori :wink: