If the variable MAIN_DOL_SCRIPTS_ROOT is not defined then converting a proposal to PDF fails because the shell script is not found in the programmed relative path.
You may convert without error invoices or proposals (tweaking the $command variable before doing it) but not both. It looks like the odf.php script is invoked from diferent levels of folder depth in each case so that, as the path to the conversion script is relative, it fails with one or with another
valid for invoices: $command = '…/…/scripts/odt2pdf/odt2pdf.sh '… (two levels of jump-back)
valid for proposals: $command = '…/…/…/scripts/odt2pdf/odt2pdf.sh '… (three levels of jump-back)
If global variable is used then path construction is always the same not being affected by what you are converting.
>> starting a line 574 of odf.php
if (!empty($conf-\>global-\>MAIN_DOL_SCRIPTS_ROOT))
{
$command = $conf-\>global-\>MAIN_DOL_SCRIPTS_ROOT.'/scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf-\>global-\>MAIN_ODT_AS_PDF)?'jodconverter':$conf-\>global-\>MAIN_ODT_AS_PDF);
}
else
{
$command = '../../scripts/odt2pdf/odt2pdf.sh '.escapeshellcmd($name).' '.(is_numeric($conf-\>global-\>MAIN_ODT_AS_PDF)?'jodconverter':$conf-\>global-\>MAIN_ODT_AS_PDF);
}