diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php
index 959d881041d..8d5bcfc0492 100644
--- a/htdocs/admin/ihm.php
+++ b/htdocs/admin/ihm.php
@@ -646,7 +646,7 @@ if ($mode == 'login') {
print '(' . $langs->trans("DisabledByOptionADD_UNSPLASH_LOGIN_BACKGROUND") . ') ';
}
if (!empty($conf->global->MAIN_LOGIN_BACKGROUND)) {
- print '' . img_delete($langs->trans("Delete")) . '';
+ print '' . img_delete($langs->trans("Delete")) . '';
if (file_exists($conf->mycompany->dir_output . '/logos/' . $conf->global->MAIN_LOGIN_BACKGROUND)) {
print ' ';
print '
';
diff --git a/htdocs/core/class/html.formmail.class.php b/htdocs/core/class/html.formmail.class.php
index f2697bc3873..df7408200a9 100644
--- a/htdocs/core/class/html.formmail.class.php
+++ b/htdocs/core/class/html.formmail.class.php
@@ -1551,7 +1551,7 @@ class FormMail extends Form
if (!empty($extrafields->attributes[$product->table_element]['label']) && is_array($extrafields->attributes[$product->table_element]['label']) && count($extrafields->attributes[$product->table_element]['label']) > 0) {
foreach ($extrafields->attributes[$product->table_element]['label'] as $key => $label) {
- $substit_line['__PRODUCT_EXTRAFIELD_'.strtoupper($key).'__'] = $product->array_options['options_'.$key];
+ $substit_line['__PRODUCT_EXTRAFIELD_'.strtoupper($key).'__'] = isset($product->array_options['options_'.$key]) ? $product->array_options['options_'.$key] : '';
}
}
}
diff --git a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
index 8bd1e0d647d..cc6a1168c32 100644
--- a/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
+++ b/htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php
@@ -72,19 +72,25 @@ class InterfaceWorkflowManager extends DolibarrTriggers
if ($action == 'PROPAL_CLOSE_SIGNED') {
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ".__FILE__.". id=".$object->id);
if (!empty($conf->commande->enabled) && !empty($conf->global->WORKFLOW_PROPAL_AUTOCREATE_ORDER)) {
- include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
- $newobject = new Commande($this->db);
+ $object->fetchObjectLinked();
+ if (!empty($object->linkedObjectsIds['commande'])) {
+ setEventMessages($langs->trans("OrderExists"), null, 'warnings');
+ return $ret;
+ } else {
+ include_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
+ $newobject = new Commande($this->db);
- $newobject->context['createfrompropal'] = 'createfrompropal';
- $newobject->context['origin'] = $object->element;
- $newobject->context['origin_id'] = $object->id;
+ $newobject->context['createfrompropal'] = 'createfrompropal';
+ $newobject->context['origin'] = $object->element;
+ $newobject->context['origin_id'] = $object->id;
- $ret = $newobject->createFromProposal($object, $user);
- if ($ret < 0) {
- $this->error = $newobject->error;
- $this->errors[] = $newobject->error;
+ $ret = $newobject->createFromProposal($object, $user);
+ if ($ret < 0) {
+ $this->error = $newobject->error;
+ $this->errors[] = $newobject->error;
+ }
+ return $ret;
}
- return $ret;
}
}
diff --git a/htdocs/langs/en_US/orders.lang b/htdocs/langs/en_US/orders.lang
index a4261f8e62c..aa7dd934ede 100644
--- a/htdocs/langs/en_US/orders.lang
+++ b/htdocs/langs/en_US/orders.lang
@@ -1,4 +1,5 @@
# Dolibarr language file - Source file is en_US - orders
+OrderExists=An order was already open linked to this proposal, so no other order was created automatically
OrdersArea=Customers orders area
SuppliersOrdersArea=Purchase orders area
OrderCard=Order card