diff --git a/htdocs/comm/propal.php b/htdocs/comm/propal.php
index e039342dd38..aed5ee01a5d 100644
--- a/htdocs/comm/propal.php
+++ b/htdocs/comm/propal.php
@@ -2116,7 +2116,7 @@ if ($action == 'create')
$form_close .= $object->note;
$form_close .= '';
$form_close .= '
| '.$langs->trans("Year").' | ';
diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php
index 9e7f5fae4f8..a152b005ee8 100644
--- a/htdocs/commande/card.php
+++ b/htdocs/commande/card.php
@@ -261,6 +261,13 @@ if (empty($reshook))
$object->fk_incoterms = GETPOST('incoterm_id', 'int');
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
+ // Fill array 'array_options' with data from add form
+ if (! $error)
+ {
+ $ret = $extrafields->setOptionalsFromPost($extralabels, $object);
+ if ($ret < 0) $error++;
+ }
+
// If creation from another object of another module (Example: origin=propal, originid=1)
if (! empty($origin) && ! empty($originid))
{
@@ -293,10 +300,6 @@ if (empty($reshook))
$object->linked_objects = array_merge($object->linked_objects, $other_linked_objects);
}
- // Fill array 'array_options' with data from add form
- $ret = $extrafields->setOptionalsFromPost($extralabels, $object);
- if ($ret < 0) $error++;
-
if (! $error)
{
$object_id = $object->create($user);
@@ -386,10 +389,6 @@ if (empty($reshook))
$action = 'create';
}
} else {
- // Fill array 'array_options' with data from add form
- $ret = $extrafields->setOptionalsFromPost($extralabels, $object);
- if ($ret < 0) $error++;
-
if (! $error)
{
$object_id = $object->create($user);
diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php
index bf0331f251d..1f0f763bfd1 100644
--- a/htdocs/commande/stats/index.php
+++ b/htdocs/commande/stats/index.php
@@ -64,8 +64,6 @@ $langs->load('suppliers');
$form=new Form($db);
-llxHeader();
-
if ($mode == 'customer')
{
$title=$langs->trans("OrdersStatistics");
@@ -77,6 +75,8 @@ if ($mode == 'supplier')
$dir=$conf->fournisseur->dir_output.'/commande/temp';
}
+llxHeader('', $title);
+
print load_fiche_titre($title,'','title_commercial.png');
dol_mkdir($dir);
@@ -277,12 +277,12 @@ print '';
print ' ';
print '';
print '| '.$langs->trans("Year").' | ';
-print ''.$langs->trans("NbOfOrders").' | ';
-print '% | ';
-print ''.$langs->trans("AmountTotal").' | ';
-print '% | ';
-print ''.$langs->trans("AmountAverage").' | ';
-print '% | ';
+print ''.$langs->trans("NbOfOrders").' | ';
+print '% | ';
+print ''.$langs->trans("AmountTotal").' | ';
+print '% | ';
+print ''.$langs->trans("AmountAverage").' | ';
+print '% | ';
print ' ';
$oldyear=0;
diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index e0d08dbc1fa..78f12335f36 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -1077,7 +1077,7 @@ if ($action == 'create')
else
{
print '';
- print $form->select_company('','socid','',1);
+ print $form->select_company('','socid','',1,1);
print ' | ';
}
print ''."\n";
@@ -1110,12 +1110,13 @@ if ($action == 'create')
$form->select_date($datecontrat,'',0,0,'',"contrat");
print "";
+ // Project
if (! empty($conf->projet->enabled))
{
$formproject=new FormProjets($db);
print '| '.$langs->trans("Project").' | ';
- $formproject->select_projects($soc->id,$projectid,"projectid");
+ $formproject->select_projects(($soc->id>0?$soc->id:-1),$projectid,"projectid",0,0,1,1);
print " | ";
}
@@ -1325,11 +1326,11 @@ else
print '';
if ($action == "classify")
{
- $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id,$object->socid,$object->fk_project,"projectid", 0, 0, 1);
+ $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, "projectid", 1, 0, 1);
}
else
{
- $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id,$object->socid,$object->fk_project,"none", 0, 0);
+ $form->form_project($_SERVER['PHP_SELF'].'?id='.$object->id, $object->socid, $object->fk_project, "none", 0, 0);
}
print " | ";
}
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index d1fa0b20448..005f4684322 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -2384,14 +2384,14 @@ abstract class CommonObject
{
// Parse element/subelement (ex: project_task)
$module = $element = $subelement = $objecttype;
- if ($objecttype != 'order_supplier' && $objecttype != 'invoice_supplier' && preg_match('/^([^_]+)_([^_]+)/i',$objecttype,$regs))
+ if ($objecttype != 'supplier_proposal' && $objecttype != 'order_supplier' && $objecttype != 'invoice_supplier'
+ && preg_match('/^([^_]+)_([^_]+)/i',$objecttype,$regs))
{
$module = $element = $regs[1];
$subelement = $regs[2];
}
$classpath = $element.'/class';
-
// To work with non standard classpath or module name
if ($objecttype == 'facture') {
$classpath = 'compta/facture/class';
@@ -2427,7 +2427,10 @@ abstract class CommonObject
else if ($objecttype == 'order_supplier') {
$classfile = 'fournisseur.commande'; $classname = 'CommandeFournisseur';
}
-
+ else if ($objecttype == 'supplier_proposal') {
+ $classfile = 'supplier_proposal'; $classname = 'SupplierProposal';
+ }
+
// Here $module, $classfile and $classname are set
if ($conf->$module->enabled && (($element != $this->element) || $alsosametype))
{
@@ -2595,6 +2598,7 @@ abstract class CommonObject
$error = 0;
$trigkey='';
+ if ($this->element == 'supplier_proposal' && $status == 2) $trigkey='SUPPLIER_PROPOSAL_CLOSE';
if ($this->element == 'fichinter' && $status == 2) $trigkey='FICHINTER_CLASSIFY_BILLED';
if ($this->element == 'fichinter' && $status == 1) $trigkey='FICHINTER_CLASSIFY_UNBILLED';
diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index 909afda913a..ee5f1465e3f 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -748,8 +748,9 @@ class ExtraFields
$out.=' |