L'objet société et l'object facture brouillon sont passés a la fonction getNumRef du module de numérotation.
Cela permet d'avoir des modules qui numérotent en fonction des carac de la facture et du client.
This commit is contained in:
parent
2960758550
commit
0def64a811
@ -1140,7 +1140,6 @@ else
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Confirmation de la suppression de la facture
|
* Confirmation de la suppression de la facture
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
if ($_GET['action'] == 'delete')
|
if ($_GET['action'] == 'delete')
|
||||||
{
|
{
|
||||||
@ -1153,7 +1152,7 @@ else
|
|||||||
*/
|
*/
|
||||||
if ($_GET['action'] == 'valid')
|
if ($_GET['action'] == 'valid')
|
||||||
{
|
{
|
||||||
$numfa = facture_get_num($soc);
|
$numfa = $fac->getNextNumRef($soc);
|
||||||
$html->form_confirm($_SERVER["PHP_SELF"].'?facid='.$fac->id,$langs->trans('ValidateBill'),$langs->trans('ConfirmValidateBill',$numfa),'confirm_valid');
|
$html->form_confirm($_SERVER["PHP_SELF"].'?facid='.$fac->id,$langs->trans('ValidateBill'),$langs->trans('ConfirmValidateBill',$numfa),'confirm_valid');
|
||||||
print '<br />';
|
print '<br />';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -293,7 +293,7 @@ class FactureRec
|
|||||||
{
|
{
|
||||||
$action_notify = 2; // ne pas modifier cette valeur
|
$action_notify = 2; // ne pas modifier cette valeur
|
||||||
|
|
||||||
$numfa = facture_get_num($soc); // définit dans includes/modules/facture
|
$numfa = $this->getNextNumRef($soc);
|
||||||
|
|
||||||
$sql = "UPDATE ".MAIN_DB_PREFIX."facture set facnumber='$numfa', fk_statut = 1, fk_user_valid = $user->id WHERE rowid = $rowid ;";
|
$sql = "UPDATE ".MAIN_DB_PREFIX."facture set facnumber='$numfa', fk_statut = 1, fk_user_valid = $user->id WHERE rowid = $rowid ;";
|
||||||
$result = $this->db->query( $sql);
|
$result = $this->db->query( $sql);
|
||||||
@ -342,6 +342,49 @@ class FactureRec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Renvoie la référence de facture suivante non utilisée en fonction du module
|
||||||
|
* de numérotation actif défini dans FACTURE_ADDON
|
||||||
|
* \param soc objet societe
|
||||||
|
* \return string reference libre pour la facture
|
||||||
|
*/
|
||||||
|
function getNextNumRef($soc)
|
||||||
|
{
|
||||||
|
global $db, $langs;
|
||||||
|
$langs->load("bills");
|
||||||
|
|
||||||
|
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/facture/";
|
||||||
|
|
||||||
|
if (defined("FACTURE_ADDON") && FACTURE_ADDON)
|
||||||
|
{
|
||||||
|
$file = FACTURE_ADDON."/".FACTURE_ADDON.".modules.php";
|
||||||
|
|
||||||
|
// Chargement de la classe de numérotation
|
||||||
|
$classname = "mod_facture_".FACTURE_ADDON;
|
||||||
|
require_once($dir.$file);
|
||||||
|
|
||||||
|
$obj = new $classname();
|
||||||
|
|
||||||
|
$numref = "";
|
||||||
|
$numref = $obj->getNumRef($soc,$this);
|
||||||
|
|
||||||
|
if ( $numref != "")
|
||||||
|
{
|
||||||
|
return $numref;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_print_error($db,"modules_facture::getNextNumRef ".$obj->error);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $langs->trans("Error")." ".$langs->trans("Error_FACTURE_ADDON_NotDefined");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ajoute un produit dans la facture
|
* Ajoute un produit dans la facture
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -56,7 +56,6 @@ class Facture
|
|||||||
var $paye;
|
var $paye;
|
||||||
var $propalid;
|
var $propalid;
|
||||||
var $projetid;
|
var $projetid;
|
||||||
var $prefixe_facture;
|
|
||||||
var $cond_reglement_id;
|
var $cond_reglement_id;
|
||||||
var $cond_reglement_code;
|
var $cond_reglement_code;
|
||||||
var $mode_reglement_id;
|
var $mode_reglement_id;
|
||||||
@ -82,7 +81,6 @@ class Facture
|
|||||||
$this->total = 0;
|
$this->total = 0;
|
||||||
$this->propalid = 0;
|
$this->propalid = 0;
|
||||||
$this->projetid = 0;
|
$this->projetid = 0;
|
||||||
$this->prefixe_facture = ''; // utilisé dans le module de numérotation saturne
|
|
||||||
$this->remise_exceptionnelle = 0;
|
$this->remise_exceptionnelle = 0;
|
||||||
|
|
||||||
$this->products = array(); // Tableau de lignes de factures
|
$this->products = array(); // Tableau de lignes de factures
|
||||||
@ -806,7 +804,7 @@ class Facture
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$numfa = facture_get_num($soc, $this->prefixe_facture); // définit dans includes/modules/facture
|
$numfa = $this->getNextNumRef($soc);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
@ -1346,6 +1344,49 @@ class Facture
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Renvoie la référence de facture suivante non utilisée en fonction du module
|
||||||
|
* de numérotation actif défini dans FACTURE_ADDON
|
||||||
|
* \param soc objet societe
|
||||||
|
* \return string reference libre pour la facture
|
||||||
|
*/
|
||||||
|
function getNextNumRef($soc)
|
||||||
|
{
|
||||||
|
global $db, $langs;
|
||||||
|
$langs->load("bills");
|
||||||
|
|
||||||
|
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/facture/";
|
||||||
|
|
||||||
|
if (defined("FACTURE_ADDON") && FACTURE_ADDON)
|
||||||
|
{
|
||||||
|
$file = FACTURE_ADDON."/".FACTURE_ADDON.".modules.php";
|
||||||
|
|
||||||
|
// Chargement de la classe de numérotation
|
||||||
|
$classname = "mod_facture_".FACTURE_ADDON;
|
||||||
|
require_once($dir.$file);
|
||||||
|
|
||||||
|
$obj = new $classname();
|
||||||
|
|
||||||
|
$numref = "";
|
||||||
|
$numref = $obj->getNumRef($soc,$this);
|
||||||
|
|
||||||
|
if ( $numref != "")
|
||||||
|
{
|
||||||
|
return $numref;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_print_error($db,"modules_facture::getNextNumRef ".$obj->error);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
print $langs->trans("Error")." ".$langs->trans("Error_FACTURE_ADDON_NotDefined");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Mets à jour les commentaires
|
* \brief Mets à jour les commentaires
|
||||||
* \param note note
|
* \param note note
|
||||||
|
|||||||
@ -55,6 +55,7 @@ class ModelePDFFactures extends FPDF
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Renvoi la liste des modèles actifs
|
* \brief Renvoi la liste des modèles actifs
|
||||||
|
* \param db Handler de base
|
||||||
*/
|
*/
|
||||||
function liste_modeles($db)
|
function liste_modeles($db)
|
||||||
{
|
{
|
||||||
@ -83,7 +84,8 @@ class ModelePDFFactures extends FPDF
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** \class ModeleNumRefFactures
|
/**
|
||||||
|
\class ModeleNumRefFactures
|
||||||
\brief Classe mère des modèles de numérotation des références de facture
|
\brief Classe mère des modèles de numérotation des références de facture
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -183,9 +185,9 @@ function facture_pdf_create($db, $facid, $message="")
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Créé un meta fichier à côté de la facture sur le disque pour faciliter les recherches en texte plein. Pourquoi ? tout simplement parcequ'en fin d'exercice quand je suis avec mon comptable je n'ai pas de connexion internet "rapide" pour retrouver en 2 secondes une facture non payée ou compliquée à gérer ... avec un rgrep c'est vite fait bien fait [eric seigne]
|
\brief Créé un meta fichier à côté de la facture sur le disque pour faciliter les recherches en texte plein. Pourquoi ? tout simplement parcequ'en fin d'exercice quand je suis avec mon comptable je n'ai pas de connexion internet "rapide" pour retrouver en 2 secondes une facture non payée ou compliquée à gérer ... avec un rgrep c'est vite fait bien fait [eric seigne]
|
||||||
\param db objet base de donnée
|
\param db Objet base de donnée
|
||||||
\param facid id de la facture à créer
|
\param facid Id de la facture à créer
|
||||||
\param message message
|
\param message Message
|
||||||
*/
|
*/
|
||||||
function facture_meta_create($db, $facid, $message="")
|
function facture_meta_create($db, $facid, $message="")
|
||||||
{
|
{
|
||||||
@ -238,51 +240,6 @@ ITEM_" . $i . "_DESCRIPTION=\"" . str_replace("\r\n","",nl2br($fac->lignes[$i]->
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Renvoie la référence de facture suivante non utilisée en fonction du module
|
|
||||||
de numérotation actif défini dans FACTURE_ADDON
|
|
||||||
\param soc objet societe
|
|
||||||
\param prefixe_additionnel prefixe additionnel
|
|
||||||
\return string reference libre pour la facture
|
|
||||||
*/
|
|
||||||
function facture_get_num($soc, $prefixe_additionnel='')
|
|
||||||
{
|
|
||||||
global $db, $langs;
|
|
||||||
$langs->load("bills");
|
|
||||||
|
|
||||||
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/facture/";
|
|
||||||
|
|
||||||
if (defined("FACTURE_ADDON") && FACTURE_ADDON)
|
|
||||||
{
|
|
||||||
|
|
||||||
$file = FACTURE_ADDON."/".FACTURE_ADDON.".modules.php";
|
|
||||||
|
|
||||||
// Chargement de la classe de numérotation
|
|
||||||
$classname = "mod_facture_".FACTURE_ADDON;
|
|
||||||
require_once($dir.$file);
|
|
||||||
|
|
||||||
$obj = new $classname();
|
|
||||||
|
|
||||||
$numref = "";
|
|
||||||
$numref = $obj->getNumRef($soc, $prefixe_additionnel);
|
|
||||||
|
|
||||||
if ( $numref != "")
|
|
||||||
{
|
|
||||||
return $numref;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dolibarr_print_error($db,"modules_facture::facture_get_num ".$obj->error);
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
print $langs->trans("Error")." ".$langs->trans("Error_FACTURE_ADDON_NotDefined");
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Supprime l'image de prévisualitation, pour le cas de régénération de facture
|
\brief Supprime l'image de prévisualitation, pour le cas de régénération de facture
|
||||||
\param db objet base de donnée
|
\param db objet base de donnée
|
||||||
|
|||||||
@ -49,21 +49,22 @@ class mod_facture_saturne extends ModeleNumRefFactures
|
|||||||
*/
|
*/
|
||||||
function getExample()
|
function getExample()
|
||||||
{
|
{
|
||||||
return "PREFIX084";
|
return "FA123084";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*! \brief Renvoie la référence de facture suivante non utilisée
|
/*! \brief Renvoie la référence de facture suivante non utilisée
|
||||||
* \param objsoc Objet société
|
* \param objsoc Objet société
|
||||||
* \param prefixe_additionnel Prefix additionnel
|
* \param objfac Objet facture
|
||||||
* \return string Texte descripif
|
* \return string Texte descripif
|
||||||
*/
|
*/
|
||||||
function getNumRef($objsoc=0, $prefixe_additionnel)
|
function getNumRef($objsoc=0,$objfac)
|
||||||
{
|
{
|
||||||
|
$prefix='FA';
|
||||||
|
|
||||||
$y = strftime("%y",time());
|
$y = strftime("%y",time());
|
||||||
$m = strftime("%m",time());
|
$m = strftime("%m",time());
|
||||||
|
|
||||||
return $prefixe_additionnel . $m . substr($y, -1);
|
return $prefix.$objfac->id . $m . substr($y, -1);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user