diff --git a/htdocs/admin/salaries.php b/htdocs/admin/salaries.php
index 58e85dbf8d3..2d32db71af7 100644
--- a/htdocs/admin/salaries.php
+++ b/htdocs/admin/salaries.php
@@ -113,11 +113,11 @@ print '';
print "\n";
-print '';
-
dol_fiche_end();
print '
';
+print '';
+
llxFooter();
$db->close();
diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index 5ddb0b343fa..e0d08dbc1fa 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -830,7 +830,7 @@ if (empty($reshook))
setEventMessages($object->error, $object->errors, 'errors');
}
- $result = $object->setValueFrom('ref',GETPOST('ref','alpha'));;
+ $result = $object->setValueFrom('ref',GETPOST('ref','alpha'));
if ($result < 0) {
setEventMessages($object->error, $object->errors, 'errors');
$action = 'editref';
@@ -843,6 +843,30 @@ if (empty($reshook))
header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
exit;
}
+ }
+ elseif ($action=='setdate_contrat')
+ {
+ $cancelbutton = GETPOST('cancel');
+
+ if (!$cancelbutton) {
+ $result = $object->fetch($id);
+ if ($result < 0) {
+ setEventMessages($object->error, $object->errors, 'errors');
+ }
+ $datacontrat=dol_mktime(GETPOST('date_contrathour'), GETPOST('date_contratmin'), 0, GETPOST('date_contratmonth'), GETPOST('date_contratday'), GETPOST('date_contratyear'));
+ $result = $object->setValueFrom('date_contrat',$datacontrat,'',null,'date');
+ if ($result < 0) {
+ setEventMessages($object->error, $object->errors, 'errors');
+ $action = 'editdate_contrat';
+ } else {
+ header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $object->id);
+ exit;
+ }
+ }
+ else {
+ header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $id);
+ exit;
+ }
}
// Generation doc (depuis lien ou depuis cartouche doc)
@@ -1278,8 +1302,15 @@ else
print "";
// Date
- print ''.$langs->trans("Date").' ';
- print ''.dol_print_date($object->date_contrat,"dayhour")." \n";
+ print '';
+ print '';
+ print $form->editfieldkey("Date",'date_contrat',$object->date_contrat,$object,$user->rights->contrat->creer);
+ print ' ';
+ print $form->editfieldval("Date",'date_contrat',$object->date_contrat,$object,$user->rights->contrat->creer,'datehourpicker');
+ print ' ';
+ print ' ';
+ /* print ''.$langs->trans("Date").' ';
+ print ''.dol_print_date($object->date_contrat,"dayhour")." \n";*/
// Projet
if (! empty($conf->projet->enabled))
diff --git a/htdocs/core/db/DoliDB.class.php b/htdocs/core/db/DoliDB.class.php
index f1909a91ea0..4103b095330 100644
--- a/htdocs/core/db/DoliDB.class.php
+++ b/htdocs/core/db/DoliDB.class.php
@@ -221,7 +221,7 @@ abstract class DoliDB implements Database
* Define sort criteria of request
*
* @param string $sortfield List of sort fields, separated by comma. Example: 't1.fielda, t2.fieldb'
- * @param string $sortorder Sort order
+ * @param 'ASC'|'DESC' $sortorder Sort order
* @return string String to provide syntax of a sort sql string
*/
function order($sortfield=null,$sortorder=null)
@@ -236,9 +236,11 @@ abstract class DoliDB implements Database
else $return.=',';
$return.=preg_replace('/[^0-9a-z_\.]/i','',$val);
- if (! empty($sortorder))
- {
- $return.=' '.preg_replace('/[^0-9a-z]/i','',$sortorder);
+ // Only ASC and DESC values are valid SQL
+ if ($sortorder === 'ASC') {
+ $return .= ' ASC';
+ } elseif ($sortorder === 'DESC') {
+ $return .= ' DESC';
}
}
return $return;
diff --git a/htdocs/core/js/lib_head.js b/htdocs/core/js/lib_head.js
index eab995d062b..ad799e72bd0 100644
--- a/htdocs/core/js/lib_head.js
+++ b/htdocs/core/js/lib_head.js
@@ -864,8 +864,8 @@ function confirmConstantAction(action, url, code, input, box, entity, yesButton,
.addClass( "ui-widget ui-widget-content ui-corner-left dolibarrcombobox" );
input.data("ui-autocomplete")._renderItem = function( ul, item ) {
- return $(" ")
- .data( "item.autocomplete", item )
+ return $("")
+ .data( "ui-autocomplete-item", item ) // jQuery UI > 1.10.0
.append( "" + item.label + " " )
.appendTo( ul );
};
diff --git a/htdocs/core/lib/ajax.lib.php b/htdocs/core/lib/ajax.lib.php
index 44de58ed4a8..fa150e6fbb7 100644
--- a/htdocs/core/lib/ajax.lib.php
+++ b/htdocs/core/lib/ajax.lib.php
@@ -170,8 +170,8 @@ function ajax_autocompleter($selected, $htmlname, $url, $urloption='', $minLengt
}
,delay: 500
}).data("ui-autocomplete")._renderItem = function( ul, item ) {
- return $(" ")
- .data( "item.autocomplete", item )
+ return $("")
+ .data( "ui-autocomplete-item", item ) // jQuery UI > 1.10.0
.append( \'\' + item.label + " " )
.appendTo(ul);
};
diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index 8471e3b0a14..0d3f83d49a9 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -313,3 +313,4 @@ PropalMergePdfProductChooseFile=Select PDF files
IncludingProductWithTag=Including product/service with tag
DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer
WarningSelectOneDocument=Please select at least one document
+DefaultUnitToShow=Units
diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang
index 455cb209986..b9f5a664fe5 100644
--- a/htdocs/langs/fr_FR/products.lang
+++ b/htdocs/langs/fr_FR/products.lang
@@ -297,3 +297,4 @@ PropalMergePdfProductChooseFile=Sélectionnez les fichiers PDF
IncludingProductWithTag=Incluant un produit ayant le tag/catégorie
DefaultPriceRealPriceMayDependOnCustomer=Prix par défaut, le prix réel peut dépendre du client
WarningSelectOneDocument=Sélectionnez au moins un document
+DefaultUnitToShow=Unités