Bonjour,
J’utilise Dolibarr (actuellement, version 18.0.2) pour mon activité. Je suis assez satisfait de l’outil, puissant, mais j’ai tout de même 2 problèmes que je décris en détail ci-dessous.
J’ai réussi à contourner ces problèmes en allant faire des modifications de code directement dans les fichiers PHP de Dolibarr. C’est pas très joli…
Du coup, ma question est la suivante : Est-ce que Dolibarr prévoir des mécanisme d’overload ou override de fonctions qui permettrait de faire ce type de modif sans toucher aux fichiers natifs de Dolibarr (afin d’éviter que tout soit cassé à la prochaine mise à jour).
Dans mon cas, je ne crois pas que les hook ou les triggers répondent, mais je ne suis pas vraiment expert Dolibarr, d’où cet appel à vos lumières.
Ci-dessous mes 2 problèmes et les modifications effectuées.
Je vous remercie d’avance pour votre aide.
Problème 1 :
J’ai mon activité en Polynésie Française, mais le compte courant de mon entreprise est en métropole. La devise de mon activité est donc le XPF, et celle de mon compte, l’EUR.
J’utilise le module multi-devise.
Le problème est que, lorsque je saisis un règlement sur une facture en XPF, je le saisis en XPF (jusque là, tout va bien). Mais l’écriture inscrite sur le compte bancaire est fausse : le montant est en XPF, et non en EUR.
J’ai corrigé ce problème avec un petit bout de code dans htdocs/compta/bank/class/account.class.php, fonction addLine, juste avant $accline = new AccountLine($this->db);
// If $amount and $amount_main_currency are the same, it means the amount is in the main currency
// In this case :
// check if the account currency is the same as the main currency.
// YES : Do nothing
// NO : Convert amount from $amount_main_currency
if (isModEnabled("multicurrency")) {
if ($amount === $amount_main_currency) {
if ($this->multicurrency_code != $conf->currency) {
list($currencyCode, $currencyRate) = MultiCurrency::getIdAndTxFromCode($this->db, $this->currency_code, $date);
$amount = $amount_main_currency * $currencyRate;
}
}
}
Problème 2 :
Je ne veux pas que les propal ou factures PDF soient générées automatiquement. Je veux les générer à la demande, en cliquant sur le bouton « Générer ».
J’ai donc activé le paramètre MAIN_DISABLE_PDF_AUTOUPDATE.
Mon soucis, c’est que avec ce paramètre activé, quand je clique sur « Générer », le PDF s’ouvre automatiquement, ce que je ne veux pas.
Je voudrais le même comportement que celui sans ce paramètre, à savoir que si je cliques sur « Générer », le document est généré, mais ne s’ouvre que si je le demande.
En plus, il y a conflit entre le paramètre MAIN_DISABLE_PDF_AUTOUPDATE et MAIN_ODT_AS_PDF_DEL_SOURCE : Si le premier est activé, le second ne fonctionne plus.
Là encore, il m’a suffit d’aller dans le fichier htdocs/includes/odtphp/odf.php (j’utilises un modèle odt automatiquement converti en PDF), et de commenter le bloc de ligne suivant :
if (!empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) {
$name=preg_replace('/\.od(x|t)/i', '', $name);
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="'.$name.'.pdf"');
readfile($name.".pdf");
}