Skip to content

Commit

Permalink
Refactored CommandeFournisseur::generateDocument and FactureFournisse…
Browse files Browse the repository at this point in the history
…ur::generateDocument
  • Loading branch information
marcosgdf committed Sep 21, 2014
1 parent 9244ef2 commit 016c889
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 158 deletions.
82 changes: 3 additions & 79 deletions htdocs/fourn/class/fournisseur.commande.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -2019,17 +2019,8 @@ function getInputMethod()
public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0)
{
global $conf, $user, $langs;
$langs->load("suppliers");

$error=0;

// Increase limit for PDF build
$err=error_reporting();
error_reporting(0);
@set_time_limit(120);
error_reporting($err);

$srctemplatepath='';
$langs->load("suppliers");

// Sets the model on the model name to use
if (! dol_strlen($modele))
Expand All @@ -2044,76 +2035,9 @@ public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedes
}
}

// If selected model is a filename template (then $modele="modelname:filename")
$tmp=explode(':',$modele,2);
if (! empty($tmp[1]))
{
$modele=$tmp[0];
$srctemplatepath=$tmp[1];
}

// Search template files
$file=''; $classname=''; $filefound=0;
$dirmodels=array('/');
if (is_array($conf->modules_parts['models'])) $dirmodels=array_merge($dirmodels,$conf->modules_parts['models']);
foreach($dirmodels as $reldir)
{
foreach(array('doc','pdf') as $prefix)
{
$file = $prefix."_".$modele.".modules.php";

// We check the model location
$file=dol_buildpath($reldir."core/modules/supplier_order/pdf/".$file,0);
if (file_exists($file))
{
$filefound=1;
$classname=$prefix.'_'.$modele;
break;
}
}
if ($filefound) break;
}

// Load the model
if ($filefound)
{
require_once $file;

$obj = new $classname($this->db,$this);

// We save charset_output to restore it because write_file can change it if needed for
// output format that does not support UTF8.
$sav_charset_output=$outputlangs->charset_output;
if ($obj->write_file($this, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref) > 0)
{
$outputlangs->charset_output=$sav_charset_output;
$modelpath = "core/modules/supplier_order/pdf/";

// we delete preview files
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
dol_delete_preview($this);

return 1;
}
else
{
$outputlangs->charset_output=$sav_charset_output;
dol_syslog("Erreur dans supplier_order_pdf_create");
dol_print_error($this->db,$obj->error);
return 0;
}
}
else
{
if (! $conf->global->COMMANDE_SUPPLIER_ADDON_PDF)
{
print $langs->trans("Error")." ".$langs->trans("Error_COMMANDE_SUPPLIER_ADDON_PDF_NotDefined");
}
else
{
print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file);
}
return 0;
}
return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
}


Expand Down
81 changes: 2 additions & 79 deletions htdocs/fourn/class/fournisseur.facture.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -1687,16 +1687,6 @@ public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedes

$langs->load("suppliers");

$error=0;

// Increase limit for PDF build
$err=error_reporting();
error_reporting(0);
@set_time_limit(120);
error_reporting($err);

$srctemplatepath='';

// Set the model on the model name to use
if (! dol_strlen($modele))
{
Expand All @@ -1710,76 +1700,9 @@ public function generateDocument($modele, $outputlangs, $hidedetails=0, $hidedes
}
}

// If selected modele is a filename template (then $modele="modelname:filename")
$tmp=explode(':',$modele,2);
if (! empty($tmp[1]))
{
$modele=$tmp[0];
$srctemplatepath=$tmp[1];
}
$modelpath = "core/modules/supplier_invoice/pdf/";

// Search template files
$file=''; $classname=''; $filefound=0;
$dirmodels=array('/');
if (is_array($conf->modules_parts['models'])) $dirmodels=array_merge($dirmodels,$conf->modules_parts['models']);
foreach($dirmodels as $reldir)
{
foreach(array('doc','pdf') as $prefix)
{
$file = $prefix."_".$modele.".modules.php";

// We checked the location of the model
$file=dol_buildpath($reldir."core/modules/supplier_invoice/pdf/".$file,0);
if (file_exists($file))
{
$filefound=1;
$classname=$prefix.'_'.$modele;
break;
}
}
if ($filefound) break;
}

// Load the model
if ($filefound)
{
require_once $file;

$obj = new $classname($this->db,$this);

// We save charset_output to restore it because write_file can change it if needed for
// output format that does not support UTF8.
$sav_charset_output=$outputlangs->charset_output;
if ($obj->write_file($this, $outputlangs, $srctemplatepath, $hidedetails, $hidedesc, $hideref) > 0)
{
$outputlangs->charset_output=$sav_charset_output;

// we delete preview files
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
dol_delete_preview($this);

return 1;
}
else
{
$outputlangs->charset_output=$sav_charset_output;
dol_syslog("Erreur dans supplier_invoice_pdf_create");
dol_print_error($this->db,$obj->error);
return 0;
}
}
else
{
if (! $conf->global->INVOICE_SUPPLIER_ADDON_PDF)
{
print $langs->trans("Error")." ".$langs->trans("Error_INVOICE_SUPPLIER_ADDON_PDF_NotDefined");
}
else
{
print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$file);
}
return 0;
}
return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref);
}

}

0 comments on commit 016c889

Please sign in to comment.