diff --git a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
index 00658b7b9cb..3330f491e70 100644
--- a/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
+++ b/htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php
@@ -519,8 +519,12 @@ class doc_generic_order_odt extends ModelePDFCommandes
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
// Write new file
- //$result=$odfHandler->exportAsAttachedFile('toto');
- $odfHandler->saveToDisk($file);
+ if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
+ $odfHandler->exportAsAttachedPDF($file);
+ }
+ else {
+ $odfHandler->saveToDisk($file);
+ }
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));
diff --git a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
index 512bf98be8b..8aa417c83c0 100644
--- a/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
+++ b/htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php
@@ -497,8 +497,12 @@ class doc_generic_invoice_odt extends ModelePDFFactures
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
// Write new file
- //$result=$odfHandler->exportAsAttachedFile('toto');
- $odfHandler->saveToDisk($file);
+ if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
+ $odfHandler->exportAsAttachedPDF($file);
+ }
+ else {
+ $odfHandler->saveToDisk($file);
+ }
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));
diff --git a/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
index 1fbd02bbe6f..4c81babaa55 100644
--- a/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
+++ b/htdocs/core/modules/project/pdf/doc_generic_project_odt.modules.php
@@ -650,7 +650,7 @@ class doc_generic_project_odt extends ModelePDFProjects
//Time ressources
$sql = "SELECT t.rowid, t.task_date, t.task_duration, t.fk_user, t.note";
- $sql.= ", u.name, u.firstname";
+ $sql.= ", u.lastname, u.firstname";
$sql .= " FROM ".MAIN_DB_PREFIX."projet_task_time as t";
$sql .= " , ".MAIN_DB_PREFIX."user as u";
$sql .= " WHERE t.fk_task =".$task->id;
@@ -973,8 +973,12 @@ class doc_generic_project_odt extends ModelePDFProjects
// Write new file
- $odfHandler->saveToDisk($file);
- //$odfHandler->exportAsAttachedPDF($file);
+ if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
+ $odfHandler->exportAsAttachedPDF($file);
+ }
+ else {
+ $odfHandler->saveToDisk($file);
+ }
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));
diff --git a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
index 26d67f09a32..d4e485562a4 100644
--- a/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
+++ b/htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php
@@ -482,8 +482,12 @@ class doc_generic_proposal_odt extends ModelePDFPropales
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
// Write new file
- //$result=$odfHandler->exportAsAttachedFile('toto');
- $odfHandler->saveToDisk($file);
+ if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
+ $odfHandler->exportAsAttachedPDF($file);
+ }
+ else {
+ $odfHandler->saveToDisk($file);
+ }
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));
diff --git a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
index acf14c67139..ca93ab1880e 100644
--- a/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
+++ b/htdocs/core/modules/societe/doc/doc_generic_odt.modules.php
@@ -313,8 +313,12 @@ class doc_generic_odt extends ModeleThirdPartyDoc
$reshook=$hookmanager->executeHooks('beforeODTSave',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
// Write new file
- //$result=$odfHandler->exportAsAttachedFile('toto');
- $odfHandler->saveToDisk($file);
+ if (!empty($conf->global->MAIN_ODT_AS_PDF)) {
+ $odfHandler->exportAsAttachedPDF($file);
+ }
+ else {
+ $odfHandler->saveToDisk($file);
+ }
if (! empty($conf->global->MAIN_UMASK))
@chmod($file, octdec($conf->global->MAIN_UMASK));
diff --git a/htdocs/includes/odtphp/odf.php b/htdocs/includes/odtphp/odf.php
index 7e72eb6f7e2..41b64343bc1 100644
--- a/htdocs/includes/odtphp/odf.php
+++ b/htdocs/includes/odtphp/odf.php
@@ -450,10 +450,39 @@ IMG;
{
if( $name == "" ) $name = md5(uniqid());
- $this->saveToDisk("$name.odt");
- exec("./odt2pdf.sh $name",$output,$ret_val);
- if($ret_val == 0)
- {
+ dol_syslog(get_class($this).'::exportAsAttachedPDF $name='.$name, LOG_DEBUG);
+ $this->saveToDisk($name);
+
+ $execmethod=(empty($conf->global->MAIN_EXEC_USE_POPEN)?1:2); // 1 or 2
+ $command = DOL_DOCUMENT_ROOT.'/includes/odtphp/odt2pdf.sh '.$name;
+ dol_syslog('$execmethod='.$execmethod.' Run command='.$command);
+ if ($execmethod == 1)
+ {
+ exec($command, $output_arr, $retval);
+ }
+ if ($execmethod == 2)
+ {
+ $ok=0;
+ $handle = fopen($outputfile, 'w');
+ if ($handle)
+ {
+ dol_syslog("Run command ".$command);
+ $handlein = popen($command, 'r');
+ while (!feof($handlein))
+ {
+ $read = fgets($handlein);
+ fwrite($handle,$read);
+ $output_arr[]=$read;
+ }
+ pclose($handlein);
+ fclose($handle);
+ }
+ if (! empty($conf->global->MAIN_UMASK)) @chmod($outputfile, octdec($conf->global->MAIN_UMASK));
+ }
+
+ if($retval == 0)
+ {
+ dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
if (headers_sent($filename, $linenum)) {
throw new OdfException("headers already sent ($filename at $linenum)");
}
@@ -464,9 +493,12 @@ IMG;
unlink("$name.odt");
unlink("$name.pdf");
} else {
+ dol_syslog(get_class($this).'::exportAsAttachedPDF $ret_val='.$retval, LOG_DEBUG);
+ dol_syslog(get_class($this).'::exportAsAttachedPDF $output_arr='.var_export($output_arr,true), LOG_DEBUG);
echo "Error occured:
";
- foreach($output as $line)
+ foreach($output_arr as $line)
echo $line."
";
+ dol_syslog(get_class($this).'::exportAsAttachedPDF ERROR $line='.$line, LOG_DEBUG);
}
}
diff --git a/htdocs/includes/odtphp/odt2pdf.sh b/htdocs/includes/odtphp/odt2pdf.sh
old mode 100644
new mode 100755
index b9710682465..a2bd617dfa8
--- a/htdocs/includes/odtphp/odt2pdf.sh
+++ b/htdocs/includes/odtphp/odt2pdf.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# @copyright GPL License 2010 - Vikas Mahajan - http://vikasmahajan.wordpress.com
-if [ -f "$1.odt" ]
+if [ -f $1 ]
then
pgrep -U `id -u` soffice
if [ $? -ne 0 ]
@@ -9,7 +9,7 @@ then
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
sleep 2
fi
-jodconverter "$1.odt" "$1.pdf"
+jodconverter $1 "$1.pdf"
if [ $? -ne 0 ]
then
echo "Error while converting odt to pdf"