mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-05 09:08:09 +01:00
Compare commits
6 Commits
35b012919a
...
06df40b89c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
06df40b89c | ||
|
|
66d79d69af | ||
|
|
65c199fbf1 | ||
|
|
6c54e4792b | ||
|
|
cd5e0b7e9d | ||
|
|
09aca511e8 |
@@ -5676,48 +5676,6 @@ parameters:
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Property Form\:\:\$cache_conditions_paiements has no type specified\.$#'
|
||||
identifier: missingType.property
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Property Form\:\:\$cache_demand_reason has no type specified\.$#'
|
||||
identifier: missingType.property
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Property Form\:\:\$cache_invoice_subtype has no type specified\.$#'
|
||||
identifier: missingType.property
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Property Form\:\:\$cache_transport_mode has no type specified\.$#'
|
||||
identifier: missingType.property
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Property Form\:\:\$cache_types_fees has no type specified\.$#'
|
||||
identifier: missingType.property
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Property Form\:\:\$cache_types_paiements has no type specified\.$#'
|
||||
identifier: missingType.property
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Property Form\:\:\$cache_vatrates has no type specified\.$#'
|
||||
identifier: missingType.property
|
||||
count: 1
|
||||
path: ../../../htdocs/core/class/html.form.class.php
|
||||
|
||||
-
|
||||
message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#'
|
||||
identifier: function.unresolvableReturnType
|
||||
@@ -14064,18 +14022,6 @@ parameters:
|
||||
count: 1
|
||||
path: ../../../htdocs/reception/card.php
|
||||
|
||||
-
|
||||
message: '#^Loose comparison using \=\= between ''''\|''CommandeFournisseur'' and ''commande'' will always evaluate to false\.$#'
|
||||
identifier: equal.alwaysFalse
|
||||
count: 2
|
||||
path: ../../../htdocs/reception/card.php
|
||||
|
||||
-
|
||||
message: '#^Loose comparison using \=\= between ''''\|''CommandeFournisseur'' and ''propal'' will always evaluate to false\.$#'
|
||||
identifier: equal.alwaysFalse
|
||||
count: 2
|
||||
path: ../../../htdocs/reception/card.php
|
||||
|
||||
-
|
||||
message: '#^Negated boolean expression is always true\.$#'
|
||||
identifier: booleanNot.alwaysTrue
|
||||
@@ -14088,12 +14034,6 @@ parameters:
|
||||
count: 1
|
||||
path: ../../../htdocs/reception/card.php
|
||||
|
||||
-
|
||||
message: '#^Result of && is always false\.$#'
|
||||
identifier: booleanAnd.alwaysFalse
|
||||
count: 8
|
||||
path: ../../../htdocs/reception/card.php
|
||||
|
||||
-
|
||||
message: '#^Variable \$extrafields in empty\(\) always exists and is not falsy\.$#'
|
||||
identifier: empty.variable
|
||||
@@ -14244,24 +14184,6 @@ parameters:
|
||||
count: 2
|
||||
path: ../../../htdocs/reception/contact.php
|
||||
|
||||
-
|
||||
message: '#^Loose comparison using \=\= between ''''\|''CommandeFournisseur'' and ''commande'' will always evaluate to false\.$#'
|
||||
identifier: equal.alwaysFalse
|
||||
count: 1
|
||||
path: ../../../htdocs/reception/dispatch.php
|
||||
|
||||
-
|
||||
message: '#^Loose comparison using \=\= between ''''\|''CommandeFournisseur'' and ''propal'' will always evaluate to false\.$#'
|
||||
identifier: equal.alwaysFalse
|
||||
count: 1
|
||||
path: ../../../htdocs/reception/dispatch.php
|
||||
|
||||
-
|
||||
message: '#^Result of && is always false\.$#'
|
||||
identifier: booleanAnd.alwaysFalse
|
||||
count: 4
|
||||
path: ../../../htdocs/reception/dispatch.php
|
||||
|
||||
-
|
||||
message: '#^Variable \$objectsrc might not be defined\.$#'
|
||||
identifier: variable.undefined
|
||||
@@ -16116,12 +16038,6 @@ parameters:
|
||||
count: 1
|
||||
path: ../../../htdocs/webhook/triggerhistory_list.php
|
||||
|
||||
-
|
||||
message: '#^Loose comparison using \=\= between ''auto'' and ''auto'' will always evaluate to true\.$#'
|
||||
identifier: equal.alwaysTrue
|
||||
count: 1
|
||||
path: ../../../htdocs/webportal/class/context.class.php
|
||||
|
||||
-
|
||||
message: '#^Result of && is always false\.$#'
|
||||
identifier: booleanAnd.alwaysFalse
|
||||
@@ -16134,24 +16050,6 @@ parameters:
|
||||
count: 1
|
||||
path: ../../../htdocs/webportal/class/html.formcardwebportal.class.php
|
||||
|
||||
-
|
||||
message: '#^Comparison operation "\<\=" between int\<2, max\> and 1 is always false\.$#'
|
||||
identifier: smallerOrEqual.alwaysFalse
|
||||
count: 1
|
||||
path: ../../../htdocs/webportal/class/html.formlistwebportal.class.php
|
||||
|
||||
-
|
||||
message: '#^Offset ''total'' on \*NEVER\* in isset\(\) always exists and is not nullable\.$#'
|
||||
identifier: isset.offset
|
||||
count: 1
|
||||
path: ../../../htdocs/webportal/class/html.formlistwebportal.class.php
|
||||
|
||||
-
|
||||
message: '#^Result of && is always false\.$#'
|
||||
identifier: booleanAnd.alwaysFalse
|
||||
count: 1
|
||||
path: ../../../htdocs/webportal/class/html.formlistwebportal.class.php
|
||||
|
||||
-
|
||||
message: '#^Call to function is_array\(\) with list\<string\> will always evaluate to true\.$#'
|
||||
identifier: function.alreadyNarrowedType
|
||||
|
||||
@@ -169,7 +169,7 @@ if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x'
|
||||
|
||||
include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php';
|
||||
|
||||
if (GETPOST('action') == 'upload' && $user->hasRight('blockedlog', 'read')) { // read is read/upload for blockedlog
|
||||
if (GETPOST('action') == 'export' && $user->hasRight('blockedlog', 'read')) { // read is read/export for blockedlog
|
||||
$error = 0;
|
||||
|
||||
$previoushash = '';
|
||||
@@ -184,16 +184,20 @@ if (GETPOST('action') == 'upload' && $user->hasRight('blockedlog', 'read')) { /
|
||||
$error++;
|
||||
}
|
||||
|
||||
$dates = dol_get_first_day(GETPOSTINT('yeartoexport'), GETPOSTINT('monthtoexport') ? GETPOSTINT('monthtoexport') : 1);
|
||||
$datee = dol_get_last_day(GETPOSTINT('yeartoexport'), GETPOSTINT('monthtoexport') ? GETPOSTINT('monthtoexport') : 12);
|
||||
|
||||
if ($datee >= dol_now()) {
|
||||
setEventMessages($langs->trans("ErrorPeriodMustBePastToAllowExport"), null, "errors");
|
||||
$error++;
|
||||
}
|
||||
|
||||
if (!$error) {
|
||||
// Get the ID of the first line qualified
|
||||
$sql = "SELECT rowid,date_creation,tms,user_fullname,action,amounts,element,fk_object,date_object,ref_object,signature,fk_user,object_data";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."blockedlog";
|
||||
$sql .= " WHERE entity = ".((int) $conf->entity);
|
||||
if (GETPOSTINT('monthtoexport') > 0 || GETPOSTINT('yeartoexport') > 0) {
|
||||
$dates = dol_get_first_day(GETPOSTINT('yeartoexport'), GETPOSTINT('monthtoexport') ? GETPOSTINT('monthtoexport') : 1);
|
||||
$datee = dol_get_last_day(GETPOSTINT('yeartoexport'), GETPOSTINT('monthtoexport') ? GETPOSTINT('monthtoexport') : 12);
|
||||
$sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'";
|
||||
}
|
||||
$sql .= " AND date_creation BETWEEN '".$db->idate($dates)."' AND '".$db->idate($datee)."'";
|
||||
$sql .= " ORDER BY rowid ASC"; // Required so we get the first one
|
||||
$sql .= $db->plimit(1);
|
||||
|
||||
@@ -518,7 +522,7 @@ if ($action == 'deletefile') {
|
||||
|
||||
print '<form method="POST" id="exportArchives" action="'.$_SERVER["PHP_SELF"].'?output=file">';
|
||||
print '<input type="hidden" name="token" value="'.newToken().'">';
|
||||
print '<input type="hidden" name="action" value="upload">';
|
||||
print '<input type="hidden" name="action" value="export">';
|
||||
|
||||
print '<div class="right">';
|
||||
|
||||
|
||||
@@ -100,11 +100,6 @@ $cancel = GETPOST('cancel', 'alpha');
|
||||
$backtopage = GETPOST('backtopage', 'alpha'); // if not set, a default page will be used
|
||||
$backtopageforcancel = GETPOST('backtopageforcancel', 'alpha'); // if not set, $backtopage will be used
|
||||
$lineid = GETPOSTINT('lineid');
|
||||
$userid = GETPOSTINT('userid');
|
||||
$search_ref = GETPOST('sf_ref', 'alpha') ? GETPOST('sf_ref', 'alpha') : GETPOST('search_ref', 'alpha');
|
||||
$search_societe = GETPOST('search_societe', 'alpha');
|
||||
$search_montant_ht = GETPOST('search_montant_ht', 'alpha');
|
||||
$search_montant_ttc = GETPOST('search_montant_ttc', 'alpha');
|
||||
$origin = GETPOST('origin', 'alpha');
|
||||
$originid = (GETPOSTINT('originid') ? GETPOSTINT('originid') : GETPOSTINT('origin_id')); // For backward compatibility
|
||||
$fac_rec = GETPOSTINT('fac_rec');
|
||||
@@ -123,8 +118,6 @@ $hideref = (GETPOSTINT('hideref') ? GETPOSTINT('hideref') : (getDolGlobalString(
|
||||
// Number of lines for predefined product/service choices
|
||||
$NBLINES = 4;
|
||||
|
||||
$usehm = getDolGlobalInt('MAIN_USE_HOURMIN_IN_DATE_RANGE');
|
||||
|
||||
$object = new Facture($db);
|
||||
$extrafields = new ExtraFields($db);
|
||||
|
||||
@@ -1274,7 +1267,7 @@ if (empty($reshook)) {
|
||||
$sourceinvoice = GETPOSTINT('fac_avoir');
|
||||
if (!($sourceinvoice > 0) && !getDolGlobalString('INVOICE_CREDIT_NOTE_STANDALONE')) {
|
||||
$error++;
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("CorrectInvoice")), null, 'errors');
|
||||
setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("InvoiceAvoirAskCombo")), null, 'errors');
|
||||
$action = 'create';
|
||||
}
|
||||
|
||||
@@ -4309,7 +4302,7 @@ if ($action == 'create') {
|
||||
});
|
||||
</script>';
|
||||
$text = '<label>'.$tmp.$langs->transnoentities("InvoiceAvoirAsk").'</label> ';
|
||||
$text .= '<select class="flat valignmiddle" name="fac_avoir" id="fac_avoir"';
|
||||
$text .= '<select class="flat valignmiddle minwidth200" name="fac_avoir" id="fac_avoir"';
|
||||
if (!$optionsav || $invoice_predefined->id > 0) {
|
||||
$text .= ' disabled';
|
||||
}
|
||||
@@ -4325,9 +4318,10 @@ if ($action == 'create') {
|
||||
print $desc;
|
||||
|
||||
print '<div id="credit_note_options" class="clearboth paddingtop marginbottomonly">';
|
||||
print '<div class="marginleftlarge"><input type="checkbox" name="invoiceAvoirWithLines" id="invoiceAvoirWithLines" value="1" onclick="$(\'#credit_note_options input[type=checkbox]\').not(this).prop(\'checked\', false);" '.(GETPOSTINT('invoiceAvoirWithLines') > 0 ? 'checked' : '').' /> <label for="invoiceAvoirWithLines" class="small">'.$langs->trans('invoiceAvoirWithLines')."</label></div>";
|
||||
//print '<br>';
|
||||
print '<div class="marginleftlarge"><input type="checkbox" name="invoiceAvoirWithPaymentRestAmount" id="invoiceAvoirWithPaymentRestAmount" value="1" onclick="$(\'#credit_note_options input[type=checkbox]\').not(this).prop(\'checked\', false);" '.(GETPOSTINT('invoiceAvoirWithPaymentRestAmount') > 0 ? 'checked' : '').' /> <label for="invoiceAvoirWithPaymentRestAmount" class="small">'.$langs->trans('invoiceAvoirWithPaymentRestAmount')."</label></div>";
|
||||
print '<div class="marginleftlargeondesktop"><input type="checkbox" name="invoiceAvoirWithLines" id="invoiceAvoirWithLines" value="1" onclick="$(\'#credit_note_options input[type=checkbox]\').not(this).prop(\'checked\', false);" '.(GETPOSTINT('invoiceAvoirWithLines') > 0 ? 'checked' : '').' /> <label for="invoiceAvoirWithLines" class="small">'.$langs->trans('invoiceAvoirWithLines')."</label></div>";
|
||||
print '<div class="marginleftlargeondesktop"><input type="checkbox" name="invoiceAvoirWithPaymentRestAmount" id="invoiceAvoirWithPaymentRestAmount" value="1" onclick="$(\'#credit_note_options input[type=checkbox]\').not(this).prop(\'checked\', false);" '.(GETPOSTINT('invoiceAvoirWithPaymentRestAmount') > 0 ? 'checked' : '').' /> <label for="invoiceAvoirWithPaymentRestAmount" class="small">'.$langs->trans('invoiceAvoirWithPaymentRestAmount')."</label></div>";
|
||||
// Adding a checkbox: "Automatically consume the credit note to close the corrected invoice" is better to be into
|
||||
// the confirm popup when we validate the credit note
|
||||
print '</div>';
|
||||
|
||||
print '</div></div>'."\n";
|
||||
|
||||
@@ -2107,7 +2107,7 @@ class Form
|
||||
dol_syslog(get_class($this) . "::select_remises", LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
print '<select id="select_' . $htmlname . '" class="flat maxwidthonsmartphone" name="' . $htmlname . '">';
|
||||
print '<select id="select_' . $htmlname . '" class="flat maxwidth200onsmartphone" name="' . $htmlname . '">';
|
||||
$num = $this->db->num_rows($resql);
|
||||
|
||||
$qualifiedlines = $num;
|
||||
|
||||
@@ -30,7 +30,7 @@ InvoiceReplacementShort=Replacement
|
||||
InvoiceReplacementAsk=Replacement invoice for invoice
|
||||
InvoiceReplacementDesc=<b>Replacement invoice</b> is used to completely replace an invoice with no payment already received.<br><br>Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'.
|
||||
InvoiceAvoir=Credit note
|
||||
InvoiceAvoirAsk=Credit note
|
||||
InvoiceAvoirAsk=Credit note from
|
||||
InvoiceAvoirAskCombo=Invoice to correct
|
||||
InvoiceAvoirDesc=The <b>credit note</b> is a negative invoice used to correct the fact that an invoice shows an amount that differs from the amount actually paid (eg the customer paid too much by mistake, or will not pay the complete amount since some products were returned).
|
||||
invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice
|
||||
|
||||
@@ -49,6 +49,7 @@ TotalTTCIfInvoiceSeeCompleteDataForDetail=Amount of event. Total including tax i
|
||||
TypeOfEvent=Type of event
|
||||
TotalForAction=Total for event %s
|
||||
SecretKey=Secret key
|
||||
ErrorPeriodMustBePastToAllowExport=Export into archives is allowed only if period is completely past
|
||||
|
||||
## logTypes
|
||||
logBILL_DELETE=Customer invoice logically deleted
|
||||
|
||||
@@ -1241,6 +1241,9 @@ td.wordbreak img, td.wordbreakimp img {
|
||||
.marginleftlarge {
|
||||
margin-<?php print $left; ?>: 20px !important;
|
||||
}
|
||||
.marginleftlargeondesktop {
|
||||
margin-<?php print $left; ?>: 20px;
|
||||
}
|
||||
.paddinglarge {
|
||||
padding: 6px !important;
|
||||
}
|
||||
@@ -2280,6 +2283,10 @@ datalist {
|
||||
font-size: <?php print is_numeric($fontsize) ? ((int) $fontsize + 3).'px' : $fontsize; ?> !important;
|
||||
}
|
||||
|
||||
.marginleftlargeondesktop {
|
||||
margin-<?php print $left; ?>: 0;
|
||||
}
|
||||
|
||||
div#login_left, div#login_right {
|
||||
min-width: 150px !important;
|
||||
max-width: 240px !important;
|
||||
|
||||
@@ -1397,6 +1397,9 @@ td.wordbreak img, td.wordbreakimp img {
|
||||
.marginleftlarge {
|
||||
margin-<?php print $left; ?>: 20px !important;
|
||||
}
|
||||
.marginleftlargeondesktop {
|
||||
margin-<?php print $left; ?>: 20px;
|
||||
}
|
||||
.paddinglarge {
|
||||
padding: 6px !important;
|
||||
}
|
||||
@@ -1587,8 +1590,12 @@ span.fa.fa-plus-circle.paddingleft {
|
||||
margin-left: 1px;
|
||||
}
|
||||
.listofinvoicetype {
|
||||
height: 28px;
|
||||
min-height: 1.8em;
|
||||
vertical-align: middle;
|
||||
padding-top: 7px;
|
||||
padding-bottom: 1px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.divsocialnetwork:not(:last-child) {
|
||||
padding-<?php print $right; ?>: 20px;
|
||||
@@ -2395,6 +2402,10 @@ select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-select
|
||||
font-size: <?php print is_numeric($fontsize) ? ($fontsize).'px' : $fontsize; ?> !important;
|
||||
}
|
||||
|
||||
.marginleftlargeondesktop {
|
||||
margin-<?php print $left; ?>: 0;
|
||||
}
|
||||
|
||||
.login_vertical_align {
|
||||
padding-left: 0;
|
||||
}
|
||||
@@ -2436,7 +2447,7 @@ select.widthcentpercentminusxx, span.widthcentpercentminusxx:not(.select2-select
|
||||
height: 40px !important;
|
||||
}
|
||||
div.tabBar .listofinvoicetype table tr, div.tabBar .listofinvoicetype table tr td {
|
||||
height: 28px !important;
|
||||
height: 2.2em !important;
|
||||
}
|
||||
|
||||
div.tabs div.tab a.tab {
|
||||
|
||||
Reference in New Issue
Block a user