diff --git a/htdocs/admin/bom.php b/htdocs/admin/bom.php
index a36c3698306..f8c2cf0bc06 100644
--- a/htdocs/admin/bom.php
+++ b/htdocs/admin/bom.php
@@ -91,7 +91,7 @@ if ($action == 'updateMask') {
header("Location: ".DOL_URL_ROOT."/document.php?modulepart=bom&file=SPECIMEN.pdf");
return;
} else {
- setEventMessages($module->error, null, 'errors');
+ setEventMessages($module->error, $module->errors, 'errors');
dol_syslog($module->error, LOG_ERR);
}
} else {
@@ -174,7 +174,7 @@ $head = bomAdminPrepareHead();
print dol_get_fiche_head($head, 'settings', $langs->trans("BOMs"), -1, 'bom');
/*
- * BOMs Numbering model
+ * Numbering module
*/
print load_fiche_titre($langs->trans("BOMsNumberingModules"), '', '');
@@ -200,10 +200,11 @@ foreach ($dirmodels as $reldir) {
while (($file = readdir($handle)) !== false) {
if (substr($file, 0, 8) == 'mod_bom_' && substr($file, dol_strlen($file) - 3, 3) == 'php') {
$file = substr($file, 0, dol_strlen($file) - 4);
+ $classname = $file;
require_once $dir.$file.'.php';
- $module = new $file($db);
+ $module = new $classname($db);
// Show modules according to features level
if ($module->version == 'development' && $conf->global->MAIN_FEATURES_LEVEL < 2) {
@@ -218,7 +219,7 @@ foreach ($dirmodels as $reldir) {
print $module->info();
print '';
- // Show example of numbering model
+ // Show example of numbering module
print '
';
$tmp = $module->getExample();
if (preg_match('/^Error/', $tmp)) {
@@ -275,13 +276,13 @@ foreach ($dirmodels as $reldir) {
}
print "";
print "";
-print " \n";
/*
* Document templates generators
*/
+print " \n";
print load_fiche_titre($langs->trans("BOMsModelModule"), '', '');
// Load array def with activated templates
@@ -305,8 +306,8 @@ if ($resql) {
print '';
-print " \n";
-print "\n";
+print '';
+print '';
print '| '.$langs->trans("Name").' | ';
print ''.$langs->trans("Description").' | ';
print ''.$langs->trans("Status")." | \n";
@@ -362,13 +363,13 @@ foreach ($dirmodels as $reldir) {
// Active
if (in_array($name, $def)) {
print ''."\n";
- print '';
+ print '';
print img_picto($langs->trans("Enabled"), 'switch_on');
print '';
print ' | ';
} else {
print ''."\n";
- print 'scandir.'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'';
+ print 'scandir).'&label='.urlencode($module->name).'">'.img_picto($langs->trans("Disabled"), 'switch_off').'';
print " | ";
}
@@ -377,7 +378,7 @@ foreach ($dirmodels as $reldir) {
if ($conf->global->BOM_ADDON_PDF == $name) {
print img_picto($langs->trans("Default"), 'on');
} else {
- print 'scandir.'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'';
+ print 'scandir).'&label='.urlencode($module->name).'" alt="'.$langs->trans("Default").'">'.img_picto($langs->trans("Disabled"), 'off').'';
}
print '';
@@ -419,12 +420,12 @@ foreach ($dirmodels as $reldir) {
print ' ';
print '';
-print " ";
/*
* Other options
*/
+print " ";
print load_fiche_titre($langs->trans("OtherOptions"), '', '');
print '';
diff --git a/htdocs/core/lib/doc.lib.php b/htdocs/core/lib/doc.lib.php
index 97eaa7d0b9e..d1a7cea5d9a 100644
--- a/htdocs/core/lib/doc.lib.php
+++ b/htdocs/core/lib/doc.lib.php
@@ -128,11 +128,9 @@ function doc_getlinedesc($line, $outputlangs, $hideref = 0, $hidedesc = 0, $issu
} else {
$ref_prodserv = $prodser->ref; // Show local ref only
}
-
- $ref_prodserv .= " - ";
}
- $libelleproduitservice = $prefix_prodserv.$ref_prodserv.$libelleproduitservice;
+ $libelleproduitservice = $prefix_prodserv.$ref_prodserv.($libelleproduitservice ? " - " : "").$libelleproduitservice;
}
}
diff --git a/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php b/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php
index 463cbc46a24..946d9f32649 100644
--- a/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php
+++ b/htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php
@@ -169,7 +169,7 @@ class doc_generic_bom_odt extends ModelePDFBom
$texte .= ' ';
}
@@ -406,10 +406,22 @@ class doc_generic_bom_odt extends ModelePDFBom
$foundtagforlines = 0;
dol_syslog($e->getMessage(), LOG_INFO);
}
+
if ($foundtagforlines) {
$linenumber = 0;
foreach ($object->lines as $line) {
$linenumber++;
+
+ if ($line->fk_product > 0) {
+ $line->fetch_product();
+
+ $line->product_ref = $line->product->ref;
+ $line->product_desc = $line->product->description;
+ $line->product_label = $line->product->label;
+ $line->product_type = $line->product->type;
+ $line->product_barcode = $line->product->barcode;
+ }
+
$tmparray = $this->get_substitutionarray_lines($line, $outputlangs, $linenumber);
complete_substitutions_array($tmparray, $outputlangs, $object, $line, "completesubstitutionarray_lines");
// Call the ODTSubstitutionLine hook
diff --git a/htdocs/install/doctemplates/boms/template_bom.odt b/htdocs/install/doctemplates/boms/template_bom.odt
index 701753c3dba..573e97a0a84 100644
Binary files a/htdocs/install/doctemplates/boms/template_bom.odt and b/htdocs/install/doctemplates/boms/template_bom.odt differ
|