Bon au cas où quelqu’un en a besoin, j’ai une solution (modification du core avec du code pas joli )
Modifier le fichier core/class/commondocgenerator.class.php :
Chercher
[code]
function get_substitutionarray_object($object,$outputlangs,$array_key=‹ object ›)
{
global $conf;
$sumpayed=$sumdeposit=$sumcreditnote='';[/code]
Et ajouter juste après :
$proposalref='-';
Chercher :
$sumpayed = $object->getSommePaiement();
$sumdeposit = $object->getSumDepositsUsed();
$sumcreditnote = $object->getSumCreditNotesUsed();
Et ajouter juste après :
[code]
$sql = "SELECT s.rowid as socid, s.nom as name, s.client, t.rowid, t.ref, t.ref_client, t.total_ht FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX.« propal as t WHERE t.fk_soc = s.rowid AND t.fk_soc IN ( ».$object->thirdparty->id.’) AND t.entity IN (’.getEntity(‹ propal ›).’)’;
$resqllist = $this->db->query($sql);
if ($resqllist)
{
$num = $this->db->num_rows($resqllist);
$i = 0;
while ($i < $num)
{
$objp = $this->db->fetch_object($resqlorderlist);
$proposalref = $objp->ref; // Prendra donc la dernière liée
$i++;
}
$this->db->free($resqllist);
}[/code]
Juste en dessous, après cette ligne :
$resarray=array(
Insérer :
$array_key.'_source_proposal_ref'=>$proposalref,
Ensuite dans votre doc ODT, vous pouvez utiliser la balise {object_source_proposal_ref} qui sera remplacée par la dernière proposition commerciale liée.
Testé en 6.0.4, mais ça pourrait marcher en v5 (pas testé).
Comme c’est une modification du core, le fichier sera écrasé à chaque mise à jour de dolibarr.