';
diff --git a/htdocs/core/tpl/list_print_total.tpl.php b/htdocs/core/tpl/list_print_total.tpl.php
index 88aff7cce82..970eb93c84d 100644
--- a/htdocs/core/tpl/list_print_total.tpl.php
+++ b/htdocs/core/tpl/list_print_total.tpl.php
@@ -9,37 +9,13 @@ if (!empty($totalarray['totalizable']) && is_array($totalarray['totalizable']))
}
// Show total line
if (isset($totalarray['pos'])) {
+ print '
';
print '
';
$i = 0;
while ($i < $totalarray['nbfield']) {
$i++;
if (!empty($totalarray['pos'][$i])) {
- // if $totalarray['type'] not present we consider it as number
- if (empty($totalarray['type'][$i])) {
- $totalarray['type'][$i] = 'real';
- }
- switch ($totalarray['type'][$i]) {
- case 'duration':
- print '
';
+ }
+ }
+ }
+ print '';
+}
+
+/** print a total cell value according to its type
+ *
+ * @param string $type of field (duration, string..)
+ * @param string $val the value to display
+ *
+ * @return void (direct print)
+ */
+function printTotalValCell($type, $val)
+{
+ // if $totalarray['type'] not present we consider it as number
+ if (empty($type)) {
+ $type = 'real';
+ }
+ switch ($type) {
+ case 'duration':
+ print '
';
+ break;
+ }
}
diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php
index 3547747a1f4..eb1b1dddc53 100644
--- a/htdocs/core/tpl/objectline_create.tpl.php
+++ b/htdocs/core/tpl/objectline_create.tpl.php
@@ -833,6 +833,17 @@ if (!empty($usemargins) && $user->hasRight('margins', 'creer')) {
jQuery("#price_ht").val(data.price_ht);
}
+ // Set values for any fields in the form options_SOMETHING
+ for (var key in data.array_options) {
+ if (data.array_options.hasOwnProperty(key)) {
+ var field = jQuery("#" + key);
+ if(field.length > 0){
+ console.log("objectline_create.tpl set content of options_" + key);
+ field.val(data.array_options[key]);
+ }
+ }
+ }
+
var tva_tx = data.tva_tx;
var default_vat_code = data.default_vat_code;
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 30beafc1214..49e1d02e212 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -1197,6 +1197,7 @@ Skin=Skin theme
DefaultSkin=Default skin theme
MaxSizeList=Max length for list
DefaultMaxSizeList=Default max length for lists
+DisplayGrandTotalInList=Display grand total (for all pages) in lists footer
DefaultMaxSizeShortList=Default max length for short lists (i.e. in customer card)
MessageOfDay=Message of the day
MessageLogin=Login page message
diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang
index e94b0281eb3..29a03f34ad3 100644
--- a/htdocs/langs/en_US/main.lang
+++ b/htdocs/langs/en_US/main.lang
@@ -420,6 +420,8 @@ TotalTTCShort=Total (inc. tax)
TotalHT=Total (excl. tax)
TotalHTforthispage=Total (excl. tax) for this page
Totalforthispage=Total for this page
+GrandTotal=Grand total
+TotalforAllPages=Total for all pages
TotalTTC=Total (inc. tax)
TotalTTCToYourCredit=Total (inc. tax) to your credit
TotalVAT=Total tax
diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang
index c3064e23f35..cec42e8ba8e 100644
--- a/htdocs/langs/en_US/products.lang
+++ b/htdocs/langs/en_US/products.lang
@@ -433,4 +433,8 @@ ModifyValueExtrafields = Modify value of an extrafield
OrProductsWithCategories=Or products with tags/categories
WarningTransferBatchStockMouvToGlobal = If you want to deserialize this product, all its serialized stock will be transformed into global stock
WarningConvertFromBatchToSerial=If you currently have a quantity higher or equal to 2 for the product, switching to this choice means you will still have a product with different objects of the same batch (while you want a unique serial number). The duplicate will remain until an inventory or a manual stock movement to fix this is done.
+
+AllowStockMovementVariantParent=Allow stock movements on the variant parent
+
ConfirmSetToDraftInventory=Are you sure you want to go back to Draft status? The quantities currently set in the inventory will be reset.
+
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 9864434ff14..b8100956424 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -1202,6 +1202,7 @@ Skin=Thème visuel
DefaultSkin=Thème visuel par défaut
MaxSizeList=Longueur maximale des listes
DefaultMaxSizeList=Longueur maximale par défaut des listes
+DisplayGrandTotalInList=Affiche le total général (de toutes les pages) en bas des listes
DefaultMaxSizeShortList=Longueur maximale par défaut des listes courtes (e.g. dans la fiche client)
MessageOfDay=Message du jour
MessageLogin=Message page de connexion
diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang
index 0e1cf0ec73a..4b5abcdf118 100644
--- a/htdocs/langs/fr_FR/main.lang
+++ b/htdocs/langs/fr_FR/main.lang
@@ -420,6 +420,8 @@ TotalTTCShort=Total TTC
TotalHT=Total HT
TotalHTforthispage=Montant (HT) pour la page
Totalforthispage=Total pour cette page
+GrandTotal=Total général
+TotalforAllPages=Total général de toutes les pages
TotalTTC=Total TTC
TotalTTCToYourCredit=Total TTC à votre crédit
TotalVAT=Total TVA
diff --git a/htdocs/variants/admin/admin.php b/htdocs/variants/admin/admin.php
index 0d96d52822b..ca2ac29d084 100644
--- a/htdocs/variants/admin/admin.php
+++ b/htdocs/variants/admin/admin.php
@@ -50,6 +50,11 @@ if ($action) {
$error++;
}
+ if (!dolibarr_set_const($db, 'VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT', GETPOST('VARIANT_ALLOW_STOCK_MOVEMENT_ON_VARIANT_PARENT'), 'chaine', 0, '', $conf->entity)) {
+ setEventMessages($langs->trans('CoreErrorMessage'), null, 'errors');
+ $error++;
+ }
+
if (!$error) {
setEventMessages($langs->trans('RecordSaved'), null, 'mesgs');
}
@@ -83,6 +88,9 @@ if (isset($conf->global->PRODUIT_ATTRIBUTES_SEPARATOR)) {
}
print '