diff --git a/htdocs/fourn/class/fournisseur.facture.class.php b/htdocs/fourn/class/fournisseur.facture.class.php index ffc123fe2de15c4cde84dbf1bd1d2131da17251d..cd106c3a1201cbb987f0b23b5c21660c3d6af3cd 100644 --- a/htdocs/fourn/class/fournisseur.facture.class.php +++ b/htdocs/fourn/class/fournisseur.facture.class.php @@ -1305,6 +1305,59 @@ class FactureFournisseur extends CommonInvoice $result.=$lien.($max?dol_trunc($this->ref,$max):$this->ref).$lienfin; return $result; } + + /** + * Renvoie la reference de facture suivante non utilisee en fonction du modele + * de numerotation actif defini dans INVOICE_SUPPLIER_ADDON_NUMBER + * + * @param Societe $soc objet societe + * @return string reference libre pour la facture + */ + function getNextNumRef($soc) + { + global $db, $langs, $conf; + $langs->load("orders"); + + $dir = DOL_DOCUMENT_ROOT .'/core/modules/supplier_invoice/'; + + if (! empty($conf->global->INVOICE_SUPPLIER_ADDON_NUMBER)) + { + $file = $conf->global->INVOICE_SUPPLIER_ADDON_NUMBER.'.php'; + + if (is_readable($dir.'/'.$file)) + { + // Definition du nom de modele de numerotation de commande fournisseur + $modName=$conf->global->INVOICE_SUPPLIER_ADDON_NUMBER; + require_once $dir.'/'.$file; + + // Recuperation de la nouvelle reference + $objMod = new $modName($this->db); + + $numref = ""; + $numref = $objMod->invoice_get_num($soc,$this); + + if ( $numref != "") + { + return $numref; + } + else + { + dol_print_error($db, get_class($this)."::getNextNumRef ".$obj->error); + return -1; + } + } + else + { + print $langs->trans("Error")." ".$langs->trans("Error_FailedToLoad_INVOICE_SUPPLIER_ADDON_NUMBER_File",$conf->global->INVOICE_SUPPLIER_ADDON_NUMBER); + return -2; + } + } + else + { + print $langs->trans("Error")." ".$langs->trans("Error_INVOICE_SUPPLIER_ADDON_NUMBER_NotDefined"); + return -3; + } + } /**