Work on ODT templates

This commit is contained in:
Laurent Destailleur 2010-10-27 20:53:23 +00:00
parent 0746be70f9
commit 82dcb8616e
5 changed files with 190 additions and 154 deletions

View File

@ -364,12 +364,12 @@ print '</table>';
/* /*
* Modeles de documents * Document templates generators
*/ */
print '<br>'; print '<br>';
print_titre($langs->trans("BillsPDFModules")); print_titre($langs->trans("BillsPDFModules"));
// Defini tableau def de modele invoice // Load array def with activated templates
$def = array(); $def = array();
$sql = "SELECT nom"; $sql = "SELECT nom";
$sql.= " FROM ".MAIN_DB_PREFIX."document_model"; $sql.= " FROM ".MAIN_DB_PREFIX."document_model";
@ -407,7 +407,9 @@ clearstatcache();
$var=true; $var=true;
foreach ($conf->file->dol_document_root as $dirroot) foreach ($conf->file->dol_document_root as $dirroot)
{ {
$dir = $dirroot . "/includes/modules/facture/"; foreach (array('','/doc') as $valdir)
{
$dir = $dirroot . "/includes/modules/facture".$valdir;
if (is_dir($dir)) if (is_dir($dir))
{ {
@ -418,13 +420,19 @@ foreach ($conf->file->dol_document_root as $dirroot)
{ {
if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file)) if (preg_match('/\.modules\.php$/i',$file) && preg_match('/^(pdf_|doc_)/',$file))
{ {
$var = !$var;
$name = substr($file, 4, dol_strlen($file) -16); $name = substr($file, 4, dol_strlen($file) -16);
$classname = substr($file, 0, dol_strlen($file) -12); $classname = substr($file, 0, dol_strlen($file) -12);
require_once($dir.$file); require_once($dir.'/'.$file);
$module = new $classname($db); $module = new $classname($db);
$modulequalified=1;
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0;
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0;
if ($modulequalified)
{
$var = !$var;
print '<tr '.$bc[$var].'><td width="100">'; print '<tr '.$bc[$var].'><td width="100">';
print (empty($module->name)?$name:$module->name); print (empty($module->name)?$name:$module->name);
print "</td><td>\n"; print "</td><td>\n";
@ -470,7 +478,10 @@ foreach ($conf->file->dol_document_root as $dirroot)
// Info // Info
$htmltooltip = ''.$langs->trans("Name").': '.$module->name; $htmltooltip = ''.$langs->trans("Name").': '.$module->name;
$htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown")); $htmltooltip.='<br>'.$langs->trans("Type").': '.($module->type?$module->type:$langs->trans("Unknown"));
if ($module->type == 'pdf')
{
$htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur; $htmltooltip.='<br>'.$langs->trans("Height").'/'.$langs->trans("Width").': '.$module->page_hauteur.'/'.$module->page_largeur;
}
$htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>'; $htmltooltip.='<br><br><u>'.$langs->trans("FeaturesSupported").':</u>';
$htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1); $htmltooltip.='<br>'.$langs->trans("Logo").': '.yn($module->option_logo,1,1);
$htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1); $htmltooltip.='<br>'.$langs->trans("PaymentMode").': '.yn($module->option_modereg,1,1);
@ -484,17 +495,28 @@ foreach ($conf->file->dol_document_root as $dirroot)
print '<td align="center">'; print '<td align="center">';
print $html->textwithpicto('',$htmltooltip,1,0); print $html->textwithpicto('',$htmltooltip,1,0);
print '</td>'; print '</td>';
// Preview
print '<td align="center">'; print '<td align="center">';
if ($module->type == 'pdf')
{
print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"),'bill').'</a>'; print '<a href="'.$_SERVER["PHP_SELF"].'?action=specimen&module='.$name.'">'.img_object($langs->trans("Preview"),'bill').'</a>';
}
else
{
print img_object($langs->trans("PreviewNotAvailable"),'generic');
}
print '</td>'; print '</td>';
print "</tr>\n"; print "</tr>\n";
} }
} }
}
closedir($handle); closedir($handle);
} }
} }
} }
}
print '</table>'; print '</table>';

View File

@ -300,14 +300,13 @@ if ($handle)
print "</table>\n"; print "</table>\n";
//
/* /*
* Modeles de documents * Document templates generators
*/ */
print '<br>'; print '<br>';
print_titre($langs->trans("ModelModules")); print_titre($langs->trans("ModelModules"));
// Defini tableau def de modele invoice // Load array def with activated templates
$def = array(); $def = array();
$sql = "SELECT nom"; $sql = "SELECT nom";
$sql.= " FROM ".MAIN_DB_PREFIX."document_model"; $sql.= " FROM ".MAIN_DB_PREFIX."document_model";
@ -355,13 +354,19 @@ foreach ($conf->file->dol_document_root as $dirroot)
{ {
if (preg_match('/\.modules\.php$/i',$file)) if (preg_match('/\.modules\.php$/i',$file))
{ {
$var = !$var;
$name = substr($file, 4, dol_strlen($file) -16); $name = substr($file, 4, dol_strlen($file) -16);
$classname = substr($file, 0, dol_strlen($file) -12); $classname = substr($file, 0, dol_strlen($file) -12);
require_once($dir.'/'.$file); require_once($dir.'/'.$file);
$module = new $classname($db); $module = new $classname($db);
$modulequalified=1;
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) $modulequalified=0;
if ($module->version == 'experimental' && $conf->global->MAIN_FEATURES_LEVEL < 1) $modulequalified=0;
if ($modulequalified)
{
$var = !$var;
print '<tr '.$bc[$var].'><td width="100">'; print '<tr '.$bc[$var].'><td width="100">';
print $module->name; print $module->name;
print "</td><td>\n"; print "</td><td>\n";
@ -415,6 +420,8 @@ foreach ($conf->file->dol_document_root as $dirroot)
print '<td align="center">'; print '<td align="center">';
print $form->textwithpicto('',$htmltooltip,1,0); print $form->textwithpicto('',$htmltooltip,1,0);
print '</td>'; print '</td>';
// Preview
print '<td align="center">'; print '<td align="center">';
if ($modele->type == 'pdf') if ($modele->type == 'pdf')
{ {
@ -429,6 +436,7 @@ foreach ($conf->file->dol_document_root as $dirroot)
print "</tr>\n"; print "</tr>\n";
} }
} }
}
closedir($handle); closedir($handle);
} }
} }

View File

@ -41,7 +41,7 @@ class doc_generic_invoice_odt extends ModelePDFFactures
var $emetteur; // Objet societe qui emet var $emetteur; // Objet societe qui emet
var $phpmin = array(5,2,0); // Minimum version of PHP required by module var $phpmin = array(5,2,0); // Minimum version of PHP required by module
var $version = 'development';
/** /**
* \brief Constructor * \brief Constructor
@ -70,6 +70,15 @@ class doc_generic_invoice_odt extends ModelePDFFactures
$this->marge_basse=0; $this->marge_basse=0;
$this->option_logo = 1; // Affiche logo $this->option_logo = 1; // Affiche logo
$this->option_tva = 0; // Gere option tva FACTURE_TVAOPTION
$this->option_modereg = 0; // Affiche mode reglement
$this->option_condreg = 0; // Affiche conditions reglement
$this->option_codeproduitservice = 0; // Affiche code produit-service
$this->option_multilang = 1; // Dispo en plusieurs langues
$this->option_escompte = 0; // Affiche si il y a eu escompte
$this->option_credit_note = 0; // Support credit notes
$this->option_freetext = 1; // Support add of a personalised text
$this->option_draft_watermark = 1; // Support add of a watermark on drafts
// Recupere emmetteur // Recupere emmetteur
$this->emetteur=$mysoc; $this->emetteur=$mysoc;

View File

@ -207,15 +207,16 @@ class modFacture extends DolibarrModules
/** /**
* \brief Fonction appelee lors de l'activation du module. Insere en base les constantes, boites, permissions du module. * Fonction appelee lors de l'activation du module. Insere en base les constantes, boites, permissions du module.
* Definit egalement les repertoires de donnees a creer pour ce module. * Definit egalement les repertoires de donnees a creer pour ce module.
* @param options Options when enabling module
*/ */
function init() function init($options='')
{ {
global $conf; global $conf;
// Remove permissions and default values // Remove permissions and default values
$this->remove(); $this->remove($options);
require_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php'); require_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php');
$dirodt=DOL_DATA_ROOT.'/doctemplates/invoices'; $dirodt=DOL_DATA_ROOT.'/doctemplates/invoices';
@ -227,23 +228,19 @@ class modFacture extends DolibarrModules
"INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->const[0][2]."','invoice',".$conf->entity.")", "INSERT INTO ".MAIN_DB_PREFIX."document_model (nom, type, entity) VALUES('".$this->const[0][2]."','invoice',".$conf->entity.")",
); );
return $this->_init($sql); return $this->_init($sql,$option);
} }
/** /**
* \brief Fonction appelee lors de la desactivation d'un module. * Fonction appelee lors de la desactivation d'un module.
* Supprime de la base les constantes, boites et permissions du module. * Supprime de la base les constantes, boites et permissions du module.
* @param options Options when disabling module
*/ */
function remove() function remove($options='')
{ {
require_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php');
$dirodt=DOL_DATA_ROOT.'/doctemplates/invoices';
create_exdir($dirodt);
dol_copy(DOL_DOCUMENT_ROOT.'/install/doctemplates/invoices/template_invoice.odt',$dirodt.'/template_invoice.odt',0,0);
$sql = array(); $sql = array();
return $this->_remove($sql); return $this->_remove($sql,$options);
} }
} }
?> ?>

View File

@ -265,9 +265,9 @@ class modSociete extends DolibarrModules
/** /**
* \brief Fonction appelee lors de l'activation du module. Insere en base les constantes, boites, permissions du module. * Fonction appelee lors de l'activation du module. Insere en base les constantes, boites, permissions du module.
* Definit egalement les repertoires de donnees a creer pour ce module. * Definit egalement les repertoires de donnees a creer pour ce module.
* \param options Options when enabling module * @param options Options when enabling module
*/ */
function init($options='') function init($options='')
{ {
@ -287,9 +287,9 @@ class modSociete extends DolibarrModules
} }
/** /**
* \brief Fonction appelee lors de la desactivation d'un module. * Fonction appelee lors de la desactivation d'un module.
* Supprime de la base les constantes, boites et permissions du module. * Supprime de la base les constantes, boites et permissions du module.
* \param options Options when disabling module * @param options Options when disabling module
*/ */
function remove($options='') function remove($options='')
{ {