forked from Wavyzz/dolibarr
Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into develop
Conflicts: ChangeLog htdocs/comm/propal/list.php htdocs/filefunc.inc.php
This commit is contained in:
73
ChangeLog
73
ChangeLog
@@ -18,6 +18,79 @@ Following changes may create regressions for some external modules, but were nec
|
||||
|
||||
|
||||
|
||||
***** ChangeLog for 11.0.1 compared to 11.0.0 *****
|
||||
FIX: advanced target emailing sql and ergonomy.
|
||||
FIX: After import of a website template, home page was not set.
|
||||
FIX: Avoid deletion of bank record if in accounting
|
||||
FIX: compatibility with multicompany (avoid duplicate data)
|
||||
FIX: Confusion between 'bank reconciled' and 'accounted'. Show both data.
|
||||
FIX: Count of Stripe payment mode must take test/live into account
|
||||
FIX: Creation of Stripe card from backoffice must return a clean message
|
||||
FIX: CVE-2019–17223
|
||||
FIX: CVE-2019–17223
|
||||
FIX: CVE-2020-7994
|
||||
FIX: CVE Need permission to be able to develop modules
|
||||
FIX: #13053
|
||||
FIX: Disable ticket status change if ticket closed
|
||||
FIX: doc of dictionnary API
|
||||
FIX: expedition ceate line new parameter is not required.
|
||||
FIX: export ledger
|
||||
FIX: FEC export have specific name
|
||||
FIX: Filenames must not contains non ascii char or we will get non ascii
|
||||
FIX: Filter on list of events were lost after "Back to list"
|
||||
FIX: hasDelay for retained warranty
|
||||
FIX: If we can change vendor status, we must be able to chane vendor code
|
||||
FIX: links in products/services index
|
||||
FIX: Log of authentication ok or ko + CVE-2020-7996
|
||||
FIX: Look and feel v11
|
||||
FIX: Mail smtps truncated if content has a line with single .
|
||||
FIX: missing hook parameter
|
||||
FIX: Missing include
|
||||
FIX: need weight short label in shipping doc
|
||||
FIX: Picture of contact not visible in tooltip
|
||||
FIX: Problem with column label in subscription list
|
||||
FIX: ref_client not visible in tooltip.
|
||||
FIX: search filter on extrafields were not restored after "Back to list"
|
||||
FIX: situation invoice: allow excess paid to be converted to discount
|
||||
FIX: situation invoice: bad amount for previous payments because of local variable overwriting a more global one
|
||||
FIX: situation invoice: can't convert excess received to discount & bad previous payment amount
|
||||
FIX: SQL request and phpunit
|
||||
FIX: Update export_files.php
|
||||
FIX: Use ref into label of ticket message
|
||||
FIX: use "usergroup" instead of "user"
|
||||
FIX: Warning on admin/export_files
|
||||
FIX: #10203
|
||||
FIX: default filtering for 'select' extrafields should use "=", not "LIKE"
|
||||
FIX: #11975 When a product is split between multiple pages in a document, prices/quantity/etc appear on the last relevant page
|
||||
FIX: #12760 #12763 #12755 #12765 #12751
|
||||
FIX: #12874
|
||||
FIX: #12892
|
||||
FIX: #12908 User login with credentials from self-subscription form fails
|
||||
FIX: #12932
|
||||
FIX: #12966
|
||||
FIX: #12973
|
||||
FIX: #12974
|
||||
FIX: #12975
|
||||
FIX: #12978
|
||||
FIX: #12986
|
||||
FIX: #12991
|
||||
FIX: #12992
|
||||
FIX: #12995
|
||||
FIX: #13018 Extrafields Supplier invoice
|
||||
FIX: #13019
|
||||
FIX: #13022
|
||||
FIX: #13028
|
||||
FIX: #13038 ExpenseReport PDF - custom category description is not correct
|
||||
FIX: #13046 More complete
|
||||
FIX: #13048
|
||||
FIX: #13050
|
||||
FIX: #13077 Replace left join with inner join (left join was useless)
|
||||
FIX: #13085
|
||||
FIX: #13094
|
||||
FIX: #13096
|
||||
FIX: #13100
|
||||
|
||||
|
||||
***** ChangeLog for 11.0.0 compared to 10.0.0 *****
|
||||
For Users:
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ if ($accountancyexport->getFormatCode($formatexportset) == $accountancyexport::$
|
||||
|
||||
$endaccountingperiod = dol_print_date(dol_get_last_day($tmparray['year'], $tmparray['mon']), 'dayxcard');
|
||||
|
||||
$completefilename = $siren . "FEC" . $endaccountingperiod . "." . $format;
|
||||
$completefilename = $siren . "FEC" . $endaccountingperiod . ".txt";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -134,9 +134,8 @@ $head = email_admin_prepare_head();
|
||||
// List of sending methods
|
||||
$listofmethods = array();
|
||||
$listofmethods['mail'] = 'PHP mail function';
|
||||
//$listofmethods['simplemail']='Simplemail class';
|
||||
$listofmethods['smtps'] = 'SMTP/SMTPS socket library';
|
||||
$listofmethods['swiftmailer'] = 'Swift Mailer socket library';
|
||||
if (version_compare(phpversion(), '7.0', '>=')) $listofmethods['swiftmailer'] = 'Swift Mailer socket library';
|
||||
|
||||
|
||||
if ($action == 'edit')
|
||||
|
||||
@@ -776,8 +776,9 @@ if ($resql)
|
||||
|
||||
$objectstatic->id = $obj->rowid;
|
||||
$objectstatic->ref = $obj->ref;
|
||||
$objectstatic->note_private = $obj->note_private;
|
||||
$objectstatic->ref_client = $obj->ref_client;
|
||||
$objectstatic->note_public = $obj->note_public;
|
||||
$objectstatic->note_private = $obj->note_private;
|
||||
|
||||
$companystatic->id = $obj->socid;
|
||||
$companystatic->name = $obj->name;
|
||||
@@ -824,7 +825,7 @@ if ($resql)
|
||||
if (!empty($arrayfields['p.ref_client']['checked']))
|
||||
{
|
||||
// Customer ref
|
||||
print '<td class="nowrap">';
|
||||
print '<td class="nowrap tdoverflowmax200">';
|
||||
print $obj->ref_client;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
|
||||
@@ -966,7 +966,7 @@ if ($resql)
|
||||
// Ref customer
|
||||
if (!empty($arrayfields['c.ref_client']['checked']))
|
||||
{
|
||||
print '<td>'.$obj->ref_client.'</td>';
|
||||
print '<td class="nowrap tdoverflowmax200">'.$obj->ref_client.'</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
}
|
||||
|
||||
|
||||
@@ -793,7 +793,7 @@ if (empty($reshook))
|
||||
|
||||
$canconvert = 0;
|
||||
if ($object->type == Facture::TYPE_DEPOSIT && empty($discountcheck->id)) $canconvert = 1; // we can convert deposit into discount if deposit is payed (completely, partially or not at all) and not already converted (see real condition into condition used to show button converttoreduc)
|
||||
if (($object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_STANDARD) && $object->paye == 0 && empty($discountcheck->id)) $canconvert = 1; // we can convert credit note into discount if credit note is not payed back and not already converted and amount of payment is 0 (see real condition into condition used to show button converttoreduc)
|
||||
if (($object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_SITUATION) && $object->paye == 0 && empty($discountcheck->id)) $canconvert = 1; // we can convert credit note into discount if credit note is not payed back and not already converted and amount of payment is 0 (see real condition into condition used to show button converttoreduc)
|
||||
if ($canconvert)
|
||||
{
|
||||
$db->begin();
|
||||
@@ -3640,7 +3640,7 @@ elseif ($id > 0 || !empty($ref))
|
||||
|
||||
// Confirmation de la conversion de l'avoir en reduc
|
||||
if ($action == 'converttoreduc') {
|
||||
if ($object->type == Facture::TYPE_STANDARD) $type_fac = 'ExcessReceived';
|
||||
if ($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_SITUATION) $type_fac = 'ExcessReceived';
|
||||
elseif ($object->type == Facture::TYPE_CREDIT_NOTE) $type_fac = 'CreditNote';
|
||||
elseif ($object->type == Facture::TYPE_DEPOSIT) $type_fac = 'Deposit';
|
||||
$text = $langs->trans('ConfirmConvertToReduc', strtolower($langs->transnoentities($type_fac)));
|
||||
@@ -4517,7 +4517,7 @@ elseif ($id > 0 || !empty($ref))
|
||||
|
||||
$current_situation_counter = array();
|
||||
foreach ($object->tab_previous_situation_invoice as $prev_invoice) {
|
||||
$totalpaye = $prev_invoice->getSommePaiement();
|
||||
$totalpaye_prev = $prev_invoice->getSommePaiement();
|
||||
$total_prev_ht += $prev_invoice->total_ht;
|
||||
$total_prev_ttc += $prev_invoice->total_ttc;
|
||||
$current_situation_counter[] = (($prev_invoice->type == Facture::TYPE_CREDIT_NOTE) ?-1 : 1) * $prev_invoice->situation_counter;
|
||||
@@ -4528,7 +4528,7 @@ elseif ($id > 0 || !empty($ref))
|
||||
if (!empty($conf->banque->enabled)) print '<td class="right"></td>';
|
||||
print '<td class="right">'.price($prev_invoice->total_ht).'</td>';
|
||||
print '<td class="right">'.price($prev_invoice->total_ttc).'</td>';
|
||||
print '<td class="right">'.$prev_invoice->getLibStatut(3, $totalpaye).'</td>';
|
||||
print '<td class="right">'.$prev_invoice->getLibStatut(3, $totalpaye_prev).'</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
}
|
||||
@@ -5093,7 +5093,7 @@ elseif ($id > 0 || !empty($ref))
|
||||
}
|
||||
|
||||
// Reverse back money or convert to reduction
|
||||
if ($object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_STANDARD) {
|
||||
if ($object->type == Facture::TYPE_CREDIT_NOTE || $object->type == Facture::TYPE_DEPOSIT || $object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_SITUATION) {
|
||||
// For credit note only
|
||||
if ($object->type == Facture::TYPE_CREDIT_NOTE && $object->statut == 1 && $object->paye == 0 && $usercanissuepayment)
|
||||
{
|
||||
@@ -5108,7 +5108,7 @@ elseif ($id > 0 || !empty($ref))
|
||||
}
|
||||
|
||||
// For standard invoice with excess received
|
||||
if ($object->type == Facture::TYPE_STANDARD && empty($object->paye) && ($object->total_ttc - $totalpaye - $totalcreditnotes - $totaldeposits) < 0 && $usercancreate && empty($discount->id))
|
||||
if (($object->type == Facture::TYPE_STANDARD || $object->type == Facture::TYPE_SITUATION) && empty($object->paye) && $resteapayer < 0 && $usercancreate && empty($discount->id))
|
||||
{
|
||||
print '<a class="butAction'.($conf->use_javascript_ajax ? ' reposition' : '').'" href="'.$_SERVER["PHP_SELF"].'?facid='.$object->id.'&action=converttoreduc">'.$langs->trans('ConvertExcessReceivedToReduc').'</a>';
|
||||
}
|
||||
|
||||
@@ -989,6 +989,7 @@ if ($resql)
|
||||
|
||||
$facturestatic->id = $obj->id;
|
||||
$facturestatic->ref = $obj->ref;
|
||||
$facturestatic->ref_client = $obj->ref_client;
|
||||
$facturestatic->type = $obj->type;
|
||||
$facturestatic->total_ht = $obj->total_ht;
|
||||
$facturestatic->total_tva = $obj->total_vat;
|
||||
@@ -1077,7 +1078,7 @@ if ($resql)
|
||||
// Customer ref
|
||||
if (!empty($arrayfields['f.ref_client']['checked']))
|
||||
{
|
||||
print '<td class="nowrap">';
|
||||
print '<td class="nowrap tdoverflowmax200">';
|
||||
print $obj->ref_client;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
|
||||
@@ -123,23 +123,25 @@ $year_end = $tmpe['year'];
|
||||
$nbofyear = ($year_end - $year_start) + 1;
|
||||
|
||||
$commonparams=array();
|
||||
$commonparams['modecompta']=$modecompta;
|
||||
$commonparams['sortorder'] = $sortorder;
|
||||
$commonparams['sortfield'] = $sortfield;
|
||||
if (!empty($modecompta)) $commonparams['modecompta']=$modecompta;
|
||||
if (!empty($sortorder)) $commonparams['sortorder'] = $sortorder;
|
||||
if (!empty($sortfield)) $commonparams['sortfield'] = $sortfield;
|
||||
|
||||
$headerparams = array();
|
||||
$headerparams['date_startyear'] = $date_startyear;
|
||||
$headerparams['date_startmonth'] = $date_startmonth;
|
||||
$headerparams['date_startday'] = $date_startday;
|
||||
$headerparams['date_endyear'] = $date_endyear;
|
||||
$headerparams['date_endmonth'] = $date_endmonth;
|
||||
$headerparams['date_endday'] = $date_endday;
|
||||
if (!empty($date_startyear)) $headerparams['date_startyear'] = $date_startyear;
|
||||
if (!empty($date_startmonth)) $headerparams['date_startmonth'] = $date_startmonth;
|
||||
if (!empty($date_startday)) $headerparams['date_startday'] = $date_startday;
|
||||
if (!empty($date_endyear)) $headerparams['date_endyear'] = $date_endyear;
|
||||
if (!empty($date_endmonth)) $headerparams['date_endmonth'] = $date_endmonth;
|
||||
if (!empty($date_endday)) $headerparams['date_endday'] = $date_endday;
|
||||
if (!empty($year)) $headerparams['year'] = $year;
|
||||
if (!empty($month)) $headerparams['month'] = $month;
|
||||
$headerparams['q'] = $q;
|
||||
|
||||
$tableparams = array();
|
||||
$tableparams['search_categ'] = $selected_cat;
|
||||
$tableparams['search_soc'] = $selected_soc;
|
||||
$tableparams['search_type'] = $selected_type;
|
||||
if (!empty($selected_cat)) $tableparams['search_categ'] = $selected_cat;
|
||||
if (!empty($selected_soc)) $tableparams['search_soc'] = $selected_soc;
|
||||
if (!empty($selected_type)) $tableparams['search_type'] = $selected_type;
|
||||
$tableparams['subcat'] = ($subcat === true)?'yes':'';
|
||||
|
||||
// Adding common parameters
|
||||
|
||||
@@ -433,8 +433,8 @@ if ($resql)
|
||||
}
|
||||
|
||||
$param = '&socid='.$socid;
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage;
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit;
|
||||
if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.urlencode($contextpage);
|
||||
if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.urlencode($limit);
|
||||
if ($search_all) $param .= '&search_all='.urlencode($search_all);
|
||||
if ($day) $param .= '&day='.urlencode($day);
|
||||
if ($month) $param .= '&month='.urlencode($month);
|
||||
@@ -455,9 +455,9 @@ if ($resql)
|
||||
if ($search_amount_no_tax) $param .= '&search_amount_no_tax='.urlencode($search_amount_no_tax);
|
||||
if ($search_amount_all_tax) $param .= '&search_amount_all_tax='.urlencode($search_amount_all_tax);
|
||||
if ($search_status >= 0) $param .= "&search_status=".urlencode($search_status);
|
||||
if ($show_files) $param .= '&show_files='.$show_files;
|
||||
if ($option) $param .= "&option=".$option;
|
||||
if ($optioncss != '') $param .= '&optioncss='.$optioncss;
|
||||
if ($show_files) $param .= '&show_files='.urlencode($show_files);
|
||||
if ($option) $param .= "&option=".urlencode($option);
|
||||
if ($optioncss != '') $param .= '&optioncss='.urlencode($optioncss);
|
||||
// Add $param from extra fields
|
||||
include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php';
|
||||
|
||||
@@ -879,7 +879,7 @@ if ($resql)
|
||||
// Supplier ref
|
||||
if (!empty($arrayfields['f.ref_supplier']['checked']))
|
||||
{
|
||||
print '<td class="nowrap">';
|
||||
print '<td class="nowrap tdoverflowmax200">';
|
||||
print $obj->ref_supplier;
|
||||
print '</td>';
|
||||
if (!$i) $totalarray['nbfield']++;
|
||||
|
||||
Reference in New Issue
Block a user