diff --git a/ChangeLog b/ChangeLog
index 1f4afc83e82..46779a760c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
English Dolibarr ChangeLog
--------------------------------------------------------------
+
***** ChangeLog for 13.0.0 compared to 12.0.0 *****
For users:
NEW: Add module Credit transfer SEPA to manage payment of supplier using bank credit transfer SEPA files
@@ -22,6 +23,52 @@ Following changes may create regressions for some external modules, but were nec
you must now also include declaration of the Trait CommonIncoterm in your class. All incoterm functions were moved into this Trait.
* The GETPOST(..., 'alpha') has now the same behaviour than GETPOST(..., 'alpahnohtml');
+
+***** ChangeLog for 12.0.3 compared to 12.0.2 *****
+FIX: 10.0 - when the mime file name is different from the filesystem name, the attachment name should be the mime filename
+FIX: 11.0 - expenses lines overlapping the total amounts frame
+FIX: 12.0 - round value of virtual stock on product stock reassort list
+FIX: #14469
+FIX: #14474 Error when deleting
+FIX: #14530
+FIX: #14703
+FIX: - Accountancy balance Error SQL on entity
+FIX: Bad number of subscription (forgotten when member was resiliated)
+FIX: bad route url to delete subproduct with API
+FIX: Category for suplements not saved
+FIX: Compatibility with modules without document generation
+FIX: Cron load lang
+FIX: CSS
+FIX: Error management. Do no try to approve PO if validation fails.
+FIX: expenses lines overlapping the frame for total amounts.
+FIX: Filter in "billed" of orders was not saved
+FIX: infinite fetch object linked loop
+FIX: Intervention lose html tags when updating
+FIX: JS CRASH - bad usage of moreparam
+FIX: lang fr retained warranty
+FIX: Look and feel v12: First tab must be name of object
+FIX: missing entity check
+FIX: missing param for hook
+FIX: Missing transaction on PO actions
+FIX: MySql Strict mode
+FIX: param entity in html form file
+FIX: Problems on FEC format
+FIX: round stock value on product list
+FIX: - Send mail from contact : select mail model
+FIX: set sales representatives on create company card
+FIX: Setup of stock increase/decrease
+FIX: sign of amount with credit note and multicurrencies
+FIX: Static property called as non static
+FIX: task leftmenu
+FIX: title button attribute id empty
+FIX: unit price divided by quantity when accepting supplier price proposal
+FIX: Update extrafields on line only if it is supported
+FIX: Update line of BOM
+FIX: using decimal on stock correction
+FIX: Visualization rights correction on last modified contacts box
+FIX: Wrong redirection
+FIX: Yogosha report 4425 (backport)
+
***** ChangeLog for 12.0.2 compared to 12.0.1 *****
FIX: computation of the bottom margin of
returns NaN because body is not loaded yet
FIX: DebugBar hides content at page bottom
diff --git a/htdocs/admin/website.php b/htdocs/admin/website.php
index 595848fe232..83aeed6bd13 100644
--- a/htdocs/admin/website.php
+++ b/htdocs/admin/website.php
@@ -411,7 +411,7 @@ print " \n";
// Confirmation de la suppression de la ligne
if ($action == 'delete')
{
- print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid, $langs->trans('DeleteWebsite'), $langs->trans('ConfirmDeleteWebsite'), 'confirm_delete', '', 0, 1);
+ print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page ? 'page='.$page.'&' : '').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid, $langs->trans('DeleteWebsite'), $langs->trans('ConfirmDeleteWebsite'), 'confirm_delete', '', 0, 1, 220);
}
//var_dump($elementList);
diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php
index 8eb6c3d8eda..096a5497efd 100644
--- a/htdocs/categories/card.php
+++ b/htdocs/categories/card.php
@@ -88,6 +88,10 @@ if ($action == 'add' && $user->rights->categorie->creer)
{
header("Location: ".$urlfrom);
exit;
+ } elseif ($backtopage)
+ {
+ header("Location: ".$backtopage);
+ exit;
} elseif ($idProdOrigin)
{
header("Location: ".DOL_URL_ROOT.'/categories/viewcat.php?id='.$idProdOrigin.'&type='.$type);
@@ -235,13 +239,13 @@ if ($user->rights->categorie->creer)
// Ref
print '
'
);
}
diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php
index 3a1d13d210e..202a5770f06 100644
--- a/htdocs/categories/viewcat.php
+++ b/htdocs/categories/viewcat.php
@@ -51,6 +51,7 @@ $contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'myo
$backtopage = GETPOST('backtopage', 'alpha'); // Go back to a dedicated page
$optioncss = GETPOST('optioncss', 'aZ'); // Option for the css output (always '' except when 'print')
+
// Load variable for pagination
$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit;
$sortfield = GETPOST('sortfield', 'aZ09comma');
diff --git a/htdocs/compta/facture/card-rec.php b/htdocs/compta/facture/card-rec.php
index 284ec8111d5..a11f0f7c800 100644
--- a/htdocs/compta/facture/card-rec.php
+++ b/htdocs/compta/facture/card-rec.php
@@ -1617,13 +1617,12 @@ if ($action == 'create')
// Show object lines
if (!empty($object->lines))
{
- //$disableedit=1;
- //$disablemove=1;
+ $canchangeproduct = 1;
$ret = $object->printObjectLines($action, $mysoc, $object->thirdparty, $lineid, 0); // No date selector for template invoice
}
// Form to add new line
- if ($object->statut == 0 && $user->rights->facture->creer && $action != 'valid' && $action != 'editline')
+ if ($object->statut == $object::STATUS_DRAFT && $user->rights->facture->creer && $action != 'valid' && $action != 'editline')
{
if ($action != 'editline')
{
diff --git a/htdocs/contrat/card.php b/htdocs/contrat/card.php
index fadf0831ada..adb117b7b8f 100644
--- a/htdocs/contrat/card.php
+++ b/htdocs/contrat/card.php
@@ -665,6 +665,7 @@ if (empty($reshook))
$fk_unit = GETPOST('unit', 'alpha');
+ $objectline->fk_product = GETPOST('idprod', 'int');
$objectline->description = GETPOST('product_desc', 'restricthtml');
$objectline->price_ht = GETPOST('elprice');
$objectline->subprice = GETPOST('elprice');
@@ -1436,8 +1437,6 @@ if ($action == 'create')
$usemargins = 0;
if (!empty($conf->margin->enabled) && !empty($object->element) && in_array($object->element, array('facture', 'propal', 'commande'))) $usemargins = 1;
- $var = false;
-
// Title line for service
$cursorline = 1;
print '
';
@@ -1448,7 +1447,6 @@ if ($action == 'create')
print '';
print '';
print '';
- print '';
print '';
// Area with common detail of line
@@ -1632,17 +1630,29 @@ if ($action == 'create')
// Ligne carac
print '
';
print '
';
- if ($objp->fk_product)
+ if ($objp->fk_product > 0)
{
- $productstatic->id = $objp->fk_product;
- $productstatic->type = $objp->ptype;
- $productstatic->ref = $objp->pref;
- $productstatic->entity = $objp->pentity;
- print $productstatic->getNomUrl(1, '', 32);
- print $objp->label ? ' - '.dol_trunc($objp->label, 32) : '';
+ $canchangeproduct = 1;
+ if (empty($canchangeproduct)) {
+ $productstatic->id = $objp->fk_product;
+ $productstatic->type = $objp->ptype;
+ $productstatic->ref = $objp->pref;
+ $productstatic->entity = $objp->pentity;
+ print $productstatic->getNomUrl(1, '', 32);
+ print $objp->label ? ' - '.dol_trunc($objp->label, 32) : '';
+ print '';
+ } else {
+ $senderissupplier = 0;
+ if (empty($senderissupplier)) {
+ print $form->select_produits((!empty($object->lines[$cursorline - 1]->fk_product) ? $object->lines[$cursorline - 1]->fk_product : 0), 'idprod');
+ } else {
+ print $form->select_produits_fournisseurs((!empty($object->lines[$cursorline - 1]->fk_product) ? $object->lines[$cursorline - 1]->fk_product : 0), 'idprod');
+ }
+ }
print ' ';
} else {
print $objp->label ? $objp->label.' ' : '';
+ print '';
}
// editeur wysiwyg
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index 5acb5d7de85..ce7ed73b6a5 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -4038,7 +4038,7 @@ class Form
* type can be 'hidden', 'text', 'password', 'checkbox', 'radio', 'date', 'morecss', ...
* @param string $selectedchoice '' or 'no', or 'yes' or '1' or '0'
* @param int|string $useajax 0=No, 1=Yes, 2=Yes but submit page with &confirm=no if choice is No, 'xxx'=Yes and preoutput confirm box with div id=dialog-confirm-xxx
- * @param int $height Force height of box (0 = auto)
+ * @param int|string $height Force height of box (0 = auto)
* @param int $width Force width of box ('999' or '90%'). Ignored and forced to 90% on smartphones.
* @param int $disableformtag 1=Disable form tag. Can be used if we are already inside a