From 0be0c1a1c15bf072bf2199cddf5a634db78825c7 Mon Sep 17 00:00:00 2001 From: mrozniecki Date: Tue, 10 Sep 2024 14:01:04 +0200 Subject: [PATCH 001/126] Backport #yogosha18281 --- htdocs/core/class/translate.class.php | 12 ++++++++++-- htdocs/core/js/lib_head.js.php | 2 +- htdocs/core/lib/functions.lib.php | 11 +++++++++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/translate.class.php b/htdocs/core/class/translate.class.php index 4b538021da4..4a5cd7e493a 100644 --- a/htdocs/core/class/translate.class.php +++ b/htdocs/core/class/translate.class.php @@ -580,7 +580,7 @@ class Translate */ private function getTradFromKey($key) { - global $conf, $db; + global $db; if (!is_string($key)) { //xdebug_print_function_stack('ErrorBadValueForParamNotAString'); @@ -660,7 +660,7 @@ class Translate } } - // Crypt string into HTML + // Encode string into HTML $str = htmlentities($str, ENT_COMPAT, $this->charset_output); // Do not convert simple quotes in translation (strings in html are embraced by "). Use dol_escape_htmltag around text in HTML content // Restore reliable HTML tags into original translation string @@ -670,6 +670,10 @@ class Translate $str ); + // Remove dangerous sequence we should never have. Not needed into a translated response. + // %27 is entity code for ' and is replaced by browser automatically when translation is inside a javascript code called by a click like on a href link. + $str = str_replace(array('%27', '''), '', $str); + if ($maxsize) { $str = dol_trunc($str, $maxsize); } @@ -739,6 +743,10 @@ class Translate $str = sprintf($str, $param1, $param2, $param3, $param4, $param5); // Replace %s and %d except for FormatXXX strings. } + // Remove dangerous sequence we should never have. Not needed into a translated response. + // %27 is entity code for ' and is replaced by browser automatically when translation is inside a javascript code called by a click like on a href link. + $str = str_replace(array('%27', '''), '', $str); + return $str; } else { /*if ($key[0] == '$') { diff --git a/htdocs/core/js/lib_head.js.php b/htdocs/core/js/lib_head.js.php index c33cb7eb748..33f8526b000 100644 --- a/htdocs/core/js/lib_head.js.php +++ b/htdocs/core/js/lib_head.js.php @@ -996,7 +996,7 @@ function document_preview(file, type, title) var ValidImageTypes = ["image/gif", "image/jpeg", "image/png", "image/webp"]; var showOriginalSizeButton = false; - console.log("document_preview A click was done. file="+file+", type="+type+", title="+title); + console.log("document_preview A click was done: file="+file+", type="+type+", title="+title); if ($.inArray(type, ValidImageTypes) < 0) { /* Not an image */ diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 785889eab78..f3bbbc682c0 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -10349,7 +10349,7 @@ function getAdvancedPreviewUrl($modulepart, $relativepath, $alldata = 0, $param if ($alldata == 1) { if ($isAllowedForPreview) { - return array('target'=>'_blank', 'css'=>'documentpreview', 'url'=>DOL_URL_ROOT.'/document.php?modulepart='.$modulepart.'&attachment=0&file='.urlencode($relativepath).($param ? '&'.$param : ''), 'mime'=>dol_mimetype($relativepath)); + return array('target'=>'_blank', 'css'=>'documentpreview', 'url'=>DOL_URL_ROOT.'/document.php?modulepart='.urlencode($modulepart).'&attachment=0&file='.urlencode($relativepath).($param ? '&'.$param : ''), 'mime'=>dol_mimetype($relativepath)); } else { return array(); } @@ -10357,7 +10357,14 @@ function getAdvancedPreviewUrl($modulepart, $relativepath, $alldata = 0, $param // old behavior, return a string if ($isAllowedForPreview) { - return 'javascript:document_preview(\''.dol_escape_js(DOL_URL_ROOT.'/document.php?modulepart='.$modulepart.'&attachment=0&file='.urlencode($relativepath).($param ? '&'.$param : '')).'\', \''.dol_mimetype($relativepath).'\', \''.dol_escape_js($langs->trans('Preview')).'\')'; + $tmpurl = DOL_URL_ROOT.'/document.php?modulepart='.urlencode($modulepart).'&attachment=0&file='.urlencode($relativepath).($param ? '&'.$param : ''); + $title = $langs->trans("Preview"); + //$title = '%27-alert(document.domain)-%27'; + //$tmpurl = 'file='.urlencode("'-alert(document.domain)-'_small.jpg"); + + // We need to urlencode the parameter after the dol_escape_js($tmpurl) because $tmpurl may contain n url with param file=abc%27def if file has a ' inside. + // and when we click on href with this javascript string, a urlcode is done by browser, converted the %27 of file param + return 'javascript:document_preview(\''.urlencode(dol_escape_js($tmpurl)).'\', \''.urlencode(dol_mimetype($relativepath)).'\', \''.urlencode(dol_escape_js($title)).'\')'; } else { return ''; } From 1ee3c5e5a078f090f314e5731dd7efd930082e43 Mon Sep 17 00:00:00 2001 From: mrozniecki Date: Fri, 13 Sep 2024 12:08:58 +0200 Subject: [PATCH 002/126] Backport fix title --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index f3bbbc682c0..12cacbb1549 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -10358,7 +10358,7 @@ function getAdvancedPreviewUrl($modulepart, $relativepath, $alldata = 0, $param // old behavior, return a string if ($isAllowedForPreview) { $tmpurl = DOL_URL_ROOT.'/document.php?modulepart='.urlencode($modulepart).'&attachment=0&file='.urlencode($relativepath).($param ? '&'.$param : ''); - $title = $langs->trans("Preview"); + $title = $langs->transnoentities("Preview"); //$title = '%27-alert(document.domain)-%27'; //$tmpurl = 'file='.urlencode("'-alert(document.domain)-'_small.jpg"); From bad8ee865d1b78eeda7960388350921b0c4afe2c Mon Sep 17 00:00:00 2001 From: mrozniecki Date: Fri, 20 Sep 2024 14:34:34 +0200 Subject: [PATCH 003/126] Fix title encode --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 12cacbb1549..a0dfce0b0e0 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -10364,7 +10364,7 @@ function getAdvancedPreviewUrl($modulepart, $relativepath, $alldata = 0, $param // We need to urlencode the parameter after the dol_escape_js($tmpurl) because $tmpurl may contain n url with param file=abc%27def if file has a ' inside. // and when we click on href with this javascript string, a urlcode is done by browser, converted the %27 of file param - return 'javascript:document_preview(\''.urlencode(dol_escape_js($tmpurl)).'\', \''.urlencode(dol_mimetype($relativepath)).'\', \''.urlencode(dol_escape_js($title)).'\')'; + return 'javascript:document_preview(\''.urlencode(dol_escape_js($tmpurl)).'\', \''.urlencode(dol_mimetype($relativepath)).'\', \''.rawurlencode(dol_escape_js($title)).'\')'; } else { return ''; } From f1868ee1626426ce8517bbb4ac92472b74d03e39 Mon Sep 17 00:00:00 2001 From: Etienne BENDER Date: Mon, 9 Dec 2024 10:50:29 +0100 Subject: [PATCH 004/126] Replace dol_syslog throws by default log level --- htdocs/core/lib/functions.lib.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index dd1536e1245..4c423494196 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1658,8 +1658,11 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename = if (!empty($message)) { // Test log level $logLevels = array(LOG_EMERG=>'EMERG', LOG_ALERT=>'ALERT', LOG_CRIT=>'CRITICAL', LOG_ERR=>'ERR', LOG_WARNING=>'WARN', LOG_NOTICE=>'NOTICE', LOG_INFO=>'INFO', LOG_DEBUG=>'DEBUG'); + $defaultLogLevel = getDolGlobalInt('DEFAULT_SYSLOG_LEVEL', $logLevels[LOG_ERR]); + if (!array_key_exists($level, $logLevels)) { - throw new Exception('Incorrect log level'); + dol_syslog('The given log level does not correspond to any of the available levels: '.$level, LOG_ERR); + $level = $defaultLogLevel; } if ($level > $conf->global->SYSLOG_LEVEL) { return; From a96d13d5aaf7f81bdf57aa7b445e425ee954bd12 Mon Sep 17 00:00:00 2001 From: Etienne BENDER Date: Mon, 9 Dec 2024 10:56:35 +0100 Subject: [PATCH 005/126] Add translation for bad log level --- htdocs/core/lib/functions.lib.php | 7 +++---- htdocs/langs/en_US/errors.lang | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 4c423494196..19839800a7a 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1627,7 +1627,7 @@ function dol_ucwords($string, $encoding = "UTF-8") */ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename = '', $restricttologhandler = '', $logcontext = null) { - global $conf, $user, $debugbar; + global $conf, $user, $debugbar, $langs; // If syslog module enabled if (empty($conf->syslog->enabled)) { @@ -1658,11 +1658,10 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename = if (!empty($message)) { // Test log level $logLevels = array(LOG_EMERG=>'EMERG', LOG_ALERT=>'ALERT', LOG_CRIT=>'CRITICAL', LOG_ERR=>'ERR', LOG_WARNING=>'WARN', LOG_NOTICE=>'NOTICE', LOG_INFO=>'INFO', LOG_DEBUG=>'DEBUG'); - $defaultLogLevel = getDolGlobalInt('DEFAULT_SYSLOG_LEVEL', $logLevels[LOG_ERR]); if (!array_key_exists($level, $logLevels)) { - dol_syslog('The given log level does not correspond to any of the available levels: '.$level, LOG_ERR); - $level = $defaultLogLevel; + dol_syslog($langs->trans('ErrorBadLogLevel', $level), LOG_ERR); + $level = getDolGlobalInt('DEFAULT_SYSLOG_LEVEL', $logLevels[LOG_ERR]); } if ($level > $conf->global->SYSLOG_LEVEL) { return; diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index 046809b9405..ccc5bc87eea 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -155,6 +155,7 @@ ErrorPHPNeedModule=Error, your PHP must have module %s installed to use t ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s ErrorWarehouseMustDiffers=Source and target warehouses must differs ErrorBadFormat=Bad format! +ErrorBadLogLevel=The given log level does not correspond to any of the available levels: %s ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled From 6aee2db1d4d344f7e498964c44dfbd44650e0a5e Mon Sep 17 00:00:00 2001 From: Etienne BENDER Date: Tue, 17 Dec 2024 09:01:04 +0100 Subject: [PATCH 006/126] Remove use of getDolGlobalInt() --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 19839800a7a..b876186836b 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1661,7 +1661,7 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename = if (!array_key_exists($level, $logLevels)) { dol_syslog($langs->trans('ErrorBadLogLevel', $level), LOG_ERR); - $level = getDolGlobalInt('DEFAULT_SYSLOG_LEVEL', $logLevels[LOG_ERR]); + $level = $logLevels[LOG_ERR]; } if ($level > $conf->global->SYSLOG_LEVEL) { return; From e0e559466901be1ca12184706e9535bc4653aaa2 Mon Sep 17 00:00:00 2001 From: tnegre Date: Mon, 16 Dec 2024 11:10:52 +0100 Subject: [PATCH 007/126] add invoice type label --- htdocs/core/class/commondocgenerator.class.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 6d452392368..343bfa52ea3 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -779,6 +779,14 @@ abstract class CommonDocGenerator $resarray[$array_key.'_total_discount_ht'] = ''; } + if ($object->element == 'facture' || $object->element == 'invoice_supplier') { + if ($object->type == 0) { + $resarray[$array_key.'_type_label'] = $outputlangs->transnoentities("PdfInvoiceTitle"); + } else { + $resarray[$array_key.'_type_label'] = (empty($object)) ? '' : $object->getLibType(0); + } + } + // Fetch project information if there is a project assigned to this object if ($object->element != "project" && !empty($object->fk_project) && $object->fk_project > 0) { if (!is_object($object->project)) { From 34cf08d940b688a681222d09b1fd6b75309865b6 Mon Sep 17 00:00:00 2001 From: tnegre Date: Tue, 17 Dec 2024 10:30:59 +0100 Subject: [PATCH 008/126] update ODT templates --- .../invoices/template_invoice.odt | Bin 38351 -> 35166 bytes .../template_supplier_invoices.odt | Bin 25866 -> 35018 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/htdocs/install/doctemplates/invoices/template_invoice.odt b/htdocs/install/doctemplates/invoices/template_invoice.odt index 925d9f087cdfcd447f7966dd14e6a88a4ec413f6..5d44e1a606cf1772eeb30cda382057c8438c9ad7 100644 GIT binary patch literal 35166 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 diff --git a/htdocs/install/doctemplates/supplier_invoices/template_supplier_invoices.odt b/htdocs/install/doctemplates/supplier_invoices/template_supplier_invoices.odt index 8ece83c989c9ff688337dbb0edf6febd47eb0dcf..b53c0c79f48b46e8fe3a2bc77f7764df45fbc8c3 100644 GIT binary patch literal 35018 zcmb4q1yoz#@@}x=#k~bevEoik39iK*io3fL+={!qYjJm{xEFVq;1HZVe)qlm)?07g zb=Ugmtdr#IocU(5Gc$YUJ16o|aPYVQ01^NIl#12R8DvAF0RRC1>~BK=YjbO3CwDtz zeLFiVb3=V6b6Xo`7aJocTYX1!Mc)He}N$(A^i*NP5%Er z{s9!WwJ|X_b$0j{j3XPfzM-M9mGRr5tpl^6vxCDwC~nqPZ~%EJ#DA0nVE>Q!|Azgy zjsIuxUoV7j&;LK{n>Ee``VP$hGbs}*TYV?v|0YHJA9UH-+Bw_(qws&I&B@l*>c87a z_8+vFTkD$|J2DHIJ6Y@7IsO-w|H;&URNCp=7+d`hw5M<*r+Ba`v?ahm`Z%)oQrAmfQe0cHdQ2ilPqi|lUBV08rM zt2FHO&Zu}*g@UrgB+MF)=y}?hS_)TqmKPi8 z$amoBqyghW`;*)Y;Ow`KmZmjoMWskyI`mTME#&jtV@1-j z#CCOw=xi)Z9%5Jd;{drH>xYfP=ED%oFfKvuVxDcAtBpVDRh#t3Xn&ZkFit#)6IH#^ zS;@jrLHq5idGQULJM<#Fi6D3eNeX`k1DKKMqCTA?o;=p0(g!9av8IbI4pyWtRRZ4O(m?yq;h+ z;GIVWmArEI*0+7?ck2A<7I@{}<~9F3G5q!O+6+0y3yVv@6gpR1H_cYqZ){sU+nKKt z+s?tJKe@n2&DCq-j_&!Tr)Lvg;O#s8XZu9Y@r#p)10hIwqTZFtjX&Sk=N15R=Fg*N zg%2E_q!Bxj1nwlv?LN4*-_E;ePF{FiDv_RkmXmceL_I$>MbfsA$O<#v-Ik^XZ?%6f z4I@6l!6gpPa5UtoX%{kVBOgTBM{6$pg{@UYY~D7WhlPvBh(DDr;Cy)6E^tyTmQ_2TPeEcc zz8z$wc_T=gSV@cH<1Izg97(z^7HyM{v3_}Ls8eRjANBke$%sfj8sCMl-yFpS{=YfO zKXK-0?Brx_W9s;ivvg=`x)Ogw^WM;%?gRa>k-?Eo2MYWcO@eb2F)yE9A z*Y@WfxTrroem}z`WBt$(NriI6pGiE{9)J3~{5}fmT_UEd@)|Eg^JJvt9P6pnDF=GB z;wLgz@)BB~^Q#tp+HJ6K=1T9#%xo9sE+y60(o)`8`FMV7Q~TN5 zljn8WMQ>DN(2uc;pLJYv&%yZD-y3FrhJ)JsuTwB=jpONi#;TASA>qoGDHc%uPvbRE zSLbzPR@HZT;W7I1@A_G@9|K$zTX^|8+@P<*w}mOEqON)$=12G#XzpZ-^;=ahh6f%l z?Z0j53dj|m{POa2a^^zE#%=xC`0{fa8jFkstOrLCM%nL3muqJtLN?OSp z)Dglzr0ktzje-%=SwHW=9DW}2r|rRo%eHtj_&8wJ%G%`++p=Z)Axf5cV$vnK?Te1= z#71W38QuIztl!HoDO`H&O$7%Z!vebxNhHp2!rfLC7qfMBcQkFt(5Mu2$vMa5^gPr; zz0&-B^+4)0in>W*knRjg$Q=mvG}*23v`c-fE}d4*{H)yv3DYNt)lcF{3S1k*ISI zP-*jEq;hNk1l%Ktxt?m=l>9T86k9UJI4n;XxM9(ilKJ>{3z!+QlxX708KXTXhcIkc zUSw!nBN&7R=|2S8YA)z38HPVBH5ySFSe_N9OWGe~jr25pFo8n~5)tbhSHkny3jU;ulwrjDx&PDin36-AJa7Lpn;Xr${= z9*-=_l@Y+0wv*Tu_uZtKRbaYR=%(C8o*XBUqDH}`--SqA<@Gh?;_&^AKZ2p+pzzmv zTkVE%ucBx^DN{7f^^K1*Z9rVyO-x=t=xxPeV~1kTc{!FfKYwcNWbi)w06Z=Mgy~S$ z66|#O*TwolP^1DW=WnqaGV?yLQeigz7&TI^Eb6wu-i$)|t@W-SnTHQJm8NdYBO;}v zQ2V5nbb+gI#C>GuN)^Duy=i-aGFZlf{h|oj?;dIru+LR5is)d9S5(i+P(>6Ce{ zV08zg!OG}C`_4cwAL0zNc=>p}UA^0P*0mVa6(!VCluuXo?LzB zRd~S|yAqOp`EDW%6^+f9%OT34g0}Z6J0st6*v;r0jLO1m)QHmiyWG#P1Cf~dMiil| zze!z@2@rtp1BSE9P1fR|mT?unl27&AE#RObQ7e!^Xf3}DIYY!kV_c}UyP{>wipcaM zo(}jPDo)`P#7+20=Q*|WO|I`xn97n6QK|PU^AqGnU;KyYDl5)arCB4NTZr|r2hxPn z>eR9$h6XjTKd$;aX}oM~FH0-C>-{m8wjTO;h<0A7v?5_CPfY;bsgiNfycKVUqRIDo zg0fPFv-WE-UYN%7pAeK(mB)8XhayBUoeo5q~LXzZP*Y{$)Na!Q!p`mU?5D z6V1-YLgkm5Q1hgW3GRRmC%hI_!ZJz4K+5__o<=>wQrWQgRX2mhW=xa9@BTUk{WEp( z{zhi_mnF}~#;@J$4Ke{b6w6gADO|K`4nLxdbL4$RxTG-mK>}E|aQX{NsREIqgE814 z=JDlG3m)@@?nGo7t39eDawMv{&w{zFM^z-rP}qMKSf@VmOBzG~;FOM3N{A=|05BH+bT>$E zwH+YCZ{7|7cx!s3l||pd!QkT)pb}7hpyH(bKtw@G!$e8SLPJLVneht)H!}y{S9%(5 zRt9bkZbmLK4jwUP0VSY-FqeqRcUc2|WeX7=PDLQSgdmTa*jEEtUL$!v2{Ca|DOD+j zpGrT(ROMwfRMiD#^u*Q7)U}MH^_;czEj3MDOjX2;v^4Csf9UJ#TN-G&8Ok`DsGFOb znOQkmIe?t3%$#iOJnSvqT;1LwLD2}H#HdgLLg@QXP<(1AIR=!H0Lt}^r5D1P>?y)(HZLK4)t(`f;^zsz6qXwVIILrpvYYB z*aB;RsCx+1GZq@`sN-*I8tiHj=;;>gZ5iwB=*wB>Z%$mfE!kDa@$lQjsyt3q?rmWhooXCKp zq>#dlgxbvTnyi@0oaoa0w1(Ws=Hld*>a618lA_;r71b5xwM})ui>fPYnrq9NnwkOw zp+RBL@E~YJ1oT%TG%)}g8v#uXgl2?66BD2bsnE0pXj&RHwW24pW-u}j8eafSEQ6-y zK~u`188y({NN7nav?dc;)byvcW4f`uucm9Nv=mz03~efbHZ(%pd)j{Y%(e9nH4ZIy zOs!P(KwBoZn*KmLrnh@4(gtd>hMJ1{+Z(4lN~gN&y33)%P0;Cf=ty_vP;cwso{EK` zrq!vAt%=s1>5e~t{tS%GjZKe?%q-204=&A)EG#aJjzWhP_lD-5<_DmE*LLRrLRYrd z$G6TVwy&4A50?%g>zB`ai$mM1^B3!*n;V;ZOVEooD0p+?aA)~?YwY@P>FIL)@bK^e zd~IFzP`S`f;`+j+}=DqKR~V?ZlO;PH?Oa+Z-D@XLe)v;v;hFk zR!I>-Ww+(i4pdK)1+RmZ)s8!tl@%-gbeqOu8s?4rW%~k7iL`iXZtK>g@y7HJ>XmVu zv=uHHI2IXt!3-INkpKcgHeaN$0^d&ngXO_tonpV%Q=4m;9A0wYSW#FbY@r;WTcqA> zPH=z9drSvF1PhBm#^ga3J3wM8&w9k3L^7kx9Esg=f@qT)@xXHu+V1^+2r_BJPa{Px z#VEy?&d|WnU{yQ!uWeXyRB@F0pW*-c2mb7e>->3`Cxr9lkIt1dhSOe_j2mU?D;TU z)d^54_dX%nSPeAI@;IB{@PzZN>iZ77ox9Vye~#DP05rWq(l;13?(+`{G`;VlvxT{# zyQxPy`LO)p|aO&(Os8wj(T_3B%6iIP~lV3xX1ZOvS-jm#|D($ zE*~OJw&eNB&0qJlb>I!1?1Y#*ou+r)@^{~PKj$vrdEfX1BvjE_tilV!H`<4c_vP6($<_

gL&PF-+YK9^D)EmJZX9*<%KF7 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 jUx%REKSA)Nd85A==G7F@&=G4A!~e?R From c6a7d8cef1d0e80812199980e93efbf7008e1d6c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 18 Dec 2024 09:19:48 +0100 Subject: [PATCH 009/126] NEW Accountancy - Show subledger account in thirdparty --- htdocs/accountancy/admin/index.php | 46 ++- .../accountancy/bookkeeping/listbyaccount.php | 275 +++++++++++------- htdocs/core/lib/company.lib.php | 20 +- 3 files changed, 225 insertions(+), 116 deletions(-) diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index 39a52e9621a..0c422f24fc6 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -1,13 +1,13 @@ - * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2024 Alexandre Spangaro - * Copyright (C) 2014-2015 Ari Elbaz (elarifr) - * Copyright (C) 2014 Marcos García - * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry - * Copyright (C) 2017 Laurent Destailleur - * Copyright (C) 2021 Ferran Marcet +/* Copyright (C) 2013-2014 Olivier Geffroy + * Copyright (C) 2013-2014 Florian Henry + * Copyright (C) 2013-2024 Alexandre Spangaro + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) + * Copyright (C) 2014 Marcos García + * Copyright (C) 2014 Juanjo Menent + * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2017 Laurent Destailleur + * Copyright (C) 2021 Ferran Marcet * Copyright (C) 2024 Frédéric France * * This program is free software; you can redistribute it and/or modify @@ -329,6 +329,20 @@ if ($action == 'setenablevatreversecharge') { } } +if ($action == 'setenabletabonthirdparty') { + $setenabletabonthirdparty = GETPOSTINT('value'); + $res = dolibarr_set_const($db, "ACCOUNTING_ENABLE_TABONTHIRDPARTY", $setenabletabonthirdparty, 'yesno', 0, '', $conf->entity); + if (!($res > 0)) { + $error++; + } + + if (!$error) { + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); + } else { + setEventMessages($langs->trans("Error"), null, 'mesgs'); + } +} + /* * View @@ -646,6 +660,20 @@ if (getDolGlobalString('ACCOUNTING_FORCE_ENABLE_VAT_REVERSE_CHARGE')) { } print ''; +print ''; +print ''; +print $form->textwithpicto($langs->trans("ACCOUNTING_ENABLE_TABONTHIRDPARTY"), $langs->trans("ACCOUNTING_ENABLE_TABONTHIRDPARTY_DESC")).''; +if (getDolGlobalString('ACCOUNTING_ENABLE_TABONTHIRDPARTY')) { + print ''; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; +} else { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; +} +print ''; + print ''; print ''; diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 7834b2a6d0f..930baff6c5e 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -30,6 +30,7 @@ require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/accounting.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/lettering.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/bookkeeping.class.php'; require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingjournal.class.php'; @@ -51,6 +52,8 @@ $langs->loadLangs(array("accountancy", "compta")); $action = GETPOST('action', 'aZ09'); $socid = GETPOSTINT('socid'); +$userid = GETPOSTINT('userid'); +$mode = (GETPOST('mode', 'alpha') ? GETPOST('mode', 'alpha') : 'customer'); // Only for tab view $massaction = GETPOST('massaction', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); $toselect = GETPOST('toselect', 'array'); @@ -305,6 +308,13 @@ if (empty($reshook)) { $toselect = array(); } + if (!empty($socid)) { + $param = '&socid='.$socid; + } + if (!empty($userid)) { + $param = '&userid='.$userid; + } + if (!empty($search_date_start)) { $filter['t.doc_date>='] = $search_date_start; $param .= '&search_date_startmonth='.$search_date_startmonth.'&search_date_startday='.$search_date_startday.'&search_date_startyear='.$search_date_startyear; @@ -425,33 +435,6 @@ if (empty($reshook)) { $param = '&type='.$type.$param; } - //if ($action == 'delbookkeepingyearconfirm' && $user->hasRight('accounting', 'mouvements', 'supprimer')_tous) { - // $delmonth = GETPOST('delmonth', 'int'); - // $delyear = GETPOST('delyear', 'int'); - // if ($delyear == -1) { - // $delyear = 0; - // } - // $deljournal = GETPOST('deljournal', 'alpha'); - // if ($deljournal == -1) { - // $deljournal = 0; - // } - // - // if (!empty($delmonth) || !empty($delyear) || !empty($deljournal)) { - // $result = $object->deleteByYearAndJournal($delyear, $deljournal, '', ($delmonth > 0 ? $delmonth : 0)); - // if ($result < 0) { - // setEventMessages($object->error, $object->errors, 'errors'); - // } else { - // setEventMessages("RecordDeleted", null, 'mesgs'); - // } - // - // // Make a redirect to avoid to launch the delete later after a back button - // header("Location: ".$_SERVER["PHP_SELF"].($param ? '?'.$param : '')); - // exit; - // } else { - // setEventMessages("NoRecordDeleted", null, 'warnings'); - // } - //} - // Mass actions $objectclass = 'Bookkeeping'; $objectlabel = 'Bookkeeping'; @@ -617,6 +600,125 @@ $title_page .= ')'; $help_url = 'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double'; llxHeader('', $title_page, $help_url, '', 0, 0, '', '', '', 'mod-accountancy accountancy-consultation page-'.(($type == 'sub') ? 'sub' : '').'ledger'); +if (!empty($socid) || !empty($userid)) { + $companystatic = new Societe($db); + $res = $companystatic->fetch($socid); + if ($res > 0) { + $tmpobject = $object; + $object = $companystatic; // $object must be of type Societe when calling societe_prepare_head + $head = societe_prepare_head($companystatic); + $object = $tmpobject; + + print dol_get_fiche_head($head, 'accounting', $langs->trans("ThirdParty"), -1, 'company'); + + dol_banner_tab($companystatic, 'socid', '', ($user->socid ? 0 : 1), 'rowid', 'nom'); + + print '

'; + + print '
'; + print ''; + + // Type Prospect/Customer/Supplier + print ''; + + // Customer code + if ($companystatic->client && !empty($companystatic->code_client)) { + print ''; + print ''; + } + // Supplier code + if ($companystatic->fournisseur && !empty($companystatic->code_fournisseur)) { + print ''; + print ''; + } + + print '
'.$langs->trans('NatureOfThirdParty').''; + print $companystatic->getTypeUrl(1); + print '
'; + print $langs->trans('CustomerCode').''; + print showValueWithClipboardCPButton(dol_escape_htmltag($companystatic->code_client)); + $tmpcheck = $companystatic->check_codeclient(); + if ($tmpcheck != 0 && $tmpcheck != -5) { + print ' ('.$langs->trans("WrongCustomerCode").')'; + } + print '
'; + print $langs->trans('SupplierCode').''; + print showValueWithClipboardCPButton(dol_escape_htmltag($companystatic->code_fournisseur)); + $tmpcheck = $companystatic->check_codefournisseur(); + if ($tmpcheck != 0 && $tmpcheck != -5) { + print ' ('.$langs->trans("WrongSupplierCode").')'; + } + print '
'; + print '
'; + print dol_get_fiche_end(); + + // Choice of mode (customer / supplier / employee) + if (!empty($conf->dol_use_jmobile)) { + print "\n".'
'."\n"; + } + + if (!empty($socid) && $companystatic->client && !empty($companystatic->code_compta_client)) { + if ($mode != 'customer') { + if (!empty($companystatic->code_compta_client)) { + $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client; + } else { + $subledger_start_account = $subledger_end_account = ''; + } + print ''; + } else { + print ''; + } + + print $langs->trans("CustomerAccountancyCodeShort"); + if ($mode != 'customer') { + print ''; + } else { + print ''; + } + } + + if (!empty($socid) && $companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) { + if ($mode != 'supplier') { + if (!empty($companystatic->code_compta_fournisseur)) { + $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur; + } else { + $subledger_start_account = $subledger_end_account = ''; + } + print ''; + } else { + print ''; + } + print $langs->trans("SupplierAccountancyCodeShort"); + if ($mode != 'supplier') { + print ''; + } else { + print ''; + } + } + + if (!empty($userid) && !empty($userstatic->code_compta_user)) { + if ($mode != 'employee') { + print ''; + } else { + print ''; + } + print $langs->trans("UserAccountancyCodeShort"); + if ($mode != 'employee') { + print ''; + } else { + print ''; + } + } + + if (!empty($conf->dol_use_jmobile)) { + print '
'; + } else { + print '
'; + } + print '
'; + } +} + // List $nbtotalofrecords = ''; if (!getDolGlobalInt('MAIN_DISABLE_FULL_SCANLIST')) { @@ -650,47 +752,6 @@ if (!$error) { $arrayofselected = is_array($toselect) ? $toselect : array(); - -///if ($action == 'delbookkeepingyear') { -// $form_question = array(); -// $delyear = GETPOST('delyear', 'int'); -// $deljournal = GETPOST('deljournal', 'alpha'); -// -// if (empty($delyear)) { -// $delyear = dol_print_date(dol_now(), '%Y'); -// } -// $month_array = array(); -// for ($i = 1; $i <= 12; $i++) { -// $month_array[$i] = $langs->trans("Month".sprintf("%02d", $i)); -// } -// $year_array = $formaccounting->selectyear_accountancy_bookkepping($delyear, 'delyear', 0, 'array'); -// $journal_array = $formaccounting->select_journal($deljournal, 'deljournal', '', 1, 1, 1, '', 0, 1); -// -// $form_question['delmonth'] = array( -// 'name' => 'delmonth', -// 'type' => 'select', -// 'label' => $langs->trans('DelMonth'), -// 'values' => $month_array, -// 'default' => '' -// ); -// $form_question['delyear'] = array( -// 'name' => 'delyear', -// 'type' => 'select', -// 'label' => $langs->trans('DelYear'), -// 'values' => $year_array, -// 'default' => $delyear -// ); -// $form_question['deljournal'] = array( -// 'name' => 'deljournal', -// 'type' => 'other', // We don't use select here, the journal_array is already a select html component -// 'label' => $langs->trans('DelJournal'), -// 'value' => $journal_array, -// 'default' => $deljournal -// ); -// -// $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"].'?'.$param, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt', $langs->transnoentitiesnoconv("RegistrationInAccounting")), 'delbookkeepingyearconfirm', $form_question, '', 1, 300); -//} - // Print form confirm $formconfirm = ''; print $formconfirm; @@ -722,6 +783,12 @@ if ($optioncss != '') { } print ''; print ''; +if (!empty($socid)) { + print ''; +} +if (!empty($userid)) { + print ''; +} print ''; print ''; print ''; @@ -735,15 +802,18 @@ if ($reshook < 0) { $newcardbutton = empty($hookmanager->resPrint) ? '' : $hookmanager->resPrint; if (empty($reshook)) { - $newcardbutton = dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.'/accountancy/bookkeeping/list.php?'.$param); - if ($type == 'sub') { - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly')); - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); - } else { - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); - $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param, '', 1, array('morecss' => 'marginleftonly')); + // Remove button navigation if in thirdparty tab mode + if (empty($socid) && empty($userid)) { + $newcardbutton = dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/list.php?' . $param); + if ($type == 'sub') { + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly')); + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); + } else { + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly btnTitleSelected')); + $newcardbutton .= dolGetButtonTitle($langs->trans('GroupBySubAccountAccounting'), '', 'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param, '', 1, array('morecss' => 'marginleftonly')); + } + $newcardbutton .= dolGetButtonTitleSeparator(); } - $newcardbutton .= dolGetButtonTitleSeparator(); $newcardbutton .= dolGetButtonTitle($langs->trans('NewAccountingMvt'), '', 'fa fa-plus-circle paddingleft', DOL_URL_ROOT.'/accountancy/bookkeeping/card.php?action=create'); } @@ -763,17 +833,7 @@ if ($massaction == 'preunletteringauto') { } elseif ($massaction == 'predeletebookkeepingwriting') { print $form->formconfirm($_SERVER["PHP_SELF"], $langs->trans("ConfirmMassDeleteBookkeepingWriting"), $langs->trans("ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)), "deletebookkeepingwriting", null, '', 0, 200, 500, 1); } -//DeleteMvt=Supprimer des lignes d'opérations de la comptabilité -//DelMonth=Mois à effacer -//DelYear=Année à supprimer -//DelJournal=Journal à supprimer -//ConfirmDeleteMvt=Cette action supprime les lignes des opérations pour l'année/mois et/ou pour le journal sélectionné (au moins un critère est requis). Vous devrez utiliser de nouveau la fonctionnalité '%s' pour retrouver vos écritures dans la comptabilité. -//ConfirmDeleteMvtPartial=Cette action supprime l'écriture de la comptabilité (toutes les lignes opérations liées à une même écriture seront effacées). -//$topicmail = "Information"; -//$modelmail = "accountingbookkeeping"; -//$objecttmp = new BookKeeping($db); -//$trackid = 'bk'.$object->id; include DOL_DOCUMENT_ROOT.'/core/tpl/massactions_pre.tpl.php'; $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; @@ -789,8 +849,8 @@ if (preg_match('/^asc/i', $sortorder)) { $sortorder = "desc"; } -// Warning to explain why list of record is not consistent with the other list view (missing a lot of lines) -if ($type == 'sub') { +// Warning to explain why the list of record is not consistent with the other list view (missing a lot of lines) +if ($type == 'sub' && !$socid) { print info_admin($langs->trans("WarningRecordWithoutSubledgerAreExcluded")); } @@ -811,17 +871,19 @@ if ($type == 'sub') { } else { $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', $langs->trans('to'), array(), 1, 1, 'maxwidth200'); } -$stringforfirstkey = $langs->trans("KeyboardShortcut"); -if ($conf->browser->name == 'chrome') { - $stringforfirstkey .= ' ALT +'; -} elseif ($conf->browser->name == 'firefox') { - $stringforfirstkey .= ' ALT + SHIFT +'; -} else { - $stringforfirstkey .= ' CTL +'; -} -$moreforfilter .= '   '; -$moreforfilter .= '   '; -$moreforfilter .= << SCRIPT; +} $moreforfilter .= ''; $moreforfilter .= ''; -$moreforfilter .= '
'; -$moreforfilter .= $langs->trans('AccountingCategory').': '; -$moreforfilter .= '
'; -$moreforfilter .= $formaccounting->select_accounting_category($search_account_category, 'search_account_category', 1, 0, 0, 0); -$moreforfilter .= '
'; -$moreforfilter .= '
'; +if (empty($socid)) { + $moreforfilter .= '
'; + $moreforfilter .= $langs->trans('AccountingCategory') . ': '; + $moreforfilter .= '
'; + $moreforfilter .= $formaccounting->select_accounting_category($search_account_category, 'search_account_category', 1, 0, 0, 0); + $moreforfilter .= '
'; + $moreforfilter .= '
'; +} $parameters = array(); $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters, $object, $action); // Note that $action and $object may have been modified by hook diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index a4682c21a13..82c6aa3062a 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -141,6 +141,22 @@ function societe_prepare_head(Societe $object) $h++; } + if (isModEnabled('accounting') && getDolGlobalString('ACCOUNTING_ENABLE_TABONTHIRDPARTY') && ($user->hasRight('accounting', 'mouvements', 'lire'))) { + // link to customer account by default + if (!empty($object->code_compta_client)) { + $subledger_start_account = $subledger_end_account = $object->code_compta_client; + } else if (!empty($object->code_compta_fournisseur)) { + $subledger_start_account = $subledger_end_account = $object->code_compta_fournisseur; + } else { + $subledger_start_account = $subledger_end_account = ''; + } + + $head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?socid='.$object->id.'&type=sub&search_accountancy_code_start='.$subledger_start_account.'&search_accountancy_code_end='.$subledger_end_account; + $head[$h][1] = $langs->trans("Accounting"); + $head[$h][2] = 'accounting'; + $h++; + } + if (isModEnabled('project') && ($user->hasRight('projet', 'lire'))) { $nbProject = 0; // Enable caching of thirdrparty count projects @@ -1402,7 +1418,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl print ''; // Action column if (getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; + print ''; print $form->showFilterButtons(); print ''; } @@ -1449,7 +1465,7 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '', $showuserl print $hookmanager->resPrint; // Action column if (!getDolGlobalString('MAIN_CHECKBOX_LEFT_COLUMN')) { - print ''; + print ''; print $form->showFilterButtons(); print ''; } From c92e7c337fe18337797351735f65fb274fc97339 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 18 Dec 2024 22:17:12 +0100 Subject: [PATCH 010/126] NEW Accountancy - Show subledger account in thirdparty --- .../accountancy/bookkeeping/listbyaccount.php | 31 +++++-------------- htdocs/core/lib/company.lib.php | 7 +++-- htdocs/langs/en_US/accountancy.lang | 1 + 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 930baff6c5e..f31adb6b613 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -52,7 +52,6 @@ $langs->loadLangs(array("accountancy", "compta")); $action = GETPOST('action', 'aZ09'); $socid = GETPOSTINT('socid'); -$userid = GETPOSTINT('userid'); $mode = (GETPOST('mode', 'alpha') ? GETPOST('mode', 'alpha') : 'customer'); // Only for tab view $massaction = GETPOST('massaction', 'alpha'); $confirm = GETPOST('confirm', 'alpha'); @@ -311,9 +310,6 @@ if (empty($reshook)) { if (!empty($socid)) { $param = '&socid='.$socid; } - if (!empty($userid)) { - $param = '&userid='.$userid; - } if (!empty($search_date_start)) { $filter['t.doc_date>='] = $search_date_start; @@ -600,7 +596,7 @@ $title_page .= ')'; $help_url = 'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double'; llxHeader('', $title_page, $help_url, '', 0, 0, '', '', '', 'mod-accountancy accountancy-consultation page-'.(($type == 'sub') ? 'sub' : '').'ledger'); -if (!empty($socid) || !empty($userid)) { +if (!empty($socid)) { $companystatic = new Societe($db); $res = $companystatic->fetch($socid); if ($res > 0) { @@ -611,7 +607,9 @@ if (!empty($socid) || !empty($userid)) { print dol_get_fiche_head($head, 'accounting', $langs->trans("ThirdParty"), -1, 'company'); - dol_banner_tab($companystatic, 'socid', '', ($user->socid ? 0 : 1), 'rowid', 'nom'); + $linkback = ''.$langs->trans("BackToList").''; + + dol_banner_tab($companystatic, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); print '
'; @@ -652,6 +650,8 @@ if (!empty($socid) || !empty($userid)) { print '
'; print dol_get_fiche_end(); + print info_admin($langs->trans("WarningThisPageContainsOnlyEntriesTransferredInAccounting")); + // Choice of mode (customer / supplier / employee) if (!empty($conf->dol_use_jmobile)) { print "\n".'
'."\n"; @@ -696,20 +696,6 @@ if (!empty($socid) || !empty($userid)) { } } - if (!empty($userid) && !empty($userstatic->code_compta_user)) { - if ($mode != 'employee') { - print ''; - } else { - print ''; - } - print $langs->trans("UserAccountancyCodeShort"); - if ($mode != 'employee') { - print ''; - } else { - print ''; - } - } - if (!empty($conf->dol_use_jmobile)) { print '
'; } else { @@ -786,9 +772,6 @@ print ''; if (!empty($socid)) { print ''; } -if (!empty($userid)) { - print ''; -} print ''; print ''; print ''; @@ -803,7 +786,7 @@ $newcardbutton = empty($hookmanager->resPrint) ? '' : $hookmanager->resPrint; if (empty($reshook)) { // Remove button navigation if in thirdparty tab mode - if (empty($socid) && empty($userid)) { + if (empty($socid)) { $newcardbutton = dolGetButtonTitle($langs->trans('ViewFlatList'), '', 'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/list.php?' . $param); if ($type == 'sub') { $newcardbutton .= dolGetButtonTitle($langs->trans('GroupByAccountAccounting'), '', 'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT . '/accountancy/bookkeeping/listbyaccount.php?' . $url_param, '', 1, array('morecss' => 'marginleftonly')); diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 82c6aa3062a..65a5599ef4e 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -145,13 +145,16 @@ function societe_prepare_head(Societe $object) // link to customer account by default if (!empty($object->code_compta_client)) { $subledger_start_account = $subledger_end_account = $object->code_compta_client; - } else if (!empty($object->code_compta_fournisseur)) { + $mode = 'customer'; + } elseif (!empty($object->code_compta_fournisseur)) { $subledger_start_account = $subledger_end_account = $object->code_compta_fournisseur; + $mode = 'supplier'; } else { $subledger_start_account = $subledger_end_account = ''; + $mode = 'customer'; } - $head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?socid='.$object->id.'&type=sub&search_accountancy_code_start='.$subledger_start_account.'&search_accountancy_code_end='.$subledger_end_account; + $head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?socid='.$object->id.'&mode='.$mode.'&type=sub&search_accountancy_code_start='.$subledger_start_account.'&search_accountancy_code_end='.$subledger_end_account; $head[$h][1] = $langs->trans("Accounting"); $head[$h][2] = 'accounting'; $h++; diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index c4e8cfb2e9f..2a0b514a2c2 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -313,6 +313,7 @@ ClickOnUseTutorialForHelp=Welcome on the section to generate your accountancy. C NotReconciled=Not reconciled WarningRecordWithoutSubledgerAreExcluded=Warning, all lines without subledger account defined are filtered and excluded from this view AccountRemovedFromCurrentChartOfAccount=Accounting account that does not exist in the current chart of accounts +WarningThisPageContainsOnlyEntriesTransferredInAccounting=Warning, this page only contains entries transferred to the accounting system. ## Admin BindingOptions=Options for the transfer in accountancy ApplyMassCategories=Apply mass categories From 72b408523724994f8df5ade4f80bf01750767e7a Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 18 Dec 2024 22:37:08 +0100 Subject: [PATCH 011/126] Translate --- htdocs/langs/en_US/accountancy.lang | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 2a0b514a2c2..0334fccd610 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -348,6 +348,8 @@ ACCOUNTING_LETTERING_NBLETTERS_DESC=Some accounting software only accepts a two- OptionsAdvanced=Advanced options ACCOUNTING_FORCE_ENABLE_VAT_REVERSE_CHARGE=Activate the management of VAT reverse charge on supplier purchases ACCOUNTING_FORCE_ENABLE_VAT_REVERSE_CHARGE_DESC=When this option is enabled, you can define that a supplier or a given vendor invoice must be transferred into accountancy differently: A additional debit and a credit line will generated into the accounting on 2 given accounts from the chart of account defined into the "%s" setup page. +ACCOUNTING_ENABLE_TABONTHIRDPARTY=Activate a tab on third-party cards to view the subsidiary ledger +ACCOUNTING_ENABLE_TABONTHIRDPARTY_DESC=When this option is enabled, a new tab is showing in third-party cards to view and manage accounting for the third-party as to reconcile, print & more ## Export NotExportLettering=Do not export the lettering when generating the file NotifiedExportDate=Flag not yet exported lines as Exported (to modify a line flagged as exported, you will need to delete the whole transaction and re-transfert it into accounting) From 602a1af348598cdf409891a4503f7c945923dd40 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 18 Dec 2024 22:44:56 +0100 Subject: [PATCH 012/126] Remove old code --- htdocs/accountancy/bookkeeping/listbyaccount.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index f31adb6b613..9d35e6e4d88 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -1534,13 +1534,6 @@ print $hookmanager->resPrint; print ""; print ''; -// TODO Replace this with mass delete action -//if ($user->hasRight('accounting', 'mouvements, 'supprimer_tous')) { -// print '
'."\n"; -// print ''.$langs->trans("DeleteMvt").''; -// print '
'; -//} - print ''; // End of page From 0d41500f95ea1d0739af46e99f2c2b54254e668c Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 18 Dec 2024 23:18:19 +0100 Subject: [PATCH 013/126] CI --- .../accountancy/bookkeeping/listbyaccount.php | 185 +++++++++--------- 1 file changed, 92 insertions(+), 93 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 9d35e6e4d88..e7e20c363fa 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -307,10 +307,9 @@ if (empty($reshook)) { $toselect = array(); } - if (!empty($socid)) { - $param = '&socid='.$socid; - } - + if (!empty($socid)) { + $param = '&socid='.$socid; + } if (!empty($search_date_start)) { $filter['t.doc_date>='] = $search_date_start; $param .= '&search_date_startmonth='.$search_date_startmonth.'&search_date_startday='.$search_date_startday.'&search_date_startyear='.$search_date_startyear; @@ -597,112 +596,112 @@ $help_url = 'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_ llxHeader('', $title_page, $help_url, '', 0, 0, '', '', '', 'mod-accountancy accountancy-consultation page-'.(($type == 'sub') ? 'sub' : '').'ledger'); if (!empty($socid)) { - $companystatic = new Societe($db); - $res = $companystatic->fetch($socid); - if ($res > 0) { - $tmpobject = $object; - $object = $companystatic; // $object must be of type Societe when calling societe_prepare_head - $head = societe_prepare_head($companystatic); - $object = $tmpobject; + $companystatic = new Societe($db); + $res = $companystatic->fetch($socid); + if ($res > 0) { + $tmpobject = $object; + $object = $companystatic; // $object must be of type Societe when calling societe_prepare_head + $head = societe_prepare_head($companystatic); + $object = $tmpobject; - print dol_get_fiche_head($head, 'accounting', $langs->trans("ThirdParty"), -1, 'company'); + print dol_get_fiche_head($head, 'accounting', $langs->trans("ThirdParty"), -1, 'company'); $linkback = ''.$langs->trans("BackToList").''; dol_banner_tab($companystatic, 'socid', $linkback, ($user->socid ? 0 : 1), 'rowid', 'nom'); - print '
'; + print '
'; - print '
'; - print ''; + print '
'; + print '
'; - // Type Prospect/Customer/Supplier - print ''; + // Type Prospect/Customer/Supplier + print ''; - // Customer code - if ($companystatic->client && !empty($companystatic->code_client)) { - print ''; - print ''; - } - // Supplier code - if ($companystatic->fournisseur && !empty($companystatic->code_fournisseur)) { - print ''; - print ''; - } + // Customer code + if ($companystatic->client && !empty($companystatic->code_client)) { + print ''; + print ''; + } + // Supplier code + if ($companystatic->fournisseur && !empty($companystatic->code_fournisseur)) { + print ''; + print ''; + } - print '
'.$langs->trans('NatureOfThirdParty').''; - print $companystatic->getTypeUrl(1); - print '
'.$langs->trans('NatureOfThirdParty').''; + print $companystatic->getTypeUrl(1); + print '
'; - print $langs->trans('CustomerCode').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($companystatic->code_client)); - $tmpcheck = $companystatic->check_codeclient(); - if ($tmpcheck != 0 && $tmpcheck != -5) { - print ' ('.$langs->trans("WrongCustomerCode").')'; - } - print '
'; - print $langs->trans('SupplierCode').''; - print showValueWithClipboardCPButton(dol_escape_htmltag($companystatic->code_fournisseur)); - $tmpcheck = $companystatic->check_codefournisseur(); - if ($tmpcheck != 0 && $tmpcheck != -5) { - print ' ('.$langs->trans("WrongSupplierCode").')'; - } - print '
'; + print $langs->trans('CustomerCode').''; + print showValueWithClipboardCPButton(dol_escape_htmltag($companystatic->code_client)); + $tmpcheck = $companystatic->check_codeclient(); + if ($tmpcheck != 0 && $tmpcheck != -5) { + print ' ('.$langs->trans("WrongCustomerCode").')'; + } + print '
'; + print $langs->trans('SupplierCode').''; + print showValueWithClipboardCPButton(dol_escape_htmltag($companystatic->code_fournisseur)); + $tmpcheck = $companystatic->check_codefournisseur(); + if ($tmpcheck != 0 && $tmpcheck != -5) { + print ' ('.$langs->trans("WrongSupplierCode").')'; + } + print '
'; - print '
'; - print dol_get_fiche_end(); + print ''; + print '
'; + print dol_get_fiche_end(); print info_admin($langs->trans("WarningThisPageContainsOnlyEntriesTransferredInAccounting")); - // Choice of mode (customer / supplier / employee) - if (!empty($conf->dol_use_jmobile)) { - print "\n".'
'."\n"; - } + // Choice of mode (customer / supplier) + if (!empty($conf->dol_use_jmobile)) { + print "\n".'
'."\n"; + } - if (!empty($socid) && $companystatic->client && !empty($companystatic->code_compta_client)) { - if ($mode != 'customer') { - if (!empty($companystatic->code_compta_client)) { - $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client; - } else { - $subledger_start_account = $subledger_end_account = ''; - } - print ''; - } else { - print ''; - } + if (!empty($socid) && $companystatic->client && !empty($companystatic->code_compta_client)) { + if ($mode != 'customer') { + if (!empty($companystatic->code_compta_client)) { + $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client; + } else { + $subledger_start_account = $subledger_end_account = ''; + } + print ''; + } else { + print ''; + } - print $langs->trans("CustomerAccountancyCodeShort"); - if ($mode != 'customer') { - print ''; - } else { - print ''; - } - } + print $langs->trans("CustomerAccountancyCodeShort"); + if ($mode != 'customer') { + print ''; + } else { + print ''; + } + } - if (!empty($socid) && $companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) { - if ($mode != 'supplier') { - if (!empty($companystatic->code_compta_fournisseur)) { - $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur; - } else { - $subledger_start_account = $subledger_end_account = ''; - } - print ''; - } else { - print ''; - } - print $langs->trans("SupplierAccountancyCodeShort"); - if ($mode != 'supplier') { - print ''; - } else { - print ''; - } - } + if (!empty($socid) && $companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) { + if ($mode != 'supplier') { + if (!empty($companystatic->code_compta_fournisseur)) { + $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur; + } else { + $subledger_start_account = $subledger_end_account = ''; + } + print ''; + } else { + print ''; + } + print $langs->trans("SupplierAccountancyCodeShort"); + if ($mode != 'supplier') { + print ''; + } else { + print ''; + } + } - if (!empty($conf->dol_use_jmobile)) { - print '
'; - } else { - print '
'; - } - print '
'; - } + if (!empty($conf->dol_use_jmobile)) { + print '
'; + } else { + print '
'; + } + print '
'; + } } // List From 54c3470ed137c308ac439fb3c6462827005b0ba5 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Wed, 18 Dec 2024 23:21:34 +0100 Subject: [PATCH 014/126] CI --- htdocs/core/lib/company.lib.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index 65a5599ef4e..a28d7d61931 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -142,17 +142,17 @@ function societe_prepare_head(Societe $object) } if (isModEnabled('accounting') && getDolGlobalString('ACCOUNTING_ENABLE_TABONTHIRDPARTY') && ($user->hasRight('accounting', 'mouvements', 'lire'))) { - // link to customer account by default - if (!empty($object->code_compta_client)) { - $subledger_start_account = $subledger_end_account = $object->code_compta_client; + // link to customer account by default + if (!empty($object->code_compta_client)) { + $subledger_start_account = $subledger_end_account = $object->code_compta_client; $mode = 'customer'; - } elseif (!empty($object->code_compta_fournisseur)) { - $subledger_start_account = $subledger_end_account = $object->code_compta_fournisseur; + } elseif (!empty($object->code_compta_fournisseur)) { + $subledger_start_account = $subledger_end_account = $object->code_compta_fournisseur; $mode = 'supplier'; - } else { - $subledger_start_account = $subledger_end_account = ''; + } else { + $subledger_start_account = $subledger_end_account = ''; $mode = 'customer'; - } + } $head[$h][0] = DOL_URL_ROOT.'/accountancy/bookkeeping/listbyaccount.php?socid='.$object->id.'&mode='.$mode.'&type=sub&search_accountancy_code_start='.$subledger_start_account.'&search_accountancy_code_end='.$subledger_end_account; $head[$h][1] = $langs->trans("Accounting"); From 4859de8ffd46cc79141af3aa6ff1ccd3633b9faa Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Thu, 19 Dec 2024 06:47:30 +0100 Subject: [PATCH 015/126] CI --- htdocs/accountancy/bookkeeping/listbyaccount.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index e7e20c363fa..17663bf411b 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -656,7 +656,7 @@ if (!empty($socid)) { print "\n".'
'."\n"; } - if (!empty($socid) && $companystatic->client && !empty($companystatic->code_compta_client)) { + if ($companystatic->client && !empty($companystatic->code_compta_client)) { if ($mode != 'customer') { if (!empty($companystatic->code_compta_client)) { $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client; @@ -676,7 +676,7 @@ if (!empty($socid)) { } } - if (!empty($socid) && $companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) { + if ($companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) { if ($mode != 'supplier') { if (!empty($companystatic->code_compta_fournisseur)) { $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur; From 0da6e258817c8fa814d44302ba0f2d7ccf910623 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 19 Dec 2024 11:23:45 +0100 Subject: [PATCH 016/126] FIX backport from develop to avoid php warning --- htdocs/core/ajax/ajaxtooltip.php | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/htdocs/core/ajax/ajaxtooltip.php b/htdocs/core/ajax/ajaxtooltip.php index 129658ef8fd..4dcf81f0d95 100644 --- a/htdocs/core/ajax/ajaxtooltip.php +++ b/htdocs/core/ajax/ajaxtooltip.php @@ -34,23 +34,40 @@ if (!defined('NOREQUIREHTML')) { if (!defined('NOREQUIREAJAX')) { define('NOREQUIREAJAX', '1'); } +if (!defined('NOHEADERNOFOOTER')) { + define('NOHEADERNOFOOTER', '1'); +} + include '../../main.inc.php'; include_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php'; +/** + * @var Conf $conf + * @var DoliDB $db + * @var HookManager $hookmanager + * @var Translate $langs + * @var User $user + */ $id = GETPOST('id', 'aZ09'); $objecttype = GETPOST('objecttype', 'aZ09arobase'); // 'module' or 'myobject@mymodule', 'mymodule_myobject' $params = array('fromajaxtooltip' => 1); if (GETPOSTISSET('infologin')) { - $params['infologin'] = GETPOST('infologin', 'int'); + $params['infologin'] = GETPOSTINT('infologin'); } if (GETPOSTISSET('option')) { $params['option'] = GETPOST('option', 'restricthtml'); } - +$element_ref = ''; +if (is_numeric($id)) { + $id = (int) $id; +} else { + $element_ref = $id; + $id = 0; +} // Load object according to $element -$object = fetchObjectByElement($id, $objecttype); +$object = fetchObjectByElement($id, $objecttype, $element_ref); if (empty($object->element)) { httponly_accessforbidden('Failed to get object with fetchObjectByElement(id='.$id.', objecttype='.$objecttype.')'); } @@ -78,10 +95,11 @@ top_httphead(); $html = ''; if (is_object($object)) { + '@phan-var-force CommonObject $object'; if ($object->id > 0 || !empty($object->ref)) { /** @var CommonObject $object */ $html = $object->getTooltipContent($params); - } elseif ($res == 0) { + } elseif ($id > 0) { $html = $langs->trans('Deleted'); } unset($object); From be95c92c45814ac0e73dad46b70ac0ef5f8cd294 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 19 Dec 2024 18:07:02 +0100 Subject: [PATCH 017/126] Update functions.lib.php --- htdocs/core/lib/functions.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index b876186836b..7fe94ff83c4 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -1627,7 +1627,7 @@ function dol_ucwords($string, $encoding = "UTF-8") */ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename = '', $restricttologhandler = '', $logcontext = null) { - global $conf, $user, $debugbar, $langs; + global $conf, $user, $debugbar; // If syslog module enabled if (empty($conf->syslog->enabled)) { @@ -1660,7 +1660,7 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename = $logLevels = array(LOG_EMERG=>'EMERG', LOG_ALERT=>'ALERT', LOG_CRIT=>'CRITICAL', LOG_ERR=>'ERR', LOG_WARNING=>'WARN', LOG_NOTICE=>'NOTICE', LOG_INFO=>'INFO', LOG_DEBUG=>'DEBUG'); if (!array_key_exists($level, $logLevels)) { - dol_syslog($langs->trans('ErrorBadLogLevel', $level), LOG_ERR); + dol_syslog('Error Bad Log Level '.$level, LOG_ERR); $level = $logLevels[LOG_ERR]; } if ($level > $conf->global->SYSLOG_LEVEL) { From fedcec58a67614ba6619ededae1916a9b5572a0e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 19 Dec 2024 18:09:50 +0100 Subject: [PATCH 018/126] Update errors.lang --- htdocs/langs/en_US/errors.lang | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/langs/en_US/errors.lang b/htdocs/langs/en_US/errors.lang index ccc5bc87eea..046809b9405 100644 --- a/htdocs/langs/en_US/errors.lang +++ b/htdocs/langs/en_US/errors.lang @@ -155,7 +155,6 @@ ErrorPHPNeedModule=Error, your PHP must have module %s installed to use t ErrorOpenIDSetupNotComplete=You setup Dolibarr config file to allow OpenID authentication, but URL of OpenID service is not defined into constant %s ErrorWarehouseMustDiffers=Source and target warehouses must differs ErrorBadFormat=Bad format! -ErrorBadLogLevel=The given log level does not correspond to any of the available levels: %s ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled From e3c44568a026271e3c5c28a0dee01b405618ba2e Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Thu, 19 Dec 2024 18:31:15 +0100 Subject: [PATCH 019/126] Test github action --- .github/workflows/pr-18.yaml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr-18.yaml b/.github/workflows/pr-18.yaml index 692faf4ad2d..5523dc1a55c 100644 --- a/.github/workflows/pr-18.yaml +++ b/.github/workflows/pr-18.yaml @@ -20,12 +20,21 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Install GitHub CLI - run: | - sudo apt update - sudo apt install gh -y + #- name: Install GitHub CLI + # run: | + # sudo apt update + # sudo apt install gh -y - - name: Assign reviewer + - name: Assign reviewer method 1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + url: ${{ github.event.pull_request.html_url }} + run: | + gh pr edit "$url" --add-assignee rycks --add-reviewer rycks + gh pr merge "$url" --merge --auto + + + - name: Assign reviewer method 2 env: #REVIEWER: "eldy,lvessiller-opendsi,rycks" # Remplacez par le nom d'utilisateur GitHub du reviewer REVIEWER: "rycks" # Remplacez par le nom d'utilisateur GitHub du reviewer From 41309e3cc05641371255e89c7c955089c7d5fa1b Mon Sep 17 00:00:00 2001 From: John BOTELLA <68917336+thersane-john@users.noreply.github.com> Date: Fri, 20 Dec 2024 11:33:58 +0100 Subject: [PATCH 020/126] Add hook --- htdocs/core/tpl/objectline_view.tpl.php | 46 ++++++++++++++++++------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index 9e34f4ba39f..9c32e49b225 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -124,6 +124,12 @@ $coldisplay = 0;
$line, 'i' =>& $i, 'coldisplay' =>& $coldisplay]; +$reshook = $hookmanager->executeHooks('objectLineView_BeforeProduct', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; + if (($line->info_bits & 2) == 2) { print ''; $txt = ''; @@ -265,8 +271,12 @@ if (($line->info_bits & 2) == 2) { } } + + $parameters = ['line' => $line, 'i' =>& $i, 'coldisplay' =>& $coldisplay]; + $reshook = $hookmanager->executeHooks('objectLineView_BeforeProductExtrafield', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; // Line extrafield - if (!empty($extrafields)) { + if (!empty($extrafields) && empty($reshook)) { $temps = $line->showOptionals($extrafields, 'view', array(), '', '', 1, 'line'); if (!empty($temps)) { print '
'; @@ -276,19 +286,29 @@ if (($line->info_bits & 2) == 2) { } } -if ($user->hasRight('fournisseur', 'lire') && isset($line->fk_fournprice) && $line->fk_fournprice > 0 && !getDolGlobalString('SUPPLIER_HIDE_SUPPLIER_OBJECTLINES')) { - require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; - $productfourn = new ProductFournisseur($this->db); - $productfourn->fetch_product_fournisseur_price($line->fk_fournprice); - print '
'; - print ''.$langs->trans('Supplier').' : '.$productfourn->getSocNomUrl(1, 'supplier').' - '.$langs->trans('Ref').' : '; - // Supplier ref - if ($user->hasRight('produit', 'creer') || $user->hasRight('service', 'creer')) { // change required right here - print $productfourn->getNomUrl(); - } else { - print $productfourn->ref_supplier; + + + $parameters = ['line' => $line, 'i' =>& $i, 'coldisplay' =>& $coldisplay]; + $reshook = $hookmanager->executeHooks('objectLineView_ProductSupplier', $parameters, $object, $action); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + if (empty($reshook)) { + if ($user->hasRight('fournisseur', 'lire') && isset($line->fk_fournprice) && $line->fk_fournprice > 0 && !getDolGlobalString('SUPPLIER_HIDE_SUPPLIER_OBJECTLINES')) { + require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; + $productfourn = new ProductFournisseur($this->db); + $productfourn->fetch_product_fournisseur_price($line->fk_fournprice); + print '
'; + print ''.$langs->trans('Supplier').' : '.$productfourn->getSocNomUrl(1, 'supplier').' - '.$langs->trans('Ref').' : '; + // Supplier ref + if ($user->hasRight('produit', 'creer') || $user->hasRight('service', 'creer')) { // change required right here + print $productfourn->getNomUrl(); + } else { + print $productfourn->ref_supplier; + } + } } -} + + + if (isModEnabled('accounting') && !empty($line->fk_accounting_account) && $line->fk_accounting_account > 0) { $accountingaccount = new AccountingAccount($this->db); From 42974ced2653305b8189314bc4c3ded88c931758 Mon Sep 17 00:00:00 2001 From: John BOTELLA <68917336+thersane-john@users.noreply.github.com> Date: Fri, 20 Dec 2024 12:04:03 +0100 Subject: [PATCH 021/126] fix indent --- htdocs/core/tpl/objectline_view.tpl.php | 37 +++++++++++-------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php index 9c32e49b225..6be182273fe 100644 --- a/htdocs/core/tpl/objectline_view.tpl.php +++ b/htdocs/core/tpl/objectline_view.tpl.php @@ -286,29 +286,24 @@ if (($line->info_bits & 2) == 2) { } } - - - $parameters = ['line' => $line, 'i' =>& $i, 'coldisplay' =>& $coldisplay]; - $reshook = $hookmanager->executeHooks('objectLineView_ProductSupplier', $parameters, $object, $action); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - if (empty($reshook)) { - if ($user->hasRight('fournisseur', 'lire') && isset($line->fk_fournprice) && $line->fk_fournprice > 0 && !getDolGlobalString('SUPPLIER_HIDE_SUPPLIER_OBJECTLINES')) { - require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; - $productfourn = new ProductFournisseur($this->db); - $productfourn->fetch_product_fournisseur_price($line->fk_fournprice); - print '
'; - print ''.$langs->trans('Supplier').' : '.$productfourn->getSocNomUrl(1, 'supplier').' - '.$langs->trans('Ref').' : '; - // Supplier ref - if ($user->hasRight('produit', 'creer') || $user->hasRight('service', 'creer')) { // change required right here - print $productfourn->getNomUrl(); - } else { - print $productfourn->ref_supplier; - } +$parameters = ['line' => $line, 'i' =>& $i, 'coldisplay' =>& $coldisplay]; +$reshook = $hookmanager->executeHooks('objectLineView_ProductSupplier', $parameters, $object, $action); // Note that $action and $object may have been modified by hook +print $hookmanager->resPrint; +if (empty($reshook)) { + if ($user->hasRight('fournisseur', 'lire') && isset($line->fk_fournprice) && $line->fk_fournprice > 0 && !getDolGlobalString('SUPPLIER_HIDE_SUPPLIER_OBJECTLINES')) { + require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; + $productfourn = new ProductFournisseur($this->db); + $productfourn->fetch_product_fournisseur_price($line->fk_fournprice); + print '
'; + print ''.$langs->trans('Supplier').' : '.$productfourn->getSocNomUrl(1, 'supplier').' - '.$langs->trans('Ref').' : '; + // Supplier ref + if ($user->hasRight('produit', 'creer') || $user->hasRight('service', 'creer')) { // change required right here + print $productfourn->getNomUrl(); + } else { + print $productfourn->ref_supplier; } } - - - +} if (isModEnabled('accounting') && !empty($line->fk_accounting_account) && $line->fk_accounting_account > 0) { $accountingaccount = new AccountingAccount($this->db); From 0300209b3d205acfed8dbd8c8afda159c9c02d79 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Tue, 24 Dec 2024 02:00:37 +0100 Subject: [PATCH 022/126] Missing new line --- .github/workflows/pr-18-autolabel.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-18-autolabel.yaml b/.github/workflows/pr-18-autolabel.yaml index 4f7b08ea725..feb9ee17c97 100644 --- a/.github/workflows/pr-18-autolabel.yaml +++ b/.github/workflows/pr-18-autolabel.yaml @@ -18,4 +18,4 @@ jobs: with: repo-token: ${{ secrets.GITHUB_TOKEN }} configuration-path: .github/changed-lines-count-labeler.yml - continue-on-error: true \ No newline at end of file + continue-on-error: true From da7679dfda069a69040d904cee968f0c3feec87d Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Thu, 26 Dec 2024 11:15:22 +0100 Subject: [PATCH 023/126] FIX #28702 --- htdocs/core/actions_sendmails.inc.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/htdocs/core/actions_sendmails.inc.php b/htdocs/core/actions_sendmails.inc.php index 55e97603bc5..326d7c795c9 100644 --- a/htdocs/core/actions_sendmails.inc.php +++ b/htdocs/core/actions_sendmails.inc.php @@ -203,6 +203,15 @@ if (($action == 'send' || $action == 'relance') && !GETPOST('addfile') && !GETPO } elseif ($val == 'contact') { // Key selected means current contact $tmparray[] = dol_string_nospecial($contact->getFullName($langs), ' ', array(",")).' <'.$contact->email.'>'; $sendtoid[] = $contact->id; + } elseif ($val && $object->element == 'project' && empty($object->socid)) { // $val is the Id of a contact + $contact = new Contact($db); + $ret = $contact->fetch((int) $val); + if ($ret > 0 && !empty($contact->socid)) { + $thirdparty = new Societe($db); + $thirdparty->fetch($contact->socid); + $tmparray[] = $thirdparty->contact_get_property((int) $val, 'email'); + $sendtoid[] = ((int) $val); + } } elseif ($val) { // $val is the Id of a contact $tmparray[] = $thirdparty->contact_get_property((int) $val, 'email'); $sendtoid[] = ((int) $val); From ce851de22649286f9c250564d10d9b6fa72c0f40 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sun, 29 Dec 2024 10:28:56 +0100 Subject: [PATCH 024/126] FIX avoid php8 warnings --- htdocs/loan/card.php | 2 +- htdocs/loan/document.php | 3 +-- htdocs/loan/info.php | 3 +-- htdocs/loan/note.php | 3 +-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php index 803717ae085..ba51649a417 100644 --- a/htdocs/loan/card.php +++ b/htdocs/loan/card.php @@ -451,7 +451,7 @@ if ($id > 0) { $morehtmlref .= '
'; $morehtmlref .= ''; $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects(-1, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= $formproject->select_projects(-1, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1); $morehtmlref .= ''; $morehtmlref .= '
'; } else { diff --git a/htdocs/loan/document.php b/htdocs/loan/document.php index 74b96bf0877..37359c563e1 100644 --- a/htdocs/loan/document.php +++ b/htdocs/loan/document.php @@ -141,8 +141,7 @@ if ($object->id) { $object->totalpaid = $totalpaid; // To give a chance to dol_banner_tab to use already paid amount to show correct status - $morehtmlstatus = $morehtmlright; - dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlstatus); + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); print '
'; print '
'; diff --git a/htdocs/loan/info.php b/htdocs/loan/info.php index b437a73b845..aafc48768f7 100644 --- a/htdocs/loan/info.php +++ b/htdocs/loan/info.php @@ -103,8 +103,7 @@ $morehtmlref .= '
'; $linkback = '
'.$langs->trans("BackToList").''; -$morehtmlstatus = $morehtmlright; -dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlstatus); +dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); print '
'; print '
'; diff --git a/htdocs/loan/note.php b/htdocs/loan/note.php index 62d84a1adbc..750c5c4660e 100644 --- a/htdocs/loan/note.php +++ b/htdocs/loan/note.php @@ -130,8 +130,7 @@ if ($id > 0) { $object->totalpaid = $totalpaid; // To give a chance to dol_banner_tab to use already paid amount to show correct status - $morehtmlstatus = $morehtmlright; - dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlstatus); + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); print '
'; print '
'; From 5384b99cfcecb96943d5552e097ad8883f7757f0 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sun, 29 Dec 2024 10:36:58 +0100 Subject: [PATCH 025/126] Revert "FIX avoid php8 warnings" This reverts commit ce851de22649286f9c250564d10d9b6fa72c0f40. --- htdocs/loan/card.php | 2 +- htdocs/loan/document.php | 3 ++- htdocs/loan/info.php | 3 ++- htdocs/loan/note.php | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php index ba51649a417..803717ae085 100644 --- a/htdocs/loan/card.php +++ b/htdocs/loan/card.php @@ -451,7 +451,7 @@ if ($id > 0) { $morehtmlref .= '
'; $morehtmlref .= ''; $morehtmlref .= ''; - $morehtmlref .= $formproject->select_projects(-1, $object->fk_project, 'projectid', 0, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref .= $formproject->select_projects(-1, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); $morehtmlref .= ''; $morehtmlref .= '
'; } else { diff --git a/htdocs/loan/document.php b/htdocs/loan/document.php index 37359c563e1..74b96bf0877 100644 --- a/htdocs/loan/document.php +++ b/htdocs/loan/document.php @@ -141,7 +141,8 @@ if ($object->id) { $object->totalpaid = $totalpaid; // To give a chance to dol_banner_tab to use already paid amount to show correct status - dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); + $morehtmlstatus = $morehtmlright; + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlstatus); print '
'; print '
'; diff --git a/htdocs/loan/info.php b/htdocs/loan/info.php index aafc48768f7..b437a73b845 100644 --- a/htdocs/loan/info.php +++ b/htdocs/loan/info.php @@ -103,7 +103,8 @@ $morehtmlref .= '
'; $linkback = ''.$langs->trans("BackToList").''; -dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); +$morehtmlstatus = $morehtmlright; +dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlstatus); print '
'; print '
'; diff --git a/htdocs/loan/note.php b/htdocs/loan/note.php index 750c5c4660e..62d84a1adbc 100644 --- a/htdocs/loan/note.php +++ b/htdocs/loan/note.php @@ -130,7 +130,8 @@ if ($id > 0) { $object->totalpaid = $totalpaid; // To give a chance to dol_banner_tab to use already paid amount to show correct status - dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref); + $morehtmlstatus = $morehtmlright; + dol_banner_tab($object, 'id', $linkback, 1, 'rowid', 'ref', $morehtmlref, '', 0, '', $morehtmlstatus); print '
'; print '
'; From 289900565edf377aca7c03d0c25e6f15a0ec479e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sun, 29 Dec 2024 10:42:29 +0100 Subject: [PATCH 026/126] FIX avoid php8 warnings --- htdocs/loan/card.php | 1 + htdocs/loan/document.php | 1 + htdocs/loan/info.php | 1 + htdocs/loan/note.php | 1 + 4 files changed, 4 insertions(+) diff --git a/htdocs/loan/card.php b/htdocs/loan/card.php index 803717ae085..61f0823560d 100644 --- a/htdocs/loan/card.php +++ b/htdocs/loan/card.php @@ -447,6 +447,7 @@ if ($id > 0) { $morehtmlref .= ''.img_edit($langs->transnoentitiesnoconv('SetProject')).' : '; } if ($action == 'classify') { + $maxlength = 0; //$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1); $morehtmlref .= '
'; $morehtmlref .= ''; diff --git a/htdocs/loan/document.php b/htdocs/loan/document.php index 74b96bf0877..825d1cf6249 100644 --- a/htdocs/loan/document.php +++ b/htdocs/loan/document.php @@ -87,6 +87,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_linkedfiles.inc.php'; * View */ +$morehtmlright = ''; $form = new Form($db); $title = $langs->trans("Loan").' - '.$langs->trans("Documents"); diff --git a/htdocs/loan/info.php b/htdocs/loan/info.php index b437a73b845..1489868f19b 100644 --- a/htdocs/loan/info.php +++ b/htdocs/loan/info.php @@ -50,6 +50,7 @@ $result = restrictedArea($user, 'loan', $id, '', ''); * View */ +$morehtmlright = ''; $form = new Form($db); $title = $langs->trans("Loan").' - '.$langs->trans("Info"); diff --git a/htdocs/loan/note.php b/htdocs/loan/note.php index 62d84a1adbc..6cfe6089b19 100644 --- a/htdocs/loan/note.php +++ b/htdocs/loan/note.php @@ -73,6 +73,7 @@ if (empty($reshook)) { * View */ +$morehtmlright = ''; $form = new Form($db); $title = $langs->trans("Loan").' - '.$langs->trans("Notes"); From 8c1eab62da2f5a33da262d4ead36b7d13160c424 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 29 Dec 2024 14:54:04 +0100 Subject: [PATCH 027/126] Prepare 20.0.3 --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 881f26d4f41..7558696ba00 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -35,7 +35,7 @@ if (!defined('DOL_APPLICATION_TITLE')) { define('DOL_APPLICATION_TITLE', 'Dolibarr'); } if (!defined('DOL_VERSION')) { - define('DOL_VERSION', '20.0.2'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c + define('DOL_VERSION', '20.0.3'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c } if (!defined('EURO')) { From 1ceaad78d66f382007f9e852168141cdc2432a85 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 29 Dec 2024 14:58:48 +0100 Subject: [PATCH 028/126] Prepare 20.0.3 --- ChangeLog | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0d9469e9194..cca97eb20d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,66 @@ English Dolibarr ChangeLog -------------------------------------------------------------- +***** ChangeLog for 20.0.3 compared to 20.0.2 ***** +FIX: 17.0 - missing error handling for FactureRec::fetch in card-rec.php +FIX: 17.0 - warnings due to uninitialized variables + delete code that doesn't apply to recurring invoices (AFAIK, there is no recurring credit note feature) +FIX: #31159 - TVA Account by country is not used (#31984) +FIX: #31724 (#31885) +FIX: #31890 store empty line extrafields (#32152) +FIX: #31997 +FIX: #32007 missing parameter on function multiSelectArrayWithCheckbox (#32008) +FIX: #32021 +FIX: #32171 (#32172) +FIX: #32178: repair.php: fix missing 'as' with Postgres (#32179) +FIX: #32259 +FIX: #32317 Error with report by month sales tax +FIX: #32391 +FIX: #32402 Social Contribution - Update - Drop the attached employee +FIX: #32408 Dict - module Event organisation is stable now +FIX: #32467 +FIX: Accounting Closure Duplicates, Subledger accounts, Account Labels and more... Update bookkeeping.class.php +FIX: add a line in expensereport refused +FIX: All contacts were loaded even if no thirdparty was selected (#31877) +FIX: asset: missing ref_ext field used in CommonObject::isExistingObject() (#31870) +FIX: assets: division by zero when trying to calculate depreciation on assets that don't have it (#31858) +FIX: avoid php8 warnings +FIX: broken feature, check if module is enabled +FIX: broken feature, entity can not be empty ! +FIX: broken feature, wrong GETPOSTINT parameter +FIX: BUG #32454 (Third party creating vendor) +FIX: calculate start date of cloned task from cloned project (#31799) +FIX: can not convert to reduc if draft status +FIX: comparing strings with numbers can be touchy +FIX: Debug option not working replaced by the one that works. +FIX: default user in stat page +FIX: Ensure extraparams cannot be selected by the user (#32132) +FIX: GETPOST "$check" parameter can't be empty +FIX: Hidden dropdown download link in project +FIX: stop doing a full closure without duplicate lines generated by an unclean database +FIX: in projet/element.php total_time is always back to 0 +FIX: (invoice): mutlicurrency_tx correct value +FIX: invoice: revenue stamp wrongly converted to int (#31840) +FIX: issue #28222 Edit date extrafield displayed on all on lines (#31914) +FIX: "location_incoterms" is a string +FIX: missing hook parameters +FIX: missing saving MAIN_SECURITY_MAX_NUMBER_FAILED_AUTH +FIX: old copy not needed in supplier order create method (#31733) +FIX: send mail to BCC when email formatted as Fullname (#31983) +FIX: set birthday alert (#32133) +FIX: Status not correct in Public ticket list (#31922) +FIX: swiftmailer: correctly set errors-to header (#31826) +FIX: TakePos barcode rule (#31857) +FIX: Takepos: set the country of the default customer (#31915) +FIX: Update Accounting closure with missing too many A-Nouveau #30039) +FIX: Update on a sold line of bank entry set the type to empty, now it's fixed #22539 (#31888) +FIX: update status on create supplier order for trigger (#31642) +FIX: use tax with code on supplier order line give tax code missing in supplier invoice (#32018) +FIX: warning in agenda when user have no color and AGENDA_NO_TRANSPARENT_ON_NOT_BUSY=1 +FIX: when create intervention from propal (or other object), element link is missing after creation (#32035) +FIX: with no perm on supplier, must not see supplier of the best price +FIX: wrong check +FIX: wrong trigger name (MODIFY instead UPDATE) + ***** ChangeLog for 20.0.2 compared to 20.0.1 ***** FIX: fatal when updating recurring supplier invoice line with php8 ($remise_percent is '' instead of 0) (#31713) FIX: supplier invoice template card: buyer and seller swapped in VAT-related function calls (probably a copy-paste from customer invoice templates) (#31446) From cc81ff24ad5bff43126c0aa37b286678af3c858a Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 29 Dec 2024 15:11:42 +0100 Subject: [PATCH 029/126] Fix packager for ubuntu 24.04 --- build/makepack-dolibarr.pl | 178 ++++++++++++++++++------------------- 1 file changed, 89 insertions(+), 89 deletions(-) diff --git a/build/makepack-dolibarr.pl b/build/makepack-dolibarr.pl index 629672d06c4..020caba8398 100755 --- a/build/makepack-dolibarr.pl +++ b/build/makepack-dolibarr.pl @@ -4,7 +4,7 @@ # \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps) # \author (c)2004-2023 Laurent Destailleur # -# This is list of constant you can set to have generated packages moved into a specific dir: +# This is list of constant you can set to have generated packages moved into a specific dir: #DESTIBETARC='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/lastbuild' #DESTISTABLE='/media/HDDATA1_LD/Mes Sites/Web/Dolibarr/dolibarr.org/files/stable' #DESTIMODULES='/media/HDDATA1_LD/Mes Sites/Web/Admin1/wwwroot/files/modules' @@ -36,7 +36,7 @@ $PUBLISHBETARC="dolibarr\@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/ "RPM_FEDORA"=>"rpmbuild", "RPM_MANDRIVA"=>"rpmbuild", "RPM_OPENSUSE"=>"rpmbuild", -"DEB"=>"dpkg dpatch", +"DEB"=>"dpkg", "FLATPACK"=>"flatpack", "EXEDOLIWAMP"=>"ISCC.exe", "SNAPSHOT"=>"tar" @@ -129,7 +129,7 @@ if (! $TEMP || ! -d $TEMP) { print "$PROG.$Extension aborted.\n"; sleep 2; exit 2; -} +} $BUILDROOT="$TEMP/buildroot"; @@ -172,7 +172,7 @@ $newbuild = $BUILD; $newbuild =~ s/(dev|alpha)/1/gi; # dev $newbuild =~ s/beta(.?)/2/gi; # beta (we want beta1, beta2, betax to be same package name) $newbuild =~ s/rc(.?)/3/gi; # rc (we want rc1, rc2, rcx to be same package name) -if ($newbuild !~ /-/) { $newbuild.='-4'; } # finale is same than rc. +if ($newbuild !~ /-/) { $newbuild.='-4'; } # finale is same than rc. # now newbuild is 0-1 or 0-4 for example. Note that for native package (see debian/source/format), we should not use a dash part but to get a better version management $build = $newbuild; $build =~ s/-.*$//g; @@ -190,8 +190,8 @@ for (0..@ARGV-1) { if ($ARGV[$_] =~ /^-*target=(\w+)/i) { $target=$1; $batch=1; } if ($ARGV[$_] =~ /^-*desti=(.+)/i) { $DESTI=$1; } if ($ARGV[$_] =~ /^-*prefix=(.+)/i) { - $PREFIX=$1; - $FILENAMESNAPSHOT.="-".$PREFIX; + $PREFIX=$1; + $FILENAMESNAPSHOT.="-".$PREFIX; } } if ($ENV{"DESTIBETARC"} && $BUILD =~ /[a-z]/i) { $DESTI = $ENV{"DESTIBETARC"}; } # Force output dir if env DESTIBETARC is defined @@ -210,7 +210,7 @@ print "Target directory (DESTI) : $DESTI\n"; # Choose package targets #----------------------- if ($target) { - if ($target eq "ALL") { + if ($target eq "ALL") { foreach my $key (@LISTETARGET) { if ($key ne 'SNAPSHOT' && $key ne 'SF' && $key ne 'ASSO') { $CHOOSEDTARGET{$key}=1; } } @@ -236,10 +236,10 @@ else { printf(" %2d - %-14s (%s)\n",$cpt,"ASSO (publish)","Need ".$REQUIREMENTPUBLISH{"ASSO"}); $cpt=99; printf(" %2d - %-14s (%s)\n",$cpt,"SF (publish)","Need ".$REQUIREMENTPUBLISH{"SF"}); - + # Ask which target to build print "Choose one target number or several separated with space (0 - ".$cpt."): "; - $NUM_SCRIPT=; + $NUM_SCRIPT=; chomp($NUM_SCRIPT); if ($NUM_SCRIPT !~ /^[0-9\s]+$/) { @@ -286,11 +286,11 @@ foreach my $target (sort keys %CHOOSEDTARGET) { print "Error: You asked creation of several rpms. Because all rpm have same name, you must defined an environment variable DESTI to tell packager where it can create subdirs for each generated package.\n"; exit; } - $atleastonerpm=1; - } - foreach my $req (split(/[,\s]/,$REQUIREMENTTARGET{$target})) + $atleastonerpm=1; + } + foreach my $req (split(/[,\s]/,$REQUIREMENTTARGET{$target})) { - # Test + # Test print "Test requirement for target $target: Search '$req'... "; $newreq=$req; $newparam=''; if ($newreq eq 'zip') { $newparam.='-h'; } @@ -299,12 +299,12 @@ foreach my $target (sort keys %CHOOSEDTARGET) { print "Test command ".$cmd."... "; $ret=`$cmd`; $coderetour=$?; $coderetour2=$coderetour>>8; - if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/)) && $PROGPATH) { + if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/)) && $PROGPATH) { # Not found error, we try in PROGPATH $ret=`"$PROGPATH/$ALTERNATEPATH{$req}/$req\" 2>&1`; $coderetour=$?; $coderetour2=$coderetour>>8; $REQUIREMENTTARGET{$target}="$PROGPATH/$ALTERNATEPATH{$req}/$req"; - } + } if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/))) { # Not found error @@ -333,7 +333,7 @@ $nbofpublishneedchangelog=0; foreach my $target (sort keys %CHOOSEDTARGET) { if ($target eq '-CHKSUM') { $nbofpublishneedchangelog++; } if ($CHOOSEDTARGET{$target} < 0) { next; } - if ($target ne 'EXE' && $target ne 'EXEDOLIWAMP' && $target ne '-CHKSUM') + if ($target ne 'EXE' && $target ne 'EXEDOLIWAMP' && $target ne '-CHKSUM') { $nboftargetneedbuildroot++; } @@ -397,10 +397,10 @@ if ($nboftargetok) { print "Go to directory $SOURCE\n"; $olddir=getcwd(); chdir("$SOURCE"); - + print "Clean $SOURCE/htdocs/includes/autoload.php\n"; $ret=`rm -f $SOURCE/htdocs/includes/autoload.php`; - + $ret=`git ls-files . --exclude-standard --others`; if ($ret) { @@ -409,7 +409,7 @@ if ($nboftargetok) { print "Canceled.\n"; exit; } - + print 'Create xml check file with md5 checksum with command php '.$SOURCE.'/build/generate_filelist_xml.php release='.$MAJOR.'.'.$MINOR.'.'.$BUILD."\n"; $ret=`php $SOURCE/build/generate_filelist_xml.php release=$MAJOR.$MINOR.$BUILD`; print $ret."\n"; @@ -427,13 +427,13 @@ if ($nboftargetok) { print "Go to directory $SOURCE\n"; $olddir=getcwd(); chdir("$SOURCE"); - + print 'Run git tag -a -m "'.$MAJOR.'.'.$MINOR.'.'.$BUILD.'" "'.$MAJOR.'.'.$MINOR.'.'.$BUILD.'"'."\n"; $ret=`git tag -a -m "$MAJOR.$MINOR.$BUILD" "$MAJOR.$MINOR.$BUILD" 2>&1`; if ($ret =~ /(already exists|existe déjà)/) { print "WARNING: Tag ".$MAJOR.'.'.$MINOR.'.'.$BUILD." already exists. Overwrite (y/N) ? "; - $QUESTIONOVERWRITETAG=; + $QUESTIONOVERWRITETAG=; chomp($QUESTIONOVERWRITETAG); if ($QUESTIONOVERWRITETAG =~ /(o|y)/) { @@ -452,7 +452,7 @@ if ($nboftargetok) { } chdir("$olddir"); } - + # Update buildroot if required #----------------------------- if ($nboftargetneedbuildroot) @@ -462,7 +462,7 @@ if ($nboftargetok) { print "Delete directory $BUILDROOT\n"; $ret=`rm -fr "$BUILDROOT"`; - + mkdir "$BUILDROOT"; mkdir "$BUILDROOT/$PROJECT"; print "Copy $SOURCE into $BUILDROOT/$PROJECT\n"; @@ -491,7 +491,7 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/phpstan.neon.dist`; $ret=`rm -f $BUILDROOT/$PROJECT/pom.xml`; $ret=`rm -f $BUILDROOT/$PROJECT/README-*.md`; - + $ret=`rm -fr $BUILDROOT/$PROJECT/build/html`; $ret=`rm -f $BUILDROOT/$PROJECT/build/Doli*-*`; $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.deb`; @@ -560,20 +560,20 @@ if ($nboftargetok) { $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot11.png`; $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot12.png`; - # Security to avoid to package data files + # Security to avoid to package data files print "Remove documents dir\n"; $ret=`rm -fr $BUILDROOT/$PROJECT/document`; $ret=`rm -fr $BUILDROOT/$PROJECT/documents`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/document`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/documents`; - + print "Remove subdir of custom dir\n"; print "find $BUILDROOT/$PROJECT/htdocs/custom/* -type d -exec rm -fr {} \\;\n"; $ret=`find $BUILDROOT/$PROJECT/htdocs/custom/* -type d -exec rm -fr {} \\; >/dev/null 2>&1`; # For custom we want to remove all subdirs but not files print "find $BUILDROOT/$PROJECT/htdocs/custom/* -type l -exec rm -fr {} \\;\n"; $ret=`find $BUILDROOT/$PROJECT/htdocs/custom/* -type l -exec rm -fr {} \\; >/dev/null 2>&1`; # For custom we want to remove all subdirs, even symbolic links, but not files - # Removed known external modules to avoid any error when packaging from env where external modules are tested + # Removed known external modules to avoid any error when packaging from env where external modules are tested $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/abricot*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/accountingexport*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/allscreens*`; @@ -599,15 +599,15 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/timesheet*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/webmail*`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/theme/common/fontawesome-5/svgs`; - + # Removed other test files $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/public/test`; $ret=`rm -fr $BUILDROOT/$PROJECT/test`; $ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`; $ret=`rm -f $BUILDROOT/$PROJECT/.cvsignore $BUILDROOT/$PROJECT/*/.cvsignore $BUILDROOT/$PROJECT/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.cvsignore`; $ret=`rm -f $BUILDROOT/$PROJECT/.gitignore $BUILDROOT/$PROJECT/*/.gitignore $BUILDROOT/$PROJECT/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/*/*/.gitignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.gitignore`; - - # Removed files installed by the awful composer + + # Removed files installed by the awful composer $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/geoip/sample*.*`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/bin`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/ckeditor/ckeditor/adapters`; # Keep this removal in case we embed libraries @@ -642,7 +642,7 @@ if ($nboftargetok) { $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/vendor`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/webmozart`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/autoload.php`; - + $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/bin`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/bin`; $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/sabre/sabre/*/*/bin`; @@ -652,14 +652,14 @@ if ($nboftargetok) { # Build package for each target #------------------------------ - foreach my $target (sort keys %CHOOSEDTARGET) + foreach my $target (sort keys %CHOOSEDTARGET) { if ($CHOOSEDTARGET{$target} < 0) { next; } if ($target eq '-CHKSUM') { next; } - + print "\nBuild package for target $target\n"; - if ($target eq 'SNAPSHOT') + if ($target eq 'SNAPSHOT') { $NEWDESTI=$DESTI; @@ -683,13 +683,13 @@ if ($nboftargetok) { next; } - if ($target eq 'TGZ') + if ($target eq 'TGZ') { $NEWDESTI=$DESTI; if ($NEWDESTI =~ /stable/) { mkdir($DESTI.'/standard'); - if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; } + if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; } } print "Remove target $FILENAMETGZ.tgz...\n"; @@ -703,7 +703,7 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$FILENAMETGZ/build/exe`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ/htdocs/includes/ckeditor/_source`; # We can't remove it with exclude file, we need it for some tarball packages - + print "Compress $FILENAMETGZ into $FILENAMETGZ.tgz...\n"; $cmd="tar --exclude-vcs --exclude-from \"$BUILDROOT/$PROJECT/build/tgz/tar_exclude.txt\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$BUILDROOT/$FILENAMETGZ.tgz\" $FILENAMETGZ"; print "$cmd\n"; @@ -715,14 +715,14 @@ if ($nboftargetok) { next; } - if ($target eq 'XZ') + if ($target eq 'XZ') { $NEWDESTI=$DESTI; if ($NEWDESTI =~ /stable/) { mkdir($DESTI.'/standard'); if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; } - } + } print "Remove target $FILENAMEXZ.xz...\n"; unlink("$NEWDESTI/$FILENAMEXZ.xz"); @@ -735,7 +735,7 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$FILENAMEXZ/build/exe`; $ret=`rm -fr $BUILDROOT/$FILENAMEXZ/htdocs/includes/ckeditor/_source`; # We can't remove it with exclude file, we need it for some tarball packages - + print "Compress $FILENAMEXZ into $FILENAMEXZ.xz...\n"; print "Go to directory $BUILDROOT\n"; @@ -751,15 +751,15 @@ if ($nboftargetok) { $ret=`mv "$BUILDROOT/$FILENAMEXZ.xz" "$NEWDESTI/$FILENAMEXZ.xz"`; next; } - - if ($target eq 'ZIP') + + if ($target eq 'ZIP') { $NEWDESTI=$DESTI; if ($NEWDESTI =~ /stable/) { mkdir($DESTI.'/standard'); if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; } - } + } print "Remove target $FILENAMEZIP.zip...\n"; unlink("$NEWDESTI/$FILENAMEZIP.zip"); @@ -782,14 +782,14 @@ if ($nboftargetok) { print $cmd."\n"; $ret= `$cmd`; chdir("$olddir"); - + # Move to final dir print "Move $FILENAMEZIP.zip to $NEWDESTI/$FILENAMEZIP.zip\n"; $ret=`mv "$BUILDROOT/$FILENAMEZIP.zip" "$NEWDESTI/$FILENAMEZIP.zip"`; next; } - - if ($target =~ /RPM/) # Linux only + + if ($target =~ /RPM/) # Linux only { $NEWDESTI=$DESTI; $subdir="package_rpm_generic"; @@ -800,7 +800,7 @@ if ($nboftargetok) { { mkdir($DESTI.'/'.$subdir); if (-d $DESTI.'/'.$subdir) { $NEWDESTI=$DESTI.'/'.$subdir; } - } + } if ($RPMDIR eq "") { $RPMDIR=$ENV{'HOME'}."/rpmbuild"; } @@ -813,7 +813,7 @@ if ($nboftargetok) { print "Create directory $BUILDROOT/$FILENAMETGZ2\n"; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`; - + print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$FILENAMETGZ2\n"; $cmd="cp -pr '$BUILDROOT/$PROJECT' '$BUILDROOT/$FILENAMETGZ2'"; $ret=`$cmd`; @@ -839,7 +839,7 @@ if ($nboftargetok) { if ($target =~ /FEDO/i) { $BUILDFICSRC="${FILENAME}_fedora.spec"; } if ($target =~ /MAND/i) { $BUILDFICSRC="${FILENAME}_mandriva.spec"; } if ($target =~ /OPEN/i) { $BUILDFICSRC="${FILENAME}_opensuse.spec"; } - + use Date::Language; $lang=Date::Language->new('English'); $datestring = $lang->time2str("%a %b %e %Y", time); @@ -857,7 +857,7 @@ if ($nboftargetok) { } close SPECFROM; close SPECTO; - + print "Copy patch file to $RPMDIR/SOURCES\n"; $ret=`cp "$SOURCE/build/rpm/dolibarr-forrpm.patch" "$RPMDIR/SOURCES"`; $ret=`chmod 644 $RPMDIR/SOURCES/dolibarr-forrpm.patch`; @@ -879,14 +879,14 @@ if ($nboftargetok) { next; } - if ($target eq 'DEB') + if ($target eq 'DEB') { $NEWDESTI=$DESTI; if ($NEWDESTI =~ /stable/) { mkdir($DESTI.'/package_debian-ubuntu'); if (-d $DESTI.'/package_debian-ubuntu') { $NEWDESTI=$DESTI.'/package_debian-ubuntu'; } - } + } $olddir=getcwd(); @@ -967,13 +967,13 @@ if ($nboftargetok) { $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/jquery/plugins/select2/LICENSE`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/mike42/escpos-php/LICENSE.md`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/mobiledetect/mobiledetectlib/LICENSE.txt`; - + # Removed files we don't need (already removed) #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source`; - + # Rename upstream changelog to match debian rules $ret=`mv $BUILDROOT/$PROJECT.tmp/ChangeLog $BUILDROOT/$PROJECT.tmp/changelog`; - + # Prepare source package (init debian dir) print "Create directory $BUILDROOT/$PROJECT.tmp/debian\n"; $ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian"`; @@ -1011,7 +1011,7 @@ if ($nboftargetok) { $ret=`cp -f "$SOURCE/build/debian/dolibarr.postrm" "$BUILDROOT/$PROJECT.tmp/debian"`; $ret=`cp -f "$SOURCE/build/debian/dolibarr.templates" "$BUILDROOT/$PROJECT.tmp/debian"`; $ret=`cp -f "$SOURCE/build/debian/install.forced.php.install" "$BUILDROOT/$PROJECT.tmp/debian"`; - + # Set owners and permissions #print "Set owners on files/dir\n"; #$ret=`chown -R root.root $BUILDROOT/$PROJECT.tmp`; @@ -1042,8 +1042,8 @@ if ($nboftargetok) { $ret=`$cmd`; $cmd="find $BUILDROOT/$PROJECT.tmp/scripts -name '*.sh' -type f -exec chmod 755 {} \\; "; $ret=`$cmd`; - - + + print "Rename directory $BUILDROOT/$PROJECT.tmp into $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build\n"; $cmd="mv $BUILDROOT/$PROJECT.tmp $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build"; $ret=`$cmd`; @@ -1051,14 +1051,14 @@ if ($nboftargetok) { print "Go into directory $BUILDROOT\n"; chdir("$BUILDROOT"); - + # We need a tarball to be able to build "quilt" debian package (not required for native but we need patch so it is not a native) print "Compress $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build into $BUILDROOT/$FILENAMEDEBNATIVE.orig.tar.gz...\n"; $cmd="tar --exclude-vcs --exclude-from \"$BUILDROOT/$PROJECT/build/tgz/tar_exclude.txt\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$BUILDROOT/$FILENAMEDEBNATIVE.orig.tar.gz\" $PROJECT-$MAJOR.$MINOR.$build"; print $cmd."\n"; $ret=`$cmd`; - # Creation of source package + # Creation of source package print "Go into directory $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build\n"; chdir("$BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build"); #$cmd="dpkg-source -b $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build"; @@ -1077,12 +1077,12 @@ if ($nboftargetok) { $ret=`mv $BUILDROOT/*_all.deb "$NEWDESTI/"`; $ret=`mv $BUILDROOT/*.dsc "$NEWDESTI/"`; $ret=`mv $BUILDROOT/*.orig.tar.gz "$NEWDESTI/"`; - #$ret=`mv $BUILDROOT/*.debian.tar.xz "$NEWDESTI/"`; # xz file is generated when build/debian/sources/option + #$ret=`mv $BUILDROOT/*.debian.tar.xz "$NEWDESTI/"`; # xz file is generated when build/debian/sources/option $ret=`mv $BUILDROOT/*.debian.tar.gz "$NEWDESTI/"`; $ret=`mv $BUILDROOT/*.changes "$NEWDESTI/"`; next; } - + if ($target eq 'EXEDOLIWAMP') { $NEWDESTI=$DESTI; @@ -1090,22 +1090,22 @@ if ($nboftargetok) { { mkdir($DESTI.'/package_windows'); if (-d $DESTI.'/package_windows') { $NEWDESTI=$DESTI.'/package_windows'; } - } + } print "Remove target $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe...\n"; unlink "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"; - + if ($OS eq 'windows') { print "Check that ISCC.exe is in your PATH.\n"; } else { print "Check that in your Wine setup, you have created a Z: drive that point to your / directory.\n"; } - + $SOURCEBACK=$SOURCE; $SOURCEBACK =~ s/\//\\/g; print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n"; - + #$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; open(IN, '<' . $SOURCE."/build/exe/doliwamp/doliwamp.iss") or die $!; open(OUT, '>' . "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss") or die $!; @@ -1118,7 +1118,7 @@ if ($nboftargetok) { close(OUT); print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" on OS $OS\n"; - + if ($OS eq 'windows') { $cmd= "ISCC.exe \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; } else { @@ -1132,26 +1132,26 @@ if ($nboftargetok) { print "Move \"$SOURCE\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; rename("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); print "Move $SOURCE/build/$FILENAMEEXEDOLIWAMP.exe to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; - + use File::Copy; #$ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`; $ret=move("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe", "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); - + print "Remove tmp file $SOURCE/build/exe/doliwamp/doliwamp.tmp.iss\n"; #$ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; $ret=unlink("$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"); - + next; } } # Publish package for each target #-------------------------------- - foreach my $target (sort keys %CHOOSEDPUBLISH) + foreach my $target (sort keys %CHOOSEDPUBLISH) { if ($CHOOSEDPUBLISH{$target} < 0) { next; } - + print "\nList of files to publish (BUILD=$BUILD)\n"; %filestoscansf=( "$DESTI/signatures/filelist-$MAJOR.$MINOR.$BUILD.xml"=>'none', # none means it won't be published on SF @@ -1209,26 +1209,26 @@ if ($nboftargetok) { print "\n"; } - if ($target eq 'SF' || $target eq 'ASSO') + if ($target eq 'SF' || $target eq 'ASSO') { print "\n"; - + if ($target eq 'SF') { $PUBLISH = $PUBLISHSTABLE; } if ($target eq 'ASSO' && $BUILD =~ /[a-z]/i) { $PUBLISH = $PUBLISHBETARC.'/lastbuild'; } if ($target eq 'ASSO' && $BUILD =~ /^[0-9]+$/) { $PUBLISH = $PUBLISHBETARC.'/stable'; } - + $NEWPUBLISH=$PUBLISH; print "Publish to target $NEWPUBLISH. Click enter or CTRL+C...\n"; # Ask which target to build - $NUM_SCRIPT=; + $NUM_SCRIPT=; chomp($NUM_SCRIPT); print "Create empty dir /tmp/emptydir. We need it to create target dir using rsync.\n"; $ret=`mkdir -p "/tmp/emptydir/"`; - + %filestoscan=%filestoscansf; - + foreach my $file (sort keys %filestoscan) { $found=0; @@ -1238,30 +1238,30 @@ if ($nboftargetok) { if ($target eq 'SF') { if ($filestoscan{$file} eq 'none') { next; - } + } $destFolder="$NEWPUBLISH/$filestoscan{$file}/".$MAJOR.'.'.$MINOR.'.'.$BUILD; } elsif ($target eq 'ASSO' and $NEWPUBLISH =~ /stable/) { $destFolder="$NEWPUBLISH/$filestoscanstableasso{$file}"; - } + } elsif ($target eq 'ASSO' and $NEWPUBLISH !~ /stable/) { $destFolder="$NEWPUBLISH"; - } + } else # No more used { $dirnameonly=$file; - $dirnameonly =~ s/.*\/([^\/]+)\/[^\/]+$/$1/; + $dirnameonly =~ s/.*\/([^\/]+)\/[^\/]+$/$1/; $filenameonly=$file; - $filenameonly =~ s/.*\/[^\/]+\/([^\/])+$/$1/; + $filenameonly =~ s/.*\/[^\/]+\/([^\/])+$/$1/; $destFolder="$NEWPUBLISH/$dirnameonly"; } print "\n"; print "Publish file ".$file." to ".$destFolder."\n"; - # mkdir + # mkdir #my $ssh = Net::SSH::Perl->new("frs.sourceforge.net"); - #$ssh->login("$user","$pass"); + #$ssh->login("$user","$pass"); #use String::ShellQuote qw( shell_quote ); #$ssh->cmd('mkdir '.shell_quote($destFolder).' && exit'); @@ -1270,20 +1270,20 @@ if ($nboftargetok) { #$sftp->mkdir($destFolder) #$command="ssh eldy,dolibarr\@frs.sourceforge.net mkdir -p \"$destFolder\""; - #print "$command\n"; + #print "$command\n"; #my $ret=`$command 2>&1`; $command="rsync -s -e 'ssh' --recursive /tmp/emptydir/ \"".$destFolder."\""; - print "$command\n"; + print "$command\n"; my $ret=`$command 2>&1`; $command="rsync -s -e 'ssh' \"$file\" \"".$destFolder."\""; - print "$command\n"; + print "$command\n"; my $ret2=`$command 2>&1`; print "$ret2\n"; } } - } + } } print "\n----- Summary -----\n"; From 8ccdbf374bdd43721202c0fc456385b5a6d2821d Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 29 Dec 2024 15:57:17 +0100 Subject: [PATCH 030/126] Update test --- .github/workflows/test.yaml | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 30ccca5b0e9..5a41c986098 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -9,10 +9,9 @@ on: env: ENVGHT: ${{ secrets.GITHUB_TOKEN }} ENVGHU: ${{ github.token }} - VARAAA: ${{ vars.AAA }} - SECBBB: ${{ secrets.BBB }} - VARREPORGCCC: ${{ vars.CCC }} - ENVFIX: "abc" + TEST_ACCESS_KEY: ${{ secrets.TEST_ACCESS_KEY }} + TEST_VAR_REPO: ${{ vars.TEST_VAR_REPO }} + ENVLOCAL: "varenvlocal" jobs: testjob: @@ -25,14 +24,6 @@ jobs: echo "secrets.GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}" echo "GITHUB_EVENT_PATH=$GITHUB_EVENT_PATH" echo "repo-token: ${{secrets.GITHUB_TOKEN}}" - echo "variable org: ${{vars.AAA}}" - echo "env prg: ${{env.AAA}}" - echo "env prg: ${{env.VARAAA}}" - echo "secret org: ${{secrets.BBB}}" - echo "variable repository of orga: ${{vars.CCC}}" - echo "ENVGHT: ${{env.ENVGHT}}" - echo "ENVGHU: ${{env.ENVGHU}}" - echo "VARAAA: ${{vars.AAA}}" - echo "ENVAAA: ${{env.VARAAA}}" - echo "VARREPORGCCC: ${{env.VARREPORGCCC}}" - echo "ENVFIX: ${{env.ENVFIX}}" + echo "secret repository TEST_ACCESS_KEY: ${{secrets.TEST_ACCESS_KEY}}" + echo "variable repository : ${{vars.TEST_VAR_REPO}}" + echo "ENVLOCAL: ${{env.ENVLOCAL}}" From 92963af09f8c0f8c1aafff2934824e9f6b155f58 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 29 Dec 2024 17:04:54 +0100 Subject: [PATCH 031/126] Fix yml syntax --- .github/workflows/pr-18.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pr-18.yaml b/.github/workflows/pr-18.yaml index 5523dc1a55c..f3ffa3a2e24 100644 --- a/.github/workflows/pr-18.yaml +++ b/.github/workflows/pr-18.yaml @@ -26,14 +26,14 @@ jobs: # sudo apt install gh -y - name: Assign reviewer method 1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - url: ${{ github.event.pull_request.html_url }} - run: | - gh pr edit "$url" --add-assignee rycks --add-reviewer rycks - gh pr merge "$url" --merge --auto + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + url: ${{ github.event.pull_request.html_url }} + run: | + gh pr edit "$url" --add-assignee rycks --add-reviewer rycks + gh pr merge "$url" --merge --auto + - - name: Assign reviewer method 2 env: #REVIEWER: "eldy,lvessiller-opendsi,rycks" # Remplacez par le nom d'utilisateur GitHub du reviewer From 90a09b53da8b2e405ce112ca218267a0f625912f Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 29 Dec 2024 18:09:46 +0100 Subject: [PATCH 032/126] Fix cke warning --- htdocs/theme/eldy/global.inc.php | 5 +++-- htdocs/theme/md/style.css.php | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/theme/eldy/global.inc.php b/htdocs/theme/eldy/global.inc.php index 5100b3af292..f93c410bd73 100644 --- a/htdocs/theme/eldy/global.inc.php +++ b/htdocs/theme/eldy/global.inc.php @@ -6191,8 +6191,9 @@ a.cke_dialog_ui_button_ok span { a.cke_button, a.cke_combo_button { height: 18px !important; } -/* .cke_notifications_area { display: none; } */ - +div.cke_notifications_area .cke_notification_warning { + visibility: hidden; +} /* ============================================================================== */ /* ACE editor */ diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index bfbef5d2a8e..09de0954513 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -6159,6 +6159,9 @@ a.cke_dialog_ui_button_ok span { a.cke_button, a.cke_combo_button { height: 18px !important; } +div.cke_notifications_area .cke_notification_warning { + visibility: hidden; +} /* ============================================================================== */ From 1e0479d19d4daeabda9ddf4a61fa381136154b83 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 29 Dec 2024 18:11:59 +0100 Subject: [PATCH 033/126] Prepare 20.0.4 --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 7558696ba00..4e38fe07568 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -35,7 +35,7 @@ if (!defined('DOL_APPLICATION_TITLE')) { define('DOL_APPLICATION_TITLE', 'Dolibarr'); } if (!defined('DOL_VERSION')) { - define('DOL_VERSION', '20.0.3'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c + define('DOL_VERSION', '20.0.4'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c } if (!defined('EURO')) { From 220090813d03e51aa6986791a5315e48f5cbef06 Mon Sep 17 00:00:00 2001 From: Eric Seigne Date: Mon, 30 Dec 2024 10:28:23 +0100 Subject: [PATCH 034/126] there is no "name" field into llx_socpeople table --- htdocs/comm/contact.php | 12 ++++++------ htdocs/fourn/contact.php | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/htdocs/comm/contact.php b/htdocs/comm/contact.php index 19be738a50e..11ba439f86b 100644 --- a/htdocs/comm/contact.php +++ b/htdocs/comm/contact.php @@ -37,7 +37,7 @@ if (!$sortorder) { $sortorder = "ASC"; } if (!$sortfield) { - $sortfield = "p.name"; + $sortfield = "p.lastname"; } if ($page < 0) { $page = 0; @@ -81,7 +81,7 @@ if ($type == "f") { */ $sql = "SELECT s.rowid, s.nom as name, st.libelle as stcomm"; -$sql .= ", p.rowid as cidp, p.name, p.firstname, p.email, p.phone"; +$sql .= ", p.rowid as cidp, p.lastname, p.firstname, p.email, p.phone"; $sql .= " FROM ".MAIN_DB_PREFIX."c_stcomm as st,"; if (empty($user->rights->societe->client->voir) && !$socid) { $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,"; @@ -106,7 +106,7 @@ if ($socid) { $sql .= " AND s.rowid = ".((int) $socid); } if (!empty($search_lastname)) { - $sql .= " AND p.name LIKE '%".$db->escape($search_lastname)."%'"; + $sql .= " AND p.lastname LIKE '%".$db->escape($search_lastname)."%'"; } if (!empty($search_firstname)) { $sql .= " AND p.firstname LIKE '%".$db->escape($search_firstname)."%'"; @@ -115,8 +115,8 @@ if (!empty($search_company)) { $sql .= " AND s.nom LIKE '%".$db->escape($search_company)."%'"; } if (!empty($contactname)) { // acces a partir du module de recherche - $sql .= " AND (p.name LIKE '%".$db->escape($contactname)."%' OR lower(p.firstname) LIKE '%".$db->escape($contactname)."%') "; - $sortfield = "p.name"; + $sql .= " AND (p.lastname LIKE '%".$db->escape($contactname)."%' OR lower(p.firstname) LIKE '%".$db->escape($contactname)."%') "; + $sortfield = "p.lastname"; $sortorder = "ASC"; } @@ -136,7 +136,7 @@ if ($resql) { print ''; print ''; - print_liste_field_titre("Lastname", $_SERVER["PHP_SELF"], "p.name", $begin, $param, "", $sortfield, $sortorder); + print_liste_field_titre("Lastname", $_SERVER["PHP_SELF"], "p.lastname", $begin, $param, "", $sortfield, $sortorder); print_liste_field_titre("Firstname", $_SERVER["PHP_SELF"], "p.firstname", $begin, $param, "", $sortfield, $sortorder); print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", $begin, $param, "", $sortfield, $sortorder); print_liste_field_titre("Email"); diff --git a/htdocs/fourn/contact.php b/htdocs/fourn/contact.php index a4504e8f83e..4b96b6b7659 100644 --- a/htdocs/fourn/contact.php +++ b/htdocs/fourn/contact.php @@ -55,7 +55,7 @@ if (!$sortorder) { $sortorder = "ASC"; } if (!$sortfield) { - $sortfield = "p.name"; + $sortfield = "p.lastname"; } $limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; @@ -85,12 +85,12 @@ if (dol_strlen($stcomm)) { } if (dol_strlen($begin)) { - $sql .= " AND p.name LIKE '$begin%'"; + $sql .= " AND p.lastname LIKE '$begin%'"; } if ($contactname) { - $sql .= " AND p.name LIKE '%".strtolower($contactname)."%'"; - $sortfield = "p.name"; + $sql .= " AND p.lastname LIKE '%".strtolower($contactname)."%'"; + $sortfield = "p.lastname"; $sortorder = "ASC"; } @@ -110,7 +110,7 @@ if ($result) { print '
'; print ''; - print_liste_field_titre("Lastname", $_SERVER["PHP_SELF"], "p.name", $begin, "", "", $sortfield, $sortorder); + print_liste_field_titre("Lastname", $_SERVER["PHP_SELF"], "p.lastname", $begin, "", "", $sortfield, $sortorder); print_liste_field_titre("Firstname", $_SERVER["PHP_SELF"], "p.firstname", $begin, "", "", $sortfield, $sortorder); print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", $begin, "", "", $sortfield, $sortorder); print_liste_field_titre("Email"); From 7278b7f15aa9e5fa4eee14f1dfa5fd38f32efe23 Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Mon, 30 Dec 2024 13:39:39 +0100 Subject: [PATCH 035/126] Fix phpstan for color on assigned event --- htdocs/comm/action/index.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index b41103ace61..5ed3cb35e80 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -1947,9 +1947,9 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa //var_dump($cacheusers[$event->userownerid]->color); // We decide to choose color of owner of event (event->userownerid is user id of owner, event->userassigned contains all users assigned to event) - if (!empty($cacheusers[$event->userownerid]->color)) { - $color = $cacheusers[$event->userownerid]->color; - } +// if (!empty($cacheusers[$event->userownerid]->color)) { +// $color = $cacheusers[$event->userownerid]->color; +// } } elseif ($event->type_code == 'ICALEVENT') { // Event come from external ical file $numical++; if (!empty($event->icalname)) { @@ -2005,7 +2005,7 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa $color = sprintf("%02x%02x%02x", $theme_datacolor[$colorindex][0], $theme_datacolor[$colorindex][1], $theme_datacolor[$colorindex][2]); } elseif (getDolGlobalString('THEME_ELDY_BACKBODY')) { require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; - $color = colorArrayToHex(explode(',', getDolGlobalString('THEME_ELDY_BACKBODY'))); + $color = colorArrayToHex(colorStringToArray(getDolGlobalString('THEME_ELDY_BACKBODY'), array()), ''); } else { $color = "ffffff"; } From a0b77c7ffae730280664d930ccaa6de3e41f600e Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Mon, 30 Dec 2024 13:41:18 +0100 Subject: [PATCH 036/126] Fix phpstan for color on assigned event --- htdocs/comm/action/index.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index 5ed3cb35e80..58944ca8167 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -1947,9 +1947,9 @@ function show_day_events($db, $day, $month, $year, $monthshown, $style, &$eventa //var_dump($cacheusers[$event->userownerid]->color); // We decide to choose color of owner of event (event->userownerid is user id of owner, event->userassigned contains all users assigned to event) -// if (!empty($cacheusers[$event->userownerid]->color)) { -// $color = $cacheusers[$event->userownerid]->color; -// } + if (!empty($cacheusers[$event->userownerid]->color)) { + $color = $cacheusers[$event->userownerid]->color; + } } elseif ($event->type_code == 'ICALEVENT') { // Event come from external ical file $numical++; if (!empty($event->icalname)) { From 4d82beb46a2444df90e5aeb7d8cb9abb2c767c7b Mon Sep 17 00:00:00 2001 From: VESSILLER Date: Mon, 30 Dec 2024 13:59:28 +0100 Subject: [PATCH 037/126] Fix phpstan doleditor content cannot be nullable --- htdocs/core/class/doleditor.class.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index 8f2c9faf506..064db79b3da 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -210,7 +210,7 @@ class DolEditor $found = 0; $out = ''; - $this->content = ($this->content ?? ''); // to avoid htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated + $content = (string) $this->content; // to avoid htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated if (in_array($this->tool, array('textarea', 'ckeditor'))) { $found = 1; @@ -223,7 +223,7 @@ class DolEditor $out .= (preg_match('/%/', $this->cols) ? ' style="margin-top: 5px; width: '.$this->cols.'"' : ' cols="'.$this->cols.'"'); $out .= ' '.($moreparam ? $moreparam : ''); $out .= ' class="flat '.$morecss.'">'; - $out .= htmlspecialchars($this->content); + $out .= htmlspecialchars($content); $out .= ''; if ($this->tool == 'ckeditor' && !empty($conf->use_javascript_ajax) && isModEnabled('fckeditor')) { @@ -390,12 +390,12 @@ class DolEditor $out .= ($this->height ? ' height: '.$this->height.'px; ' : ''); //$out.=" min-height: 100px;"; $out .= '">'; - $out .= htmlspecialchars($this->content); + $out .= htmlspecialchars($content); $out .= ''; $out .= ''; $out .= ''; $out .= ''; $out .= ' - \ No newline at end of file + diff --git a/build/doxygen/doxygen_header.html b/dev/build/doxygen/doxygen_header.html similarity index 99% rename from build/doxygen/doxygen_header.html rename to dev/build/doxygen/doxygen_header.html index f60f4829d76..9ab8aa57a0c 100644 --- a/build/doxygen/doxygen_header.html +++ b/dev/build/doxygen/doxygen_header.html @@ -48,5 +48,3 @@ - - diff --git a/build/exakat/README.md b/dev/build/exakat/README.md similarity index 100% rename from build/exakat/README.md rename to dev/build/exakat/README.md diff --git a/build/exe/doliwamp/.gitignore b/dev/build/exe/doliwamp/.gitignore similarity index 100% rename from build/exe/doliwamp/.gitignore rename to dev/build/exe/doliwamp/.gitignore diff --git a/build/exe/doliwamp/Languages/MyBasque.isl b/dev/build/exe/doliwamp/Languages/MyBasque.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyBasque.isl rename to dev/build/exe/doliwamp/Languages/MyBasque.isl diff --git a/build/exe/doliwamp/Languages/MyBrazilianPortuguese.isl b/dev/build/exe/doliwamp/Languages/MyBrazilianPortuguese.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyBrazilianPortuguese.isl rename to dev/build/exe/doliwamp/Languages/MyBrazilianPortuguese.isl diff --git a/build/exe/doliwamp/Languages/MyCatalan.isl b/dev/build/exe/doliwamp/Languages/MyCatalan.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyCatalan.isl rename to dev/build/exe/doliwamp/Languages/MyCatalan.isl diff --git a/build/exe/doliwamp/Languages/MyCzech.isl b/dev/build/exe/doliwamp/Languages/MyCzech.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyCzech.isl rename to dev/build/exe/doliwamp/Languages/MyCzech.isl diff --git a/build/exe/doliwamp/Languages/MyDanish.isl b/dev/build/exe/doliwamp/Languages/MyDanish.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyDanish.isl rename to dev/build/exe/doliwamp/Languages/MyDanish.isl diff --git a/build/exe/doliwamp/Languages/MyDutch.isl b/dev/build/exe/doliwamp/Languages/MyDutch.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyDutch.isl rename to dev/build/exe/doliwamp/Languages/MyDutch.isl diff --git a/build/exe/doliwamp/Languages/MyEnglish.isl b/dev/build/exe/doliwamp/Languages/MyEnglish.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyEnglish.isl rename to dev/build/exe/doliwamp/Languages/MyEnglish.isl diff --git a/build/exe/doliwamp/Languages/MyFinnish.isl b/dev/build/exe/doliwamp/Languages/MyFinnish.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyFinnish.isl rename to dev/build/exe/doliwamp/Languages/MyFinnish.isl diff --git a/build/exe/doliwamp/Languages/MyFrench.isl b/dev/build/exe/doliwamp/Languages/MyFrench.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyFrench.isl rename to dev/build/exe/doliwamp/Languages/MyFrench.isl diff --git a/build/exe/doliwamp/Languages/MyGerman.isl b/dev/build/exe/doliwamp/Languages/MyGerman.isl similarity index 97% rename from build/exe/doliwamp/Languages/MyGerman.isl rename to dev/build/exe/doliwamp/Languages/MyGerman.isl index 7d7fa1662a8..b78c2155e27 100644 --- a/build/exe/doliwamp/Languages/MyGerman.isl +++ b/dev/build/exe/doliwamp/Languages/MyGerman.isl @@ -21,7 +21,7 @@ DoYouWantToStart=Möchten Sie den Installationsprozess starten? TechnicalParameters=technische Parameter IfFirstInstall=Geben Sie bei der Erstinstallation einige technische Parameter an. Wenn Sie nicht verstehen, sich nicht sicher sind oder ein Upgrade durchführen, belassen Sie einfach die Standardwerte. -; WARNING !!! STRINGS HERE MUST BE LOWER THAN 60 CHARACTERS +; WARNING !!! STRINGS HERE MUST BE LOWER THAN 60 CHARACTERS SMTPServer=SMTP Server (your own or ISP SMTP server, first install only) : ApachePort=Apache Port (first install only, Standard ist 80) : MySqlPort=MySQL Port (first install only, Standard ist 3306) : @@ -29,7 +29,7 @@ MySqlPassword=MySQL Server und Datenbank Passwort für root (first install only) FailedToDeleteLock=Fehler beim Löschen der Datei %1/www/dolibarr/install.lock. Sie können die Warnung ignorieren, müssen sie jedoch möglicherweise später manuell entfernen, wenn Sie dazu aufgefordert werden. Klicken Sie auf OK, um fortzufahren ... -PortAlreadyInUse=Port %1 scheint bereits verwendet zu werden. Sie sollten zurückgehen und einen anderen Wert für %2 Port wählen. Auswahl abbrechen und einen anderen Wert wählen ? +PortAlreadyInUse=Port %1 scheint bereits verwendet zu werden. Sie sollten zurückgehen und einen anderen Wert für %2 Port wählen. Auswahl abbrechen und einen anderen Wert wählen ? FirefoxDetected=Firefox wurde auf Ihrem Computer erkannt. Möchten Sie ihn als Standardbrowser für Dolibarr verwenden? ChromeDetected=Chrome wurde auf Ihrem Computer erkannt. Möchten Sie ihn als Standardbrowser für Dolibarr verwenden? diff --git a/build/exe/doliwamp/Languages/MyHebrew.isl b/dev/build/exe/doliwamp/Languages/MyHebrew.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyHebrew.isl rename to dev/build/exe/doliwamp/Languages/MyHebrew.isl diff --git a/build/exe/doliwamp/Languages/MyHungarian.isl b/dev/build/exe/doliwamp/Languages/MyHungarian.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyHungarian.isl rename to dev/build/exe/doliwamp/Languages/MyHungarian.isl diff --git a/build/exe/doliwamp/Languages/MyItalian.isl b/dev/build/exe/doliwamp/Languages/MyItalian.isl similarity index 98% rename from build/exe/doliwamp/Languages/MyItalian.isl rename to dev/build/exe/doliwamp/Languages/MyItalian.isl index bb85ba864b6..8d72059f862 100644 --- a/build/exe/doliwamp/Languages/MyItalian.isl +++ b/dev/build/exe/doliwamp/Languages/MyItalian.isl @@ -9,4 +9,4 @@ ProgramOnTheWeb=%1 sul Web UninstallProgram=Disinstalla %1 LaunchProgram=Avvia %1 AssocFileExtension=&Associa l'estensione %2 a %1 -AssocingFileExtension=Associazione dell'estensione %2 a %1 in corso... \ No newline at end of file +AssocingFileExtension=Associazione dell'estensione %2 a %1 in corso... diff --git a/build/exe/doliwamp/Languages/MyJapanese.isl b/dev/build/exe/doliwamp/Languages/MyJapanese.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyJapanese.isl rename to dev/build/exe/doliwamp/Languages/MyJapanese.isl diff --git a/build/exe/doliwamp/Languages/MyNorwegian.isl b/dev/build/exe/doliwamp/Languages/MyNorwegian.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyNorwegian.isl rename to dev/build/exe/doliwamp/Languages/MyNorwegian.isl diff --git a/build/exe/doliwamp/Languages/MyPolish.isl b/dev/build/exe/doliwamp/Languages/MyPolish.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyPolish.isl rename to dev/build/exe/doliwamp/Languages/MyPolish.isl diff --git a/build/exe/doliwamp/Languages/MyPortuguese.isl b/dev/build/exe/doliwamp/Languages/MyPortuguese.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyPortuguese.isl rename to dev/build/exe/doliwamp/Languages/MyPortuguese.isl diff --git a/build/exe/doliwamp/Languages/MyRussian.isl b/dev/build/exe/doliwamp/Languages/MyRussian.isl similarity index 100% rename from build/exe/doliwamp/Languages/MyRussian.isl rename to dev/build/exe/doliwamp/Languages/MyRussian.isl diff --git a/build/exe/doliwamp/Languages/MySlovak.isl b/dev/build/exe/doliwamp/Languages/MySlovak.isl similarity index 90% rename from build/exe/doliwamp/Languages/MySlovak.isl rename to dev/build/exe/doliwamp/Languages/MySlovak.isl index 28e66e0f8a5..578415e631d 100644 --- a/build/exe/doliwamp/Languages/MySlovak.isl +++ b/dev/build/exe/doliwamp/Languages/MySlovak.isl @@ -5,7 +5,7 @@ AdditionalIcons= CreateDesktopIcon=Vytvori zstupcu na &ploche CreateQuickLaunchIcon=Vytvori zstupcu na paneli &Rchle spustenie ProgramOnTheWeb=Aplikcia %1 na internete -UninstallProgram=Odintalova aplikciu %1 +UninstallProgram=Odintalova aplikciu %1 LaunchProgram=Spusti aplikciu %1 AssocFileExtension=Vytvori &asociciu medzi sbormi typu %2 a aplikciou %1 AssocingFileExtension=Vytvra sa asocicia medzi sbormi typu %2 a aplikciou %1... diff --git a/build/exe/doliwamp/Languages/MySlovenian.isl b/dev/build/exe/doliwamp/Languages/MySlovenian.isl similarity index 100% rename from build/exe/doliwamp/Languages/MySlovenian.isl rename to dev/build/exe/doliwamp/Languages/MySlovenian.isl diff --git a/build/exe/doliwamp/Languages/MySpanish.isl b/dev/build/exe/doliwamp/Languages/MySpanish.isl similarity index 99% rename from build/exe/doliwamp/Languages/MySpanish.isl rename to dev/build/exe/doliwamp/Languages/MySpanish.isl index 4500e776672..6789bf008c0 100644 --- a/build/exe/doliwamp/Languages/MySpanish.isl +++ b/dev/build/exe/doliwamp/Languages/MySpanish.isl @@ -42,6 +42,6 @@ DoliWampWillStartApacheMysql=El instalador DoliWamp intentará iniciar o reinici OldVersionFoundAndMoveInNew=Se ha encontrado una versión antigua de base de datos y ha sido movida para ser utilizada por la nueva versión de Dolibarr OldVersionFoundButFailedToMoveInNew=Se ha encontrado una versión antigua de base de datos, pero no se pudo mover para ser utilizada por la nueva versión de Dolibarr - + DLLMissing=Su instalación Windows no tiene el componente "Microsoft Visual C++ Redistributable for Visual Studio 2017". Instale primero la versión de 32-bit (vcredist_x86.exe) (puedes encontrarlo en https://www.microsoft.com/en-us/download/) y reiniciar después la instalación/actualización de DoliWamp. ContinueAnyway=Continua igualmente (el proceso de instalación podría fallar sin este prerequisito) diff --git a/build/exe/doliwamp/Makefile b/dev/build/exe/doliwamp/Makefile similarity index 98% rename from build/exe/doliwamp/Makefile rename to dev/build/exe/doliwamp/Makefile index 3344232b177..f2727e54298 100644 --- a/build/exe/doliwamp/Makefile +++ b/dev/build/exe/doliwamp/Makefile @@ -1,7 +1,7 @@ #-------------------------------------------------------------------# # Makefile to build UsedPort exe #-------------------------------------------------------------------# -# 1.0 Laurent Destailleur Creation +# 1.0 Laurent Destailleur Creation #-------------------------------------------------------------------# # Works with GCC CYGWIN, GCC MINGW #-------------------------------------------------------------------# @@ -126,7 +126,7 @@ $(LIBDIR)%.obj: %.cpp $(CPP) -c $(CFLAGS) $(SRC)$< $(OUT)$@ # @echo ----- Archivage en $(ARCHIVE) # $(AR) $(ARCHIVE) $@ - + $(LIBDIR)%.o: %.c @echo ----- Compilation C by $(COMP) $(CC) - $@ @echo CC=$(CC) diff --git a/build/exe/doliwamp/README.md b/dev/build/exe/doliwamp/README.md similarity index 100% rename from build/exe/doliwamp/README.md rename to dev/build/exe/doliwamp/README.md diff --git a/build/exe/doliwamp/UsedPort.cpp b/dev/build/exe/doliwamp/UsedPort.cpp similarity index 98% rename from build/exe/doliwamp/UsedPort.cpp rename to dev/build/exe/doliwamp/UsedPort.cpp index a63938c5038..5d77f7c9ec5 100644 --- a/build/exe/doliwamp/UsedPort.cpp +++ b/dev/build/exe/doliwamp/UsedPort.cpp @@ -5,7 +5,7 @@ // GCC CYGWIN 3.4.4 (May need cygwin1.dll, depending on functions used) // GCC MINGW 3.4.5 // Not tested with: -// VC++ 4.0.0 +// VC++ 4.0.0 // GCC Linux 3.4.4 //--------------------------------------------------------------------------- // 06/09/09 1.0 Laurent Destailleur Creation @@ -122,7 +122,7 @@ mailentry tabmails[MAX_MAILS+1]; // Tab of mails entries First=1 int iRet; int iNbUnread; // Nb of unread mails unsigned long int lSizeUnread; // Size of all unread mails -int Port=0; +int Port=0; char Host[MAXHOSTNAMELEN]=""; #ifdef _WIN32 WSADATA Data; @@ -153,7 +153,7 @@ int testConnect() SOCKET sc; char s[2048],t[256]; int i; - + startgetmess: @@ -177,7 +177,7 @@ startgetmess: { return(DoQuit(FAILED_TO_RESOLVE_HOST)); } - + //***** Connect to server SOCKADDR_IN sin; sin.sin_port = htons((u_short) Port); @@ -190,7 +190,7 @@ startgetmess: #ifdef _WIN32 if (connect(sc,(LPSOCKADDR) &sin,sizeof(sin))) #else - if (connect(sc,(const struct sockaddr *) &sin,sizeof(sin))) + if (connect(sc,(const struct sockaddr *) &sin,sizeof(sin))) #endif { printf("Failed to connect !\n"); @@ -223,7 +223,7 @@ int Ack(SOCKET sc) int rlen; int Received = 0; - if (!buf) + if (!buf) if ((buf = (char *) malloc(liSizeOfMail+1)) == NULL) // The first time, create buf return(OUT_OF_MEMORY); again: @@ -310,7 +310,7 @@ if (help|invalide) { printf("\n"); exit(-1); } - + // Print input values diff --git a/build/exe/doliwamp/UsedPort.exe b/dev/build/exe/doliwamp/UsedPort.exe similarity index 100% rename from build/exe/doliwamp/UsedPort.exe rename to dev/build/exe/doliwamp/UsedPort.exe diff --git a/build/exe/doliwamp/builddemosslfiles.bat.install b/dev/build/exe/doliwamp/builddemosslfiles.bat.install similarity index 100% rename from build/exe/doliwamp/builddemosslfiles.bat.install rename to dev/build/exe/doliwamp/builddemosslfiles.bat.install diff --git a/build/exe/doliwamp/ca_demo_dolibarr.crt b/dev/build/exe/doliwamp/ca_demo_dolibarr.crt similarity index 100% rename from build/exe/doliwamp/ca_demo_dolibarr.crt rename to dev/build/exe/doliwamp/ca_demo_dolibarr.crt diff --git a/build/exe/doliwamp/ca_demo_dolibarr.key b/dev/build/exe/doliwamp/ca_demo_dolibarr.key similarity index 100% rename from build/exe/doliwamp/ca_demo_dolibarr.key rename to dev/build/exe/doliwamp/ca_demo_dolibarr.key diff --git a/build/exe/doliwamp/config.inc.php.install b/dev/build/exe/doliwamp/config.inc.php.install similarity index 100% rename from build/exe/doliwamp/config.inc.php.install rename to dev/build/exe/doliwamp/config.inc.php.install diff --git a/build/exe/doliwamp/dolibarr.conf.install b/dev/build/exe/doliwamp/dolibarr.conf.install similarity index 84% rename from build/exe/doliwamp/dolibarr.conf.install rename to dev/build/exe/doliwamp/dolibarr.conf.install index db7a3ddc048..2b5e5589695 100644 --- a/build/exe/doliwamp/dolibarr.conf.install +++ b/dev/build/exe/doliwamp/dolibarr.conf.install @@ -1,4 +1,4 @@ -Alias /dolibarr "WAMPROOT/www/dolibarr/htdocs/" +Alias /dolibarr "WAMPROOT/www/dolibarr/htdocs/" # NOTE FOR APACHE 2.2: # To restrict access to dolibarr from outside set lines @@ -9,7 +9,7 @@ Alias /dolibarr "WAMPROOT/www/dolibarr/htdocs/" # # instead of # -# Order Allow,Deny +# Order Allow,Deny # Allow from all # # NOTE FOR APACHE 2.3: @@ -26,4 +26,4 @@ Alias /dolibarr "WAMPROOT/www/dolibarr/htdocs/" Options Indexes FollowSymLinks MultiViews AllowOverride all Require all granted - \ No newline at end of file + diff --git a/build/exe/doliwamp/doliwamp.bmp b/dev/build/exe/doliwamp/doliwamp.bmp similarity index 100% rename from build/exe/doliwamp/doliwamp.bmp rename to dev/build/exe/doliwamp/doliwamp.bmp diff --git a/build/exe/doliwamp/doliwamp.iss b/dev/build/exe/doliwamp/doliwamp.iss similarity index 98% rename from build/exe/doliwamp/doliwamp.iss rename to dev/build/exe/doliwamp/doliwamp.iss index 1a14058de68..a637b7deca1 100644 --- a/build/exe/doliwamp/doliwamp.iss +++ b/dev/build/exe/doliwamp/doliwamp.iss @@ -24,7 +24,7 @@ OutputBaseFilename=__FILENAMEEXEDOLIWAMP__ ;OutputManifestFile=build\doliwampbuild.log ; Define full path from which all relative path are defined ; You must modify this to put here your dolibarr root directory -SourceDir=..\..\.. +SourceDir=..\..\..\.. AppId=doliwamp AppPublisher=DoliCloud AppPublisherURL=https://www.dolicloud.com @@ -205,20 +205,20 @@ begin if Result then begin - + //---------------------------------------------- // Test if msvcr110 DLL has been installed //---------------------------------------------- - + if not FileExists ('c:/windows/system32/msvcr110.dll') and not FileExists ('c:/windows/sysWOW64/msvcr110.dll') and not FileExists ('c:/winnt/system32/msvcr110.dll') and not FileExists ('c:/winnt/sysWOW64/msvcr110.dll') then begin - // TODO - offer to install the component by opening the URL in the default browser, abort installation if user doesn't accept + // TODO - offer to install the component by opening the URL in the default browser, abort installation if user doesn't accept Result := MsgBox(CustomMessage('DLLMissing')+#13#13+CustomMessage('ContinueAnyway'), mbConfirmation, MB_YESNO) = IDYES; - + end; // Pb seems similar with msvcp110.dll //vcredist_x64.exe - + end; end; @@ -307,7 +307,7 @@ begin Page.Add(CustomMessage('MySqlPort'), False); Page.Add(CustomMessage('MySqlPassword'), False); end; - + // Default values Page.Values[0] := smtpServer; Page.Values[1] := apachePort; @@ -348,7 +348,7 @@ var themessage: String; begin res := True; - + //MsgBox(''+CurPageID,mbConfirmation,MB_YESNO); if CurPageID = Page.ID then @@ -361,12 +361,12 @@ begin pathWithSlashes := path; StringChange (pathWithSlashes, '\','/'); - + // Migration of database // datadir := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/data'; // exedirold := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/'; // exedirnew := pathWithSlashes+'/bin/mariadb/mariadb10.6.5/'; - + // If we have a new database version, we should only copy old my.ini file into new directory // and change only all basedir= strings to use new version. Like this, data dir is still correct. // Install of service and stop/start scripts are already rebuild by installer. @@ -391,7 +391,7 @@ begin // Copie des dll de php vers apache //---------------------------------------------- // TODO Update this list when changing PHP/Apache versions - + phpDllCopy := 'libssh2.dll'; filecopy (pathWithSlashes+'/bin/php/php'+phpVersion+'/'+phpDllCopy, pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/'+phpDllCopy, False); phpDllCopy := 'icuuc64.dll'; @@ -424,7 +424,7 @@ begin if not FileExists (srcFile) then begin firstinstall := true; - + // Values from wizard mysmtp := Page.Values[0]; myporta := Page.Values[1]; @@ -435,7 +435,7 @@ begin else begin firstinstall := false; - + // Values from registry mysmtp := smtpServer; myporta := apachePort; @@ -443,13 +443,13 @@ begin myport := mysqlPort; mypass := newPassword; end; - + paramok := True; // TODO Test if choice of param is ok if firstinstall if (firstinstall) then begin - + // Test serveur SMTP // if paramok then // begin @@ -463,7 +463,7 @@ begin // paramok := False; // end; // end; - + if paramok then begin // Test port Apache @@ -477,7 +477,7 @@ begin paramok := False; end; end; - + if paramok then begin // Test port Mysql @@ -491,13 +491,13 @@ begin paramok := False; end; end; - + end; - + if paramok then begin - + //---------------------------------------------- // check that we don't try an upgrade (mysql upgrade no supported) //---------------------------------------------- @@ -512,7 +512,7 @@ begin //---------------------------------------------- // Rename file c:/windows/php.ini (we don't want it) //---------------------------------------------- - + if FileExists ('c:/windows/php.ini') then begin if MsgBox('A previous c:/windows/php.ini file has been detected in your Windows directory. Do you want DoliWamp to rename it to php_old.ini to avoid conflicts ?',mbConfirmation,MB_YESNO) = IDYES then @@ -527,28 +527,28 @@ begin RenameFile('c:/winnt/php.ini','c:/winnt/php_old.ini'); end; end; - - - + + + //---------------------------------------------- // Create rundoliwamp.bat, rundolihelp.bat and rundoliadmin.bat (if not exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/rundoliwamp.bat'; srcFile := pathWithSlashes+'/rundoliwamp.bat.install'; - + destFileH := pathWithSlashes+'/rundolihelp.bat'; srcFileH := pathWithSlashes+'/rundolihelp.bat.install'; - + destFileA := pathWithSlashes+'/rundoliadmin.bat'; srcFileA := pathWithSlashes+'/rundoliadmin.bat.install'; - + if (not FileExists (destFile) or not FileExists (destFileH) or not FileExists (destFileA)) and (FileExists(srcFile) and FileExists(srcFileH) and FileExists(srcFileA)) then begin //navigateur browser := 'iexplore.exe'; - + if browser = 'iexplore.exe' then begin if FileExists (pfPath+'/Google/Chrome/Application/chrome.exe') then @@ -570,7 +570,7 @@ begin end; end; end; - + if browser = 'iexplore.exe' then begin if FileExists (winPath+'/SystemApps/Microsoft.MicrosoftEdge_8wekyb3d8bbwe/MicrosoftEdge.exe') then @@ -604,19 +604,19 @@ begin GetOpenFileName(CustomMessage('ChooseDefaultBrowser'), browser, winPath, 'exe files (*.exe)|*.exe|All files (*.*)|*.*' ,'exe'); end; end; - + LoadStringFromFile (srcFile, srcContents); StringChangeEx (srcContents, 'WAMPBROWSER', browser, True); StringChangeEx (srcContents, 'WAMPAPACHEPORT', myporta, True); StringChangeEx (srcContents, 'WAMPAPACHEPSSL', myportas, True); SaveStringToFile(destFile,srcContents, False); - + LoadStringFromFile (srcFileH, srcContents); StringChangeEx (srcContents, 'WAMPBROWSER', browser, True); StringChangeEx (srcContents, 'WAMPAPACHEPORT', myporta, True); StringChangeEx (srcContents, 'WAMPAPACHEPSSL', myportas, True); SaveStringToFile(destFileH,srcContents, False); - + LoadStringFromFile (srcFileA, srcContents); StringChangeEx (srcContents, 'WAMPBROWSER', browser, True); StringChangeEx (srcContents, 'WAMPAPACHEPORT', myporta, True); @@ -628,23 +628,23 @@ begin if MsgBox(CustomMessage('DoliWampWillStartApacheMysql'),mbConfirmation,MB_YESNO) = IDYES then begin - + //---------------------------------------------- // Create file alias dolibarr (if not exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/alias/dolibarr.conf'; srcFile := pathWithSlashes+'/alias/dolibarr.conf.install'; - + if FileExists(srcFile) then begin if not FileExists (destFile) then begin LoadStringFromFile (srcFile, srcContents); - + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); - + SaveStringToFile(destFile, srcContents, False); end else @@ -652,25 +652,25 @@ begin // We must replace to use format 2.4 of apache DeleteFile(destFile); LoadStringFromFile (srcFile, srcContents); - + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); - + SaveStringToFile(destFile, srcContents, False); end; end; DeleteFile(srcFile); - - - - + + + + //---------------------------------------------- // Create file httpd.conf (if not exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/conf/httpd.conf'; srcFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/conf/httpd.conf.install'; - + if not FileExists (destFile) and FileExists (srcFile) then begin LoadStringFromFile (srcFile, srcContents); @@ -681,42 +681,42 @@ begin StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); StringChangeEx (srcContents, 'WAMPAPACHEPORT', myporta, True); StringChangeEx (srcContents, 'WAMPAPACHEPSSL', myportas, True); - + SaveStringToFile(destFile,srcContents, False); end; - - - - + + + + //---------------------------------------------- // Create file my.ini (if not exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/bin/mariadb/mariadb'+mysqlVersion+'/my.ini'; srcFile := pathWithSlashes+'/bin/mariadb/mariadb'+mysqlVersion+'/my.ini.install'; - + if not FileExists (destFile) then begin LoadStringFromFile (srcFile, srcContents); - + //installDir et version de php StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); - + SaveStringToFile(destFile,srcContents, False); end; - - - - + + + + //---------------------------------------------- // Create file index.php (always but archive if exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/www/index.php'; srcFile := pathWithSlashes+'/www/index.php.install'; - + if not FileExists (destFile) then begin LoadStringFromFile (srcFile, srcContents); @@ -738,164 +738,164 @@ begin StringChangeEx (srcContents, 'WAMPAPACHEPSSL', myportas, True); SaveStringToFile(destFile, srcContents, False); end; - - - - - + + + + + //---------------------------------------------- // Create file dolibarr parametres predefinis install web (if not exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/www/dolibarr/htdocs/install/install.forced.php'; srcFile := pathWithSlashes+'/www/dolibarr/htdocs/install/install.forced.php.install'; - + if not FileExists (destFile) and FileExists (srcFile) then begin LoadStringFromFile (srcFile, srcContents); - + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); - - SaveStringToFile(destFile,srcContents, False); - end; - - - - //---------------------------------------------- - // Create file install_services.bat (always) - //---------------------------------------------- - - destFile := pathWithSlashes+'/install_services.bat'; - srcFile := pathWithSlashes+'/install_services.bat.install'; - - if FileExists(srcFile) then - begin - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); - StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); - StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); - StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); - StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); - - SaveStringToFile(destFile,srcContents, False); - end; - - - - //---------------------------------------------- - // Create file uninstall_services.bat (always) - //---------------------------------------------- - - destFile := pathWithSlashes+'/uninstall_services.bat'; - srcFile := pathWithSlashes+'/uninstall_services.bat.install'; - - if FileExists (srcFile) then - begin - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); - StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); - StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); - - SaveStringToFile(destFile,srcContents, False); - end; - - - - //---------------------------------------------- - // Create file mysqlinitpassword.bat (always) - //---------------------------------------------- - - destFile := pathWithSlashes+'/mysqlinitpassword.bat'; - srcFile := pathWithSlashes+'/mysqlinitpassword.bat.install'; - - if FileExists (srcFile) then - begin - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); - StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); - StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); - - SaveStringToFile(destFile,srcContents, False); - end; - - - //---------------------------------------------- - // Create file mysqltestinstall.bat (always) - //---------------------------------------------- - - destFile := pathWithSlashes+'/mysqltestinstall.bat'; - srcFile := pathWithSlashes+'/mysqltestinstall.bat.install'; - - if FileExists (srcFile) then - begin - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); - StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); - StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); - StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); - - SaveStringToFile(destFile,srcContents, False); - end; - - - //---------------------------------------------- - // Create file startdoliwamp_manual_donotuse.bat (always) - //---------------------------------------------- - - destFile := pathWithSlashes+'/startdoliwamp_manual_donotuse.bat'; - srcFile := pathWithSlashes+'/startdoliwamp_manual_donotuse.bat.install'; - - if FileExists (srcFile) then - begin - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); - StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); - StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); - StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); - - SaveStringToFile(destFile,srcContents, False); - end; - - - //---------------------------------------------- - // Create file builddemosslfiles.bat (always) - //---------------------------------------------- - - destFile := pathWithSlashes+'/builddemosslfiles.bat'; - srcFile := pathWithSlashes+'/builddemosslfiles.bat.install'; - - if FileExists (srcFile) then - begin - LoadStringFromFile (srcFile, srcContents); - - //version de apache et mysql - StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); - StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); - + SaveStringToFile(destFile,srcContents, False); end; - + + + //---------------------------------------------- + // Create file install_services.bat (always) + //---------------------------------------------- + + destFile := pathWithSlashes+'/install_services.bat'; + srcFile := pathWithSlashes+'/install_services.bat.install'; + + if FileExists(srcFile) then + begin + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); + StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); + StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); + StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); + StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); + + SaveStringToFile(destFile,srcContents, False); + end; + + + + //---------------------------------------------- + // Create file uninstall_services.bat (always) + //---------------------------------------------- + + destFile := pathWithSlashes+'/uninstall_services.bat'; + srcFile := pathWithSlashes+'/uninstall_services.bat.install'; + + if FileExists (srcFile) then + begin + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); + StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); + StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); + + SaveStringToFile(destFile,srcContents, False); + end; + + + + //---------------------------------------------- + // Create file mysqlinitpassword.bat (always) + //---------------------------------------------- + + destFile := pathWithSlashes+'/mysqlinitpassword.bat'; + srcFile := pathWithSlashes+'/mysqlinitpassword.bat.install'; + + if FileExists (srcFile) then + begin + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); + StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); + StringChangeEx (srcContents, 'WAMPMYSQLNEWPASSWORD', mypass, True); + + SaveStringToFile(destFile,srcContents, False); + end; + + + //---------------------------------------------- + // Create file mysqltestinstall.bat (always) + //---------------------------------------------- + + destFile := pathWithSlashes+'/mysqltestinstall.bat'; + srcFile := pathWithSlashes+'/mysqltestinstall.bat.install'; + + if FileExists (srcFile) then + begin + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); + StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); + StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); + StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); + + SaveStringToFile(destFile,srcContents, False); + end; + + + //---------------------------------------------- + // Create file startdoliwamp_manual_donotuse.bat (always) + //---------------------------------------------- + + destFile := pathWithSlashes+'/startdoliwamp_manual_donotuse.bat'; + srcFile := pathWithSlashes+'/startdoliwamp_manual_donotuse.bat.install'; + + if FileExists (srcFile) then + begin + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); + StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); + StringChangeEx (srcContents, 'WAMPMYSQLVERSION', mysqlVersion, True); + StringChangeEx (srcContents, 'WAMPMYSQLPORT', myport, True); + + SaveStringToFile(destFile,srcContents, False); + end; + + + //---------------------------------------------- + // Create file builddemosslfiles.bat (always) + //---------------------------------------------- + + destFile := pathWithSlashes+'/builddemosslfiles.bat'; + srcFile := pathWithSlashes+'/builddemosslfiles.bat.install'; + + if FileExists (srcFile) then + begin + LoadStringFromFile (srcFile, srcContents); + + //version de apache et mysql + StringChangeEx (srcContents, 'WAMPROOT', pathWithSlashes, True); + StringChangeEx (srcContents, 'WAMPAPACHEVERSION', apacheVersion, True); + + SaveStringToFile(destFile,srcContents, False); + end; + + //---------------------------------------------- // Create file php.ini in php (if not exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/php.ini'; srcFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/php.ini.install'; - + if not FileExists (destFile) and FileExists(srcFile) then begin LoadStringFromFile (srcFile, srcContents); @@ -904,14 +904,14 @@ begin StringChangeEx (srcContents, 'WAMPPHPVERSION', phpVersion, True); SaveStringToFile(destFile,srcContents, False); end; - + //---------------------------------------------- // Create file php.ini in apache (if not exists) //---------------------------------------------- - + destFile := pathWithSlashes+'/bin/apache/apache'+apacheVersion+'/bin/php.ini'; srcFile := pathWithSlashes+'/bin/php/php'+phpVersion+'/php.ini.install'; - + if not FileExists (destFile) and FileExists(srcFile) then begin LoadStringFromFile (srcFile, srcContents); @@ -920,61 +920,61 @@ begin StringChangeEx (srcContents, 'WAMPPHPVERSION', phpVersion, True); SaveStringToFile(destFile,srcContents, False); end; - - - + + + // Uninstall services batFile := path+'\uninstall_services.bat'; Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - + // Install services batFile := path+'\install_services.bat'; Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - + // Start services batFile := path+'\startdoliwamp.bat'; Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); //MsgBox(myResult,mbInformation,MB_OK); - + // Change mysql password (works only if not yet defined) batFile := path+'\mysqlinitpassword.bat'; Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - + // Remove dangerous files batFile := path+'\removefiles.bat'; Exec(batFile, '',path+'\', SW_HIDE, ewWaitUntilTerminated, myResult); - + // Save parameters to registry RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'smtpServer', mysmtp); RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'apachePort', myporta); RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'apachePSSL', myportas); RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'mysqlPort', myport); RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\NLTechno\DoliWamp', 'newPassword', mypass); - - + + res := True; - + end else begin - + // MsgBox('Apache and Mysql installation has been canceled. Please select parameters to start their installation.',mbInformation,MB_OK) res := False; - + end; - + end else begin - + //MsgBox('Selected values seems to be already used. Please choose other values.',mbInformation,MB_OK); - + res := False; end; - + end; diff --git a/build/exe/doliwamp/doliwampoff.ico b/dev/build/exe/doliwamp/doliwampoff.ico similarity index 100% rename from build/exe/doliwamp/doliwampoff.ico rename to dev/build/exe/doliwamp/doliwampoff.ico diff --git a/build/exe/doliwamp/doliwampon.ico b/dev/build/exe/doliwamp/doliwampon.ico similarity index 100% rename from build/exe/doliwamp/doliwampon.ico rename to dev/build/exe/doliwamp/doliwampon.ico diff --git a/build/exe/doliwamp/doliwampsmall.bmp b/dev/build/exe/doliwamp/doliwampsmall.bmp similarity index 100% rename from build/exe/doliwamp/doliwampsmall.bmp rename to dev/build/exe/doliwamp/doliwampsmall.bmp diff --git a/build/exe/doliwamp/httpd.conf.install b/dev/build/exe/doliwamp/httpd.conf.install similarity index 99% rename from build/exe/doliwamp/httpd.conf.install rename to dev/build/exe/doliwamp/httpd.conf.install index 6a65e0833f9..6a90f70212b 100644 --- a/build/exe/doliwamp/httpd.conf.install +++ b/dev/build/exe/doliwamp/httpd.conf.install @@ -584,7 +584,7 @@ AddType application/x-pkcs7-crl .crl #SSLPassPhraseDialog builtin # Inter-Process Session Cache: -# Configure the SSL Session Cache: First the mechanism +# Configure the SSL Session Cache: First the mechanism # to use and second the expiring timeout (in seconds). #SSLSessionCache "dbm:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_scache" #SSLSessionCache "shmcb:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)" @@ -592,7 +592,7 @@ AddType application/x-pkcs7-crl .crl # Semaphore: # Configure the path to the mutual exclusion semaphore the -# SSL engine uses internally for inter-process synchronization. +# SSL engine uses internally for inter-process synchronization. #SSLMutex "file:C:/Program Files/Apache Software Foundation/Apache2.2/logs/ssl_mutex" ## @@ -712,7 +712,7 @@ SSLCertificateKeyFile "WAMPROOT/myserver.key" # and no other module can change it. # o OptRenegotiate: # This enables optimized SSL connection renegotiation handling when SSL -# directives are used in per-directory context. +# directives are used in per-directory context. #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire # # SSLOptions +StdEnvVars @@ -738,7 +738,7 @@ SSLCertificateKeyFile "WAMPROOT/myserver.key" # alert of the client. This is 100% SSL/TLS standard compliant, but in # practice often causes hanging connections with brain-dead browsers. Use # this only for browsers where you know that their SSL implementation -# works correctly. +# works correctly. # Notice: Most problems of broken clients are also related to the HTTP # keep-alive facility, so you usually additionally want to disable # keep-alive for those clients, too. Use variable "nokeepalive" for this. @@ -749,8 +749,8 @@ SSLCertificateKeyFile "WAMPROOT/myserver.key" # nokeepalive ssl-unclean-shutdown \ # downgrade-1.0 force-response-1.0 - + -Include "${INSTALL_DIR}/alias/*.conf" \ No newline at end of file +Include "${INSTALL_DIR}/alias/*.conf" diff --git a/build/exe/doliwamp/index.php.install b/dev/build/exe/doliwamp/index.php.install similarity index 100% rename from build/exe/doliwamp/index.php.install rename to dev/build/exe/doliwamp/index.php.install diff --git a/build/exe/doliwamp/install.forced.php.install b/dev/build/exe/doliwamp/install.forced.php.install similarity index 99% rename from build/exe/doliwamp/install.forced.php.install rename to dev/build/exe/doliwamp/install.forced.php.install index 8947154a57b..8e86efa7654 100644 --- a/build/exe/doliwamp/install.forced.php.install +++ b/dev/build/exe/doliwamp/install.forced.php.install @@ -25,4 +25,4 @@ $force_install_lockinstall='644'; $force_install_distrib='doliwamp'; $force_install_module=''; -?> \ No newline at end of file +?> diff --git a/build/exe/doliwamp/install_services.bat.install b/dev/build/exe/doliwamp/install_services.bat.install similarity index 97% rename from build/exe/doliwamp/install_services.bat.install rename to dev/build/exe/doliwamp/install_services.bat.install index 981c8b18b70..39318b5e6c6 100644 --- a/build/exe/doliwamp/install_services.bat.install +++ b/dev/build/exe/doliwamp/install_services.bat.install @@ -6,7 +6,7 @@ REM -------------------------------------------------------- echo ---- Execute install_services.bat >> doliwamp.log 2>>&1 REM NET STOP doliwampapache -REM NET STOP doliwampmysqld +REM NET STOP doliwampmysqld cd "WAMPROOT" diff --git a/build/exe/doliwamp/my.ini.install b/dev/build/exe/doliwamp/my.ini.install similarity index 99% rename from build/exe/doliwamp/my.ini.install rename to dev/build/exe/doliwamp/my.ini.install index 4d2037d8e97..cfe94ec2748 100644 --- a/build/exe/doliwamp/my.ini.install +++ b/dev/build/exe/doliwamp/my.ini.install @@ -11,16 +11,16 @@ # (@localstatedir@ for this installation) or to # ~/.my.cnf to set user-specific options. # -# On Windows you should keep this file in the installation directory +# On Windows you should keep this file in the installation directory # of your server (e.g. C:\Program Files\MySQL\MySQL Server 4.1). To -# make sure the server reads the config file use the startup option -# "--defaults-file". +# make sure the server reads the config file use the startup option +# "--defaults-file". # -# To run run the server from the command line, execute this in a +# To run run the server from the command line, execute this in a # command line shell, e.g. # mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini" # -# To install the server as a Windows service manually, execute this in a +# To install the server as a Windows service manually, execute this in a # command line shell, e.g. # mysqld --install MySQL41 --defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini" # @@ -57,7 +57,7 @@ port=WAMPMYSQLPORT # ---------------------------------------------------------------------- # # The following options will be read by the MySQL Server. Make sure that -# you have installed the server correctly (see above) so it reads this +# you have installed the server correctly (see above) so it reads this # file. # diff --git a/build/exe/doliwamp/mysqlinitpassword.bat.install b/dev/build/exe/doliwamp/mysqlinitpassword.bat.install similarity index 89% rename from build/exe/doliwamp/mysqlinitpassword.bat.install rename to dev/build/exe/doliwamp/mysqlinitpassword.bat.install index 4b9e9ac4173..70f07e76168 100644 --- a/build/exe/doliwamp/mysqlinitpassword.bat.install +++ b/dev/build/exe/doliwamp/mysqlinitpassword.bat.install @@ -3,11 +3,11 @@ REM ----------------------------------- REM This script initialize Mysql root password WHEN PASSWORD IS EMPTY. REM An error is returned IF PASSWORD IS ALREADY SET. REM ----------------------------------- -REM To change password, run following SQL command: +REM To change password, run following SQL command: REM GRANT ALL ON *.* TO login@localhost IDENTIFIED BY "newpassword" REM echo ---- Show content of script mysqlinitpassword before running it >> doliwamp.log 2>>&1 -REM type .\mysqlinitpassword.bat >> doliwamp.log 2>>&1 +REM type .\mysqlinitpassword.bat >> doliwamp.log 2>>&1 REM Wait the mysql init by first startup is ok REM sleep is not a windows command @@ -20,4 +20,3 @@ echo For an update, you will get an "Access denied" error, ignore this error. >> .\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysqladmin -v -w6 -P WAMPMYSQLPORT -u root password WAMPMYSQLNEWPASSWORD >> doliwamp.log 2>>&1 echo ---- End script >> doliwamp.log 2>>&1 - diff --git a/build/exe/doliwamp/mysqltestinstall.bat.install b/dev/build/exe/doliwamp/mysqltestinstall.bat.install similarity index 89% rename from build/exe/doliwamp/mysqltestinstall.bat.install rename to dev/build/exe/doliwamp/mysqltestinstall.bat.install index b718cf94ac8..2736506ded2 100644 --- a/build/exe/doliwamp/mysqltestinstall.bat.install +++ b/dev/build/exe/doliwamp/mysqltestinstall.bat.install @@ -2,7 +2,7 @@ REM ------------------------------------------------------------ REM Launch a test to connect to mysql REM ------------------------------------------------------------ -REM To change password, run following SQL command: +REM To change password, run following SQL command: REM GRANT ALL ON *.* TO login@localhost IDENTIFIED BY "newpassword" echo ----------------------------------------------------------- @@ -16,7 +16,7 @@ echo ------------------------------------------------------------ SET SAVES= -SET /P SAVES=Enter password to test: +SET /P SAVES=Enter password to test: echo Try to connect to mysql with this password .\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysql -P WAMPMYSQLPORT -u root -p%SAVES% diff --git a/build/exe/doliwamp/openssl.conf b/dev/build/exe/doliwamp/openssl.conf similarity index 98% rename from build/exe/doliwamp/openssl.conf rename to dev/build/exe/doliwamp/openssl.conf index c053b07c508..ff2d7562552 100644 --- a/build/exe/doliwamp/openssl.conf +++ b/dev/build/exe/doliwamp/openssl.conf @@ -48,7 +48,7 @@ string_mask = nombstr [ req_distinguished_name ] countryName = Country Name (2 letter code) -countryName_default = +countryName_default = countryName_min = 2 countryName_max = 2 stateOrProvinceName = State or Province Name (full name) @@ -87,4 +87,3 @@ basicConstraints = CA:true [ crl_ext ] authorityKeyIdentifier = keyid:always,issuer:always - diff --git a/build/exe/doliwamp/php.ini.install b/dev/build/exe/doliwamp/php.ini.install similarity index 99% rename from build/exe/doliwamp/php.ini.install rename to dev/build/exe/doliwamp/php.ini.install index cae5269f52e..1a82b065aed 100644 --- a/build/exe/doliwamp/php.ini.install +++ b/dev/build/exe/doliwamp/php.ini.install @@ -44,7 +44,7 @@ ; If you use constants in your value, and these constants belong to a ; dynamically loaded extension (either a PHP extension or a Zend extension), ; you may only use these constants *after* the line that loads the extension. -; +; ; ;;;;;;;;;;;;;;;;;;; ; About this file ; @@ -361,11 +361,11 @@ error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT ; ; possible values for display_errors: ; -; Off - Do not display any errors -; stderr - Display errors to STDERR (affects only CGI/CLI binaries!) +; Off - Do not display any errors +; stderr - Display errors to STDERR (affects only CGI/CLI binaries!) ; On or stdout - Display errors to STDOUT (default) -; -; To output errors to STDERR with CGI/CLI: +; +; To output errors to STDERR with CGI/CLI: ;display_errors = "stderr" ; ; Default @@ -714,9 +714,9 @@ date.timezone = UTC ;PCRE library backtracking limit. ;pcre.backtrack_limit=100000 -;PCRE library recursion limit. -;Please note that if you set this value to a high number you may consume all -;the available process stack and eventually crash PHP (due to reaching the +;PCRE library recursion limit. +;Please note that if you set this value to a high number you may consume all +;the available process stack and eventually crash PHP (due to reaching the ;stack size limit imposed by the Operating System). ;pcre.recursion_limit=100000 @@ -1047,7 +1047,7 @@ session.cookie_path = / session.cookie_domain = ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. -session.cookie_httponly = +session.cookie_httponly = ; Handler used to serialize data. php is the standard serializer of PHP. session.serialize_handler = php @@ -1174,7 +1174,7 @@ mssql.secure_connection = Off ; FreeTDS defaults to 4096 ;mssql.max_procs = -1 -; Specify client character set. +; Specify client character set. ; If empty or not set the client charset from freetds.comf is used ; This is only used when compiled with FreeTDS ;mssql.charset = "ISO-8859-1" @@ -1300,7 +1300,7 @@ tidy.clean_output = Off soap.wsdl_cache_enabled=1 ; Sets the directory name where SOAP extension will put cache files. soap.wsdl_cache_dir="/tmp" -; (time to live) Sets the number of second while cached file will be used +; (time to live) Sets the number of second while cached file will be used ; instead of original one. soap.wsdl_cache_ttl=86400 diff --git a/build/exe/doliwamp/phpmyadmin.conf.install b/dev/build/exe/doliwamp/phpmyadmin.conf.install similarity index 93% rename from build/exe/doliwamp/phpmyadmin.conf.install rename to dev/build/exe/doliwamp/phpmyadmin.conf.install index 5f0e806d47b..33a55ec8651 100644 --- a/build/exe/doliwamp/phpmyadmin.conf.install +++ b/dev/build/exe/doliwamp/phpmyadmin.conf.install @@ -1,9 +1,9 @@ -Alias /phpmyadmin "WAMPROOT/apps/phpmyadminWAMPPHPMYADMINVERSION/" +Alias /phpmyadmin "WAMPROOT/apps/phpmyadminWAMPPHPMYADMINVERSION/" # NOTE FOR APACHE 2.2: # To grant access to dolibarr from outside set lines # -# Order Allow,Deny +# Order Allow,Deny # Allow from all # # instead of @@ -26,4 +26,4 @@ Alias /phpmyadmin "WAMPROOT/apps/phpmyadminWAMPPHPMYADMINVERSION/" Options Indexes FollowSymLinks MultiViews AllowOverride all Require local - \ No newline at end of file + diff --git a/build/exe/doliwamp/removefiles.bat b/dev/build/exe/doliwamp/removefiles.bat similarity index 97% rename from build/exe/doliwamp/removefiles.bat rename to dev/build/exe/doliwamp/removefiles.bat index f00e46be7b9..06d9a9f8fa0 100644 --- a/build/exe/doliwamp/removefiles.bat +++ b/dev/build/exe/doliwamp/removefiles.bat @@ -1,3 +1,2 @@ @echo off del /F .\mysqlinitpassword.bat - diff --git a/build/exe/doliwamp/rundoliadmin.bat.install b/dev/build/exe/doliwamp/rundoliadmin.bat.install similarity index 97% rename from build/exe/doliwamp/rundoliadmin.bat.install rename to dev/build/exe/doliwamp/rundoliadmin.bat.install index c5186c7d1e7..a52ec3005f1 100644 --- a/build/exe/doliwamp/rundoliadmin.bat.install +++ b/dev/build/exe/doliwamp/rundoliadmin.bat.install @@ -4,4 +4,4 @@ REM ---------------------------- REM Go to admin center page start "WAMPBROWSER" http://localhost:WAMPAPACHEPORT/ -REM FOR EDGE start microsoft-edge:"http://localhost:WAMPAPACHEPORT/" \ No newline at end of file +REM FOR EDGE start microsoft-edge:"http://localhost:WAMPAPACHEPORT/" diff --git a/build/exe/doliwamp/rundolihelp.bat.install b/dev/build/exe/doliwamp/rundolihelp.bat.install similarity index 92% rename from build/exe/doliwamp/rundolihelp.bat.install rename to dev/build/exe/doliwamp/rundolihelp.bat.install index c1c4a7c3d27..3275636d554 100644 --- a/build/exe/doliwamp/rundolihelp.bat.install +++ b/dev/build/exe/doliwamp/rundolihelp.bat.install @@ -5,4 +5,4 @@ REM --------------------------- REM Go to help center page echo Please wait... start "WAMPBROWSER" http://localhost:WAMPAPACHEPORT/dolibarr/support/ -REM FOR EDGE start microsoft-edge:"http://localhost:WAMPAPACHEPORT/dolibarr/support/" \ No newline at end of file +REM FOR EDGE start microsoft-edge:"http://localhost:WAMPAPACHEPORT/dolibarr/support/" diff --git a/build/exe/doliwamp/rundoliwamp.bat.install b/dev/build/exe/doliwamp/rundoliwamp.bat.install similarity index 100% rename from build/exe/doliwamp/rundoliwamp.bat.install rename to dev/build/exe/doliwamp/rundoliwamp.bat.install diff --git a/build/exe/doliwamp/startdoliwamp.bat b/dev/build/exe/doliwamp/startdoliwamp.bat similarity index 100% rename from build/exe/doliwamp/startdoliwamp.bat rename to dev/build/exe/doliwamp/startdoliwamp.bat diff --git a/build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install b/dev/build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install similarity index 98% rename from build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install rename to dev/build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install index 675cfd4750e..12d0503f157 100644 --- a/build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install +++ b/dev/build/exe/doliwamp/startdoliwamp_manual_donotuse.bat.install @@ -9,11 +9,11 @@ REM ----------------------------------------------------- echo Running Apache as user process (this process does not return so we use "start") start WAMPROOT\bin\apache\apacheWAMPAPACHEVERSION\bin\httpd.exe -f conf\httpd.conf -echo +echo echo Running Mysql as user process (this process does not return so we use "start") REM start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console REM start WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld.exe --defaults-file=WAMPROOT\bin\mysql\mysqlWAMPMYSQLVERSION\my.ini --console start WAMPROOT\bin\mariadb\mariadbWAMPMYSQLVERSION\bin\mysqld.exe --defaults-file=WAMPROOT\bin\mariadb\mariadbWAMPMYSQLVERSION\my.ini --console -pause \ No newline at end of file +pause diff --git a/build/exe/doliwamp/stopdoliwamp.bat b/dev/build/exe/doliwamp/stopdoliwamp.bat similarity index 95% rename from build/exe/doliwamp/stopdoliwamp.bat rename to dev/build/exe/doliwamp/stopdoliwamp.bat index e7f8caefb77..4de82daa007 100644 --- a/build/exe/doliwamp/stopdoliwamp.bat +++ b/dev/build/exe/doliwamp/stopdoliwamp.bat @@ -8,7 +8,7 @@ echo ---- Execute stopdoliwamp.bat >> doliwamp.log 2>>&1 echo NET STOP doliwampapache >> doliwamp.log 2>>&1 NET STOP doliwampapache echo NET STOP doliwampmysqld >> doliwamp.log 2>>&1 -NET STOP doliwampmysqld +NET STOP doliwampmysqld echo Please wait... echo ---- End script >> doliwamp.log 2>>&1 diff --git a/build/exe/doliwamp/uninstall_services.bat.install b/dev/build/exe/doliwamp/uninstall_services.bat.install similarity index 96% rename from build/exe/doliwamp/uninstall_services.bat.install rename to dev/build/exe/doliwamp/uninstall_services.bat.install index a7329ab1b8f..1a9db9438e7 100644 --- a/build/exe/doliwamp/uninstall_services.bat.install +++ b/dev/build/exe/doliwamp/uninstall_services.bat.install @@ -9,7 +9,7 @@ echo ---- Execute uninstall_services.bat >> doliwamp.log 2>>&1 NET STOP doliwampapache .\bin\apache\apacheWAMPAPACHEVERSION\bin\httpd.exe -k uninstall -n doliwampapache -NET STOP doliwampmysqld +NET STOP doliwampmysqld REM Mysql 5.0- REM .\bin\mysql\mysqlWAMPMYSQLVERSION\bin\mysqld-nt.exe --remove doliwampmysqld REM Mysql 5.1+ diff --git a/dev/build/flatpack/org.flatpak.Dolibarr.json b/dev/build/flatpack/org.flatpak.Dolibarr.json new file mode 100644 index 00000000000..effbff7a10a --- /dev/null +++ b/dev/build/flatpack/org.flatpak.Dolibarr.json @@ -0,0 +1 @@ +"Help wanted..." diff --git a/build/generate_filelist_xml.php b/dev/build/generate_filelist_xml.php similarity index 100% rename from build/generate_filelist_xml.php rename to dev/build/generate_filelist_xml.php diff --git a/build/gource/README.md b/dev/build/gource/README.md similarity index 100% rename from build/gource/README.md rename to dev/build/gource/README.md diff --git a/build/gource/avatars/.gitignore b/dev/build/gource/avatars/.gitignore similarity index 100% rename from build/gource/avatars/.gitignore rename to dev/build/gource/avatars/.gitignore diff --git a/build/gource/avatars/README.md b/dev/build/gource/avatars/README.md similarity index 85% rename from build/gource/avatars/README.md rename to dev/build/gource/avatars/README.md index c0b3c6d79af..89aefaea466 100644 --- a/build/gource/avatars/README.md +++ b/dev/build/gource/avatars/README.md @@ -1 +1 @@ -Directory that will be filled with avatars images of developers for gource \ No newline at end of file +Directory that will be filled with avatars images of developers for gource diff --git a/build/gource/getavatars.pl b/dev/build/gource/getavatars.pl similarity index 96% rename from build/gource/getavatars.pl rename to dev/build/gource/getavatars.pl index 1f73da34e91..1f9b2ceffd5 100755 --- a/build/gource/getavatars.pl +++ b/dev/build/gource/getavatars.pl @@ -31,7 +31,7 @@ while() { #try and fetch image - my $grav_url = "http://www.gravatar.com/avatar/".md5_hex(lc $email)."?d=404&size=".$size; + my $grav_url = "http://www.gravatar.com/avatar/".md5_hex(lc $email)."?d=404&size=".$size; warn "fetching image for '$author' $email ($grav_url)...\n"; @@ -46,4 +46,3 @@ while() { } close GITLOG; - diff --git a/build/launchpad/README b/dev/build/launchpad/README similarity index 95% rename from build/launchpad/README rename to dev/build/launchpad/README index b1ebcd25678..a787bf3f9ad 100644 --- a/build/launchpad/README +++ b/dev/build/launchpad/README @@ -21,13 +21,13 @@ a package onto LaunchPad - Link project to official SCM server - Upload SSH public key onto account - Upload you GPG sign key -- Run from command line: +- Run from command line: bzr launchpad-login yourlogin bzr whoami "Your Name " bzr whoami - Edit file ~/.bashrc to add -DEBFULLNAME="" -DEBEMAIL="" +DEBFULLNAME="" +DEBEMAIL="" - Create a Bazaar directory mkdir bzr @@ -40,15 +40,15 @@ If you want to build/test package locally: # Push/declare Dolibarr sources to Launchpad #---------------------------------- -- From Launchpad project (https://launchpad.net/dolibarr), register a series: +- From Launchpad project (https://launchpad.net/dolibarr), register a series: Call it 'trunk' or 'stable' Use branch (dev): https://launchpad.net/~eldy/dolibarr/develop https://launchpad.net/~eldy/dolibarr/stable - or + or Use URL pattern (stable): For stable: http://www.dolibarr.org/files/lastbuild/package_debian-ubuntu/dolibarr_x.z.*.tar.gz - + - For Dev, you can also add link series to GIT HEAD. - For stable, you can init from command line cd bzr/dolibarr-stable @@ -131,7 +131,7 @@ List of recipes created https://code.launchpad.net/~eldy/+recipe/dolibarr-dev https://code.launchpad.net/~eldy/+recipe/dolibarr-stable - + # To get/download package from PPA: #---------------------------------- @@ -140,17 +140,15 @@ https://code.launchpad.net/~eldy/+recipe/dolibarr-stable > sudo apt-key add ~/.gnupg/pubring.gpg - Add Dolibarr Launchpad repository to your system setup by adding the two lines to /etc/apt/sources.list -For the development snapshot version: -deb http://ppa.launchpad.net/yourlogin/dolibarr-dev/ubuntu precise main -deb-src http://ppa.launchpad.net/yourlogin/dolibarr-dev/ubuntu precise main +For the development snapshot version: +deb http://ppa.launchpad.net/yourlogin/dolibarr-dev/ubuntu precise main +deb-src http://ppa.launchpad.net/yourlogin/dolibarr-dev/ubuntu precise main For the stable version: -deb http://ppa.launchpad.net/yourlogin/dolibarr-stable/ubuntu precise main -deb-src http://ppa.launchpad.net/yourlogin/dolibarr-stable/ubuntu precise main +deb http://ppa.launchpad.net/yourlogin/dolibarr-stable/ubuntu precise main +deb-src http://ppa.launchpad.net/yourlogin/dolibarr-stable/ubuntu precise main - Update your package cache: > apt-get update -- Install Dolibarr: +- Install Dolibarr: > apt-get install dolibarr - - diff --git a/build/makepack-dolibarr.pl b/dev/build/makepack-dolibarr.pl similarity index 99% rename from build/makepack-dolibarr.pl rename to dev/build/makepack-dolibarr.pl index e9e4f4b69b4..442466b128c 100755 --- a/build/makepack-dolibarr.pl +++ b/dev/build/makepack-dolibarr.pl @@ -63,7 +63,7 @@ $VERSION="4.0"; ($DIR=$0) =~ s/([^\/\\]+)$//; ($PROG=$1) =~ s/\.([^\.]*)$//; $Extension=$1; $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/; -$SOURCE="$DIR/.."; +$SOURCE="$DIR/../.."; $DESTI="$SOURCE/build"; if ($SOURCE !~ /^\// && $SOURCE !~ /^[a-z]:/i) { diff --git a/build/makepack-dolibarrmodule.conf b/dev/build/makepack-dolibarrmodule.conf similarity index 93% rename from build/makepack-dolibarrmodule.conf rename to dev/build/makepack-dolibarrmodule.conf index 33cd433ea98..caa17a9f851 100644 --- a/build/makepack-dolibarrmodule.conf +++ b/dev/build/makepack-dolibarrmodule.conf @@ -13,4 +13,4 @@ htdocs/mymodule/core/triggers/interface_mymodule.class.php htdocs/mymodule/page1.php htdocs/mymodule/page2.php htdocs/mymodule/sql/script1.sql -htdocs/mymodule/sql/script2.sql \ No newline at end of file +htdocs/mymodule/sql/script2.sql diff --git a/build/makepack-dolibarrmodule.pl b/dev/build/makepack-dolibarrmodule.pl similarity index 96% rename from build/makepack-dolibarrmodule.pl rename to dev/build/makepack-dolibarrmodule.pl index 8fbb28dc35f..5f51582a65b 100755 --- a/build/makepack-dolibarrmodule.pl +++ b/dev/build/makepack-dolibarrmodule.pl @@ -7,6 +7,8 @@ #---------------------------------------------------------------------------- use Cwd; +use Term::ANSIColor; + $OWNER="ldestailleur"; $GROUP="ldestailleur"; @@ -63,7 +65,7 @@ if (! $TEMP || ! -d $TEMP) { print "$PROG.$Extension aborted.\n"; sleep 2; exit 2; -} +} $BUILDROOT="$TEMP/dolibarr-buildroot"; @@ -74,11 +76,11 @@ for (0..@ARGV-1) { if ($ARGV[$_] =~ /^-*target=(\w+)/i) { $target=$1; $batch=1; } if ($ARGV[$_] =~ /^-*desti=(.+)/i) { $DESTI=$1; } if ($ARGV[$_] =~ /^-*prefix=(.+)/i) { - $PREFIX=$1; - $FILENAMESNAPSHOT.="-".$PREFIX; + $PREFIX=$1; + $FILENAMESNAPSHOT.="-".$PREFIX; } } -$SOURCE="$DIR/.."; +$SOURCE="$DIR/../.."; $DESTI="$SOURCE/build"; if ($ENV{"DESTIMODULES"}) { $DESTI = $ENV{"DESTIMODULES"}; } # Force output dir if env DESTIMODULES is defined $NEWDESTI=$DESTI; @@ -105,7 +107,7 @@ if ($PROJECTINPUT eq "all") closedir(DIR); foreach my $xxx (0..@rv-1) { if ($rv[$xxx] =~ /^makepack\-(.*)\.conf$/) - { + { @PROJECTLIST[$xxx]=$1; } } @@ -118,9 +120,9 @@ else # Loop on each projects foreach my $PROJECT (@PROJECTLIST) { - + $PROJECTLC=lc($PROJECT); - + if (! -f "makepack-".$PROJECT.".conf") { print "Error: can't open conf file makepack-".$PROJECT.".conf\n"; @@ -131,15 +133,15 @@ foreach my $PROJECT (@PROJECTLIST) { sleep 2; exit 2; } - + # Get version $MAJOR, $MINOR and $BUILD print "Version detected for module ".$PROJECT.": "; $result=open(IN,"<".$SOURCE."/htdocs/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php"); $custom=false; - if (! $result) { + if (! $result) { $result=open(IN,"<".$SOURCE."/htdocs/custom/".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php"); if (! $result) { - die "Error: Can't open descriptor file ".$SOURCE."/htdocs/(or /htdocs/custom/)".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php for reading.\n"; + die "Error: Can't open descriptor file ".$SOURCE."/htdocs/(or /htdocs/custom/)".$PROJECTLC."/core/modules/mod".$PROJECT.".class.php for reading.\n"; }else{ $custom = true; } @@ -158,7 +160,7 @@ foreach my $PROJECT (@PROJECTLIST) { $MINOR=; chomp($MINOR); } - + $FILENAME="$PROJECTLC"; $FILENAMETGZ="module_$PROJECTLC-$MAJOR.$MINOR".($BUILD ne ''?".$BUILD":""); $FILENAMEZIP="module_$PROJECTLC-$MAJOR.$MINOR".($BUILD ne ''?".$BUILD":""); @@ -170,29 +172,29 @@ foreach my $PROJECT (@PROJECTLIST) { # mandrake $RPMDIR="/usr/src/RPM"; } - - + + # Choose package targets #----------------------- $target="ZIP"; # Dolibarr modules are this format $CHOOSEDTARGET{uc($target)}=1; - - + + # Test if requirement is ok #-------------------------- foreach my $target (keys %CHOOSEDTARGET) { foreach my $req (split(/[,\s]/,$REQUIREMENTTARGET{$target})) { - # Test + # Test print "Test requirement for target $target: Search '$req'... "; $ret=`"$req" 2>&1`; $coderetour=$?; $coderetour2=$coderetour>>8; - if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/)) && $PROGPATH) { + if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/)) && $PROGPATH) { # Not found error, we try in PROGPATH $ret=`"$PROGPATH/$ALTERNATEPATH{$req}/$req\" 2>&1`; $coderetour=$?; $coderetour2=$coderetour>>8; $REQUIREMENTTARGET{$target}="$PROGPATH/$ALTERNATEPATH{$req}/$req"; - } - + } + if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/))) { # Not found error print "Not found\nCan't build target $target. Requirement '$req' not found in PATH\n"; @@ -204,9 +206,9 @@ foreach my $PROJECT (@PROJECTLIST) { } } } - + print "\n"; - + # Check if there is at least on target to build #---------------------------------------------- $nboftargetok=0; @@ -214,7 +216,7 @@ foreach my $PROJECT (@PROJECTLIST) { $nboftargetneedcvs=0; foreach my $target (keys %CHOOSEDTARGET) { if ($CHOOSEDTARGET{$target} < 0) { next; } - if ($target ne 'EXE' && $target ne 'EXEDOLIWAMP') + if ($target ne 'EXE' && $target ne 'EXEDOLIWAMP') { $nboftargetneedbuildroot++; } @@ -224,9 +226,9 @@ foreach my $PROJECT (@PROJECTLIST) { } $nboftargetok++; } - + if ($nboftargetok) { - + # Update CVS if required #----------------------- if ($nboftargetneedcvs) @@ -238,7 +240,7 @@ foreach my $PROJECT (@PROJECTLIST) { $ret=`cvs update -P -d 2>&1`; chdir("$olddir"); } - + # Update buildroot if required #----------------------------- if ($nboftargetneedbuildroot) @@ -246,18 +248,18 @@ foreach my $PROJECT (@PROJECTLIST) { if (! $copyalreadydone) { print "Delete directory $BUILDROOT\n"; $ret=`rm -fr "$BUILDROOT"`; - + mkdir "$BUILDROOT"; mkdir "$BUILDROOT/$PROJECTLC"; - + $result=open(IN,") { $entry=$_; - + if ($entry =~ /^#/) { next; } # Do not process comments - + $entry =~ s/\n//; if ($entry =~ /^!(.*)$/) # Exclude so remove file/dir @@ -265,9 +267,9 @@ foreach my $PROJECT (@PROJECTLIST) { print "Remove $BUILDROOT/$PROJECTLC/$1\n"; $ret=`rm -fr "$BUILDROOT/$PROJECTLC/"$1`; if ($? != 0) { die "Failed to delete a file to exclude declared into makepack-".$PROJECT.".conf file (Fails on line ".$entry.")\n"; } - next; + next; } - + $entry =~ /^(.*)\/[^\/]+/; print "Create directory $BUILDROOT/$PROJECTLC/$1\n"; $ret=`mkdir -p "$BUILDROOT/$PROJECTLC/$1"`; @@ -275,16 +277,16 @@ foreach my $PROJECT (@PROJECTLIST) { { print "Copy $SOURCE/$entry into $BUILDROOT/$PROJECTLC/$entry\n"; $ret=`cp -pr "$SOURCE/$entry" "$BUILDROOT/$PROJECTLC/$entry"`; - if ($? != 0) { die "Failed to make copy of a file declared into makepack-".$PROJECT.".conf file (Fails on line ".$entry.")\n"; } + if ($? != 0) { die "Failed to make copy of a file declared into makepack-".$PROJECT.".conf file (Fails on line ".$entry.")\n"; } } - - } + + } close IN; - + @timearray=localtime(time()); $fulldate=($timearray[5]+1900).'-'.($timearray[4]+1).'-'.$timearray[3].' '.$timearray[2].':'.$timearray[1]; open(VF,">$BUILDROOT/$PROJECTLC/build/version-".$PROJECTLC.".txt"); - + print "Create version file $BUILDROOT/$PROJECTLC/build/version-".$PROJECTLC.".txt with date ".$fulldate."\n"; $ret=`mkdir -p "$BUILDROOT/$PROJECTLC/build"`; print VF "Version: ".$MAJOR.".".$MINOR.($BUILD ne ''?".$BUILD":"")."\n"; @@ -312,18 +314,18 @@ foreach my $PROJECT (@PROJECTLIST) { $ret=`rm -fr $BUILDROOT/$PROJECTLC/test`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/Thumbs.db $BUILDROOT/$PROJECTLC/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/Thumbs.db $BUILDROOT/$PROJECTLC/*/*/*/*/Thumbs.db`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/CVS* $BUILDROOT/$PROJECTLC/*/CVS* $BUILDROOT/$PROJECTLC/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/CVS* $BUILDROOT/$PROJECTLC/*/*/*/*/*/CVS*`; - } - + } + # Build package for each target #------------------------------ foreach my $target (keys %CHOOSEDTARGET) { if ($CHOOSEDTARGET{$target} < 0) { next; } - + print "\nBuild package for target $target\n"; - + if ($target eq 'TGZ') { $NEWDESTI=$DESTI; - if (-d $DESTI.'/../modules') { $NEWDESTI=$DESTI.'/../modules'; } + if (-d $DESTI.'/../modules') { $NEWDESTI=$DESTI.'/../modules'; } print "Remove target $FILENAMETGZ.tgz...\n"; unlink("$NEWDESTI/$FILENAMETGZ.tgz"); @@ -340,15 +342,15 @@ foreach my $PROJECT (@PROJECTLIST) { } next; } - + if ($target eq 'ZIP') { $NEWDESTI=$DESTI; if (-d $DESTI.'/../modules') { $NEWDESTI=$DESTI.'/../modules'; } - + print "Remove target $FILENAMEZIP.zip...\n"; unlink "$NEWDESTI/$FILENAMEZIP.zip"; print "Compress $FILENAMEZIP into $FILENAMEZIP.zip...\n"; - + print "Go to directory $BUILDROOT/$PROJECTLC\n"; $olddir=getcwd(); chdir("$BUILDROOT/$PROJECTLC"); @@ -356,13 +358,13 @@ foreach my $PROJECT (@PROJECTLIST) { print $cmd."\n"; $ret= `$cmd`; chdir("$olddir"); - + print "Move $FILENAMEZIP.zip to $NEWDESTI/$FILENAMEZIP.zip\n"; $ret=`mv "$BUILDROOT/$FILENAMEZIP.zip" "$NEWDESTI/$FILENAMEZIP.zip"`; $ret=`chown $OWNER.$GROUP "$NEWDESTI/$FILENAMEZIP.zip"`; next; } - + if ($target eq 'EXE') { $NEWDESTI=$DESTI; if (-d $DESTI.'/../modules') { $NEWDESTI=$DESTI.'/../modules'; } @@ -377,11 +379,11 @@ foreach my $PROJECT (@PROJECTLIST) { rename("$SOURCE\\build\\exe\\$FILENAMEEXE.exe","$NEWDESTI/$FILENAMEEXE.exe"); next; } - + } - + } - + print "\n----- Summary -----\n"; foreach my $target (keys %CHOOSEDTARGET) { if ($CHOOSEDTARGET{$target} < 0) { diff --git a/build/makepack-dolibarrtheme.pl b/dev/build/makepack-dolibarrtheme.pl similarity index 97% rename from build/makepack-dolibarrtheme.pl rename to dev/build/makepack-dolibarrtheme.pl index 2171d87922e..6aeb32a5fcb 100755 --- a/build/makepack-dolibarrtheme.pl +++ b/dev/build/makepack-dolibarrtheme.pl @@ -6,6 +6,7 @@ #----------------------------------------------------------------------------- use Cwd; +use Term::ANSIColor; $PROJECT="dolibarr"; @@ -66,7 +67,7 @@ if (! $TEMP || ! -d $TEMP) { print "makepack-dolibarrtheme.pl aborted.\n"; sleep 2; exit 2; -} +} $BUILDROOT="$TEMP/dolibarr-buildroot"; @@ -108,7 +109,7 @@ if (-d "/usr/src/RPM") { $RPMDIR="/usr/src/RPM"; } -$SOURCE="$DIR/.."; +$SOURCE="$DIR/../.."; $DESTI="$SOURCE/build"; @@ -128,13 +129,13 @@ else { $cpt++; printf(" %d - %3s (%s)\n",$cpt,$target,"Need ".$REQUIREMENTTARGET{$target}); } - + # Are asked to select the file to move print "Choose one package number or several separated with space: "; - $NUM_SCRIPT=; + $NUM_SCRIPT=; chomp($NUM_SCRIPT); if ($NUM_SCRIPT =~ s/-//g) { - # Do not do copy + # Do not do copy $copyalreadydone=1; } if ($NUM_SCRIPT !~ /^[0-$cpt\s]+$/) @@ -164,16 +165,16 @@ else { #-------------------------- foreach my $target (keys %CHOOSEDTARGET) { foreach my $req (split(/[,\s]/,$REQUIREMENTTARGET{$target})) { - # Test + # Test print "Test requirement for target $target: Search '$req'... "; $ret=`"$req" 2>&1`; $coderetour=$?; $coderetour2=$coderetour>>8; - if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/)) && $PROGPATH) { + if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/)) && $PROGPATH) { # Not found error, we try in PROGPATH $ret=`"$PROGPATH/$ALTERNATEPATH{$req}/$req\" 2>&1`; $coderetour=$?; $coderetour2=$coderetour>>8; $REQUIREMENTTARGET{$target}="$PROGPATH/$ALTERNATEPATH{$req}/$req"; - } + } if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/))) { # Not found error @@ -218,15 +219,15 @@ if ($nboftargetok) { print "Clean $BUILDROOT\n"; $ret=`rm -fr $BUILDROOT/htdocs/theme/$PROJECT/Thumbs.db $BUILDROOT/htdocs/theme/$PROJECT/*/Thumbs.db $BUILDROOT/htdocs/theme/$PROJECT/*/*/Thumbs.db $BUILDROOT/htdocs/theme/$PROJECT/*/*/*/Thumbs.db`; $ret=`rm -fr $BUILDROOT/htdocs/theme/$PROJECT/CVS* $BUILDROOT/htdocs/theme/$PROJECT/*/CVS* $BUILDROOT/htdocs/theme/$PROJECT/*/*/CVS* $BUILDROOT/htdocs/theme/$PROJECT/*/*/*/CVS* $BUILDROOT/htdocs/theme/$PROJECT/*/*/*/*/CVS* $BUILDROOT/htdocs/theme/$PROJECT/*/*/*/*/*/CVS*`; - - + + # Build package for each target #------------------------------ foreach my $target (keys %CHOOSEDTARGET) { if ($CHOOSEDTARGET{$target} < 0) { next; } - + print "\nBuild package for target $target\n"; - + if ($target eq 'TGZ') { unlink $FILENAMETGZ.tgz; print "Compress $BUILDROOT/htdocs into $FILENAMETGZ.tgz...\n"; @@ -248,7 +249,7 @@ if ($nboftargetok) { $ret=`mv "$FILENAMEZIP.zip" "$DESTI/$FILENAMEZIP.zip"`; next; } - + } } diff --git a/build/makepack-howto.txt b/dev/build/makepack-howto.txt similarity index 100% rename from build/makepack-howto.txt rename to dev/build/makepack-howto.txt diff --git a/build/obs/README b/dev/build/obs/README similarity index 89% rename from build/obs/README rename to dev/build/obs/README index 6b047b42fcf..31be61db275 100644 --- a/build/obs/README +++ b/dev/build/obs/README @@ -1,19 +1,19 @@ README (English) ################################################## OBS Package tools -OBE - openSUSE Build Service +OBE - openSUSE Build Service ################################################## -This directory contains an instruction to explain +This directory contains an instruction to explain how to publish a package onto OBS. -# Create a project onto OBS ---------------------------- -https://build.opensuse.org +# Create a project onto OBS +--------------------------- +https://build.opensuse.org -# Packaging rules: +# Packaging rules: ------------------ https://en.opensuse.org/Portal:Packaging @@ -55,4 +55,4 @@ For example: https://bugzilla.novell.com/show_bug.cgi?id=848083 to be a maintene https://build.opensuse.org/project/show/Application:ERP - Once done, go into project, category, subproject and enter a subproject for your application. For example: Dolibarr -- Then go onto project into your home and ask a publish to the category/you project your created. +- Then go onto project into your home and ask a publish to the category/you project your created. diff --git a/build/pad/DoliWamp.pml b/dev/build/pad/DoliWamp.pml similarity index 99% rename from build/pad/DoliWamp.pml rename to dev/build/pad/DoliWamp.pml index cf3ed134961..05c87787ea5 100644 --- a/build/pad/DoliWamp.pml +++ b/dev/build/pad/DoliWamp.pml @@ -42,7 +42,7 @@ DoliWamp, the easy to use Dolibarr for Windows to manage your company,foundation DoliWamp is the Dolibarr ERP/CRM for Windows, the easy to use open source software to manage your activity (invoices, customers, suppliers, contracts, agenda, emailings...) and any other things a small or mid-sized business or a foundation needs. DoliWamp is the Dolibarr ERP/CRM autoinstaller for Windows users with no technical knowledge to install Dolibarr and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. Dolibarr ERP/CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations. - DoliWamp is the Dolibarr ERP/CRM for Windows. Dolibarr ERP & CRM is a software built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations (You can manage or follow contacts, invoices, orders, commercial proposals, products, stock management, agenda, mass emailings, members of a foundation, bank accounts...). Based on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems), you can install it as a standalone program or use it from anywhere with any web browser. Dolibarr is an OpenSource project. It differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install, Simple to use, Simple to develop. + DoliWamp is the Dolibarr ERP/CRM for Windows. Dolibarr ERP & CRM is a software built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations (You can manage or follow contacts, invoices, orders, commercial proposals, products, stock management, agenda, mass emailings, members of a foundation, bank accounts...). Based on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems), you can install it as a standalone program or use it from anywhere with any web browser. Dolibarr is an OpenSource project. It differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install, Simple to use, Simple to develop. DoliWamp is the auto-installer for Windows users with no technical knowledge to install Dolibarr ERP/CRM and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. diff --git a/build/pad/Dolibarr developpers.cml b/dev/build/pad/Dolibarr developpers.cml similarity index 100% rename from build/pad/Dolibarr developpers.cml rename to dev/build/pad/Dolibarr developpers.cml diff --git a/build/pad/Dolibarr.pml b/dev/build/pad/Dolibarr.pml similarity index 99% rename from build/pad/Dolibarr.pml rename to dev/build/pad/Dolibarr.pml index 7e83081975c..166a4bd8619 100644 --- a/build/pad/Dolibarr.pml +++ b/dev/build/pad/Dolibarr.pml @@ -45,7 +45,7 @@ Dolibarr ERP & CRM is a software built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations. We can say Dolibarr is an ERP or CRM (or both depending on activated modules). It's an OpenSource project base on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems). Dolibarr differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install Simple to use -Simple to develop +Simple to develop Note that Dolibarr is also available with an auto-installer for Windows or Ubuntu users with no technical knowledge to install Dolibarr and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. This version is called DoliWamp (for Windows) or DoliBuntu (for Ubuntu/Debian). @@ -65,7 +65,7 @@ Note that Dolibarr is also available with an auto-installer for Windows or Ubunt Dolibarr ERP/CRM est un logiciel modulaire (on n'active que les fonctions que l'on désire) de gestions de TPE/PME, d'indépendants, d'entrepreneurs ou d'associations. En terme plus techniques, c'est un ERP et CRM. C'est un projet OpenSource qui s'exécute au sein d'un serveur Web et peut donc être accessible depuis n'importe quel lieu disposant d'une connexion Internet (Projet basé sur un serveur WAMP, MAMP ou LAMP: Apache, MySQL, PHP). Dolibarr vient compléter les offres déjà nombreuses de logiciels de cette catégorie (comme OpenBravo, OpenERP, SugarCRM, Neogia, Compiere, etc.) mais se démarque par le fait qu'ici tout est fait pour offrir de la simplicité (règle des 3 S): Simple pour l'installation (avec au choix des installeurs clé en main pour ceux qui ignorent comment installer un serveur Web, ou une installation manuelle) Simple pour l'utilisation (fonctions modulaires pour ne pas surcharger les menus, informations claires à la saisie) -Simple pour le développement (pas de frameworks lourds). +Simple pour le développement (pas de frameworks lourds). Dolibarr intègre en effet sa propre architecture (design patterns) permettant à tout développeur d'être tout de suite opérationnel sans connaissances particulières autre que le PHP. diff --git a/build/pad/NLTechno.cml b/dev/build/pad/NLTechno.cml similarity index 100% rename from build/pad/NLTechno.cml rename to dev/build/pad/NLTechno.cml diff --git a/build/pad/README b/dev/build/pad/README similarity index 100% rename from build/pad/README rename to dev/build/pad/README diff --git a/build/pad/pad_dolibarr.xml b/dev/build/pad/pad_dolibarr.xml similarity index 99% rename from build/pad/pad_dolibarr.xml rename to dev/build/pad/pad_dolibarr.xml index 3ebda35f2fd..2660541a6c7 100644 --- a/build/pad/pad_dolibarr.xml +++ b/dev/build/pad/pad_dolibarr.xml @@ -75,7 +75,7 @@ Dolibarr ERP & CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations. We can say Dolibarr is an ERP or CRM (or both depending on activated modules). It's an OpenSource project base on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems). Dolibarr differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, Odoo, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install Simple to use -Simple to develop +Simple to develop Note that Dolibarr is also available with an auto-installer for Windows or Ubuntu users with no technical knowledge to install Dolibarr and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. This version is called DoliWamp (for Windows) or DoliBuntu (for Ubuntu/Debian). @@ -87,7 +87,7 @@ Note that Dolibarr is also available with an auto-installer for Windows or Ubunt Dolibarr ERP & CRM est un logiciel modulaire (on n'active que les fonctions que l'on désire) de gestions de TPE/PME, d'indépendants, d'entrepreneurs ou d'associations. En terme plus techniques, c'est un ERP et CRM. C'est un projet OpenSource qui s'exécute au sein d'un serveur Web et peut donc être accessible depuis n'importe quel lieu disposant d'une connexion Internet (Projet basé sur un serveur WAMP, MAMP ou LAMP: Apache, MySQL, PHP). Dolibarr vient compléter les offres déjà nombreuses de logiciels de cette catégorie (comme OpenBravo, OpenERP, SugarCRM, Neogia, Compiere, etc.) mais se démarque par le fait qu'ici tout est fait pour offrir de la simplicité (règle des 3 S): Simple pour l'installation (avec au choix des installeurs clé en main pour ceux qui ignorent comment installer un serveur Web, ou une installation manuelle) Simple pour l'utilisation (fonctions modulaires pour ne pas surcharger les menus, informations claires à la saisie) -Simple pour le développement (pas de frameworks lourds). +Simple pour le développement (pas de frameworks lourds). Dolibarr intègre en effet sa propre architecture (design patterns) permettant à tout développeur d'être tout de suite opérationnel sans connaissances particulières autre que le PHP. diff --git a/build/pad/pad_dolibarr_nos.xml b/dev/build/pad/pad_dolibarr_nos.xml similarity index 99% rename from build/pad/pad_dolibarr_nos.xml rename to dev/build/pad/pad_dolibarr_nos.xml index 64d1d56dd5a..27a4f4497f6 100644 --- a/build/pad/pad_dolibarr_nos.xml +++ b/dev/build/pad/pad_dolibarr_nos.xml @@ -75,7 +75,7 @@ Dolibarr ERP & CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations. We can say Dolibarr is an ERP or CRM (or both depending on activated modules). It's an OpenSource project base on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems). Dolibarr differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install Simple to use -Simple to develop +Simple to develop Note that Dolibarr is also available with an auto-installer for Windows or Ubuntu users with no technical knowledge to install Dolibarr and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. This version is called DoliWamp (for Windows) or DoliBuntu (for Ubuntu/Debian). @@ -87,7 +87,7 @@ Note that Dolibarr is also available with an auto-installer for Windows or Ubunt Dolibarr ERP & CRM est un logiciel modulaire (on n'active que les fonctions que l'on désire) de gestions de TPE/PME, d'indépendants, d'entrepreneurs ou d'associations. En terme plus techniques, c'est un ERP et CRM. C'est un projet OpenSource qui s'exécute au sein d'un serveur Web et peut donc être accessible depuis n'importe quel lieu disposant d'une connexion Internet (Projet basé sur un serveur WAMP, MAMP ou LAMP: Apache, MySQL, PHP). Dolibarr vient compléter les offres déjà nombreuses de logiciels de cette catégorie (comme OpenBravo, OpenERP, SugarCRM, Neogia, Compiere, etc.) mais se démarque par le fait qu'ici tout est fait pour offrir de la simplicité (règle des 3 S): Simple pour l'installation (avec au choix des installeurs clé en main pour ceux qui ignorent comment installer un serveur Web, ou une installation manuelle) Simple pour l'utilisation (fonctions modulaires pour ne pas surcharger les menus, informations claires à la saisie) -Simple pour le développement (pas de frameworks lourds). +Simple pour le développement (pas de frameworks lourds). Dolibarr intègre en effet sa propre architecture (design patterns) permettant à tout développeur d'être tout de suite opérationnel sans connaissances particulières autre que le PHP. diff --git a/build/pad/pad_doliwamp.xml b/dev/build/pad/pad_doliwamp.xml similarity index 99% rename from build/pad/pad_doliwamp.xml rename to dev/build/pad/pad_doliwamp.xml index d5d4a1d6703..24d20b918e7 100644 --- a/build/pad/pad_doliwamp.xml +++ b/dev/build/pad/pad_doliwamp.xml @@ -72,7 +72,7 @@ DoliWamp, the easy to use Dolibarr for Windows to manage your company,foundation DoliWamp is the Dolibarr ERP/CRM for Windows, the easy to use open source software to manage your activity (invoices, customers, suppliers, contracts, agenda, emailings...) and any other things a small or mid-sized business or a foundation needs. DoliWamp is the Dolibarr ERP/CRM autoinstaller for Windows users with no technical knowledge to install Dolibarr and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. Dolibarr ERP/CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations. - DoliWamp is the Dolibarr ERP/CRM for Windows. Dolibarr ERP & CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations (You can manage or follow contacts, invoices, orders, commercial proposals, products, stock management, agenda, mass emailings, members of a foundation, bank accounts...). Based on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems), you can install it as a standalone program or use it from anywhere with any web browser. Dolibarr is an OpenSource project. It differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install, Simple to use, Simple to develop. + DoliWamp is the Dolibarr ERP/CRM for Windows. Dolibarr ERP & CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations (You can manage or follow contacts, invoices, orders, commercial proposals, products, stock management, agenda, mass emailings, members of a foundation, bank accounts...). Based on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems), you can install it as a standalone program or use it from anywhere with any web browser. Dolibarr is an OpenSource project. It differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install, Simple to use, Simple to develop. DoliWamp is the auto-installer for Windows users with no technical knowledge to install Dolibarr ERP/CRM and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. diff --git a/build/pad/pad_doliwamp_nos.xml b/dev/build/pad/pad_doliwamp_nos.xml similarity index 99% rename from build/pad/pad_doliwamp_nos.xml rename to dev/build/pad/pad_doliwamp_nos.xml index 4360e92c3e4..f24d55ed950 100644 --- a/build/pad/pad_doliwamp_nos.xml +++ b/dev/build/pad/pad_doliwamp_nos.xml @@ -72,7 +72,7 @@ DoliWamp, the easy to use Dolibarr for Windows to manage your company,foundation DoliWamp is the Dolibarr ERP/CRM for Windows, the easy to use open source software to manage your activity (invoices, customers, suppliers, contracts, agenda, emailings...) and any other things a small or mid-sized business or a foundation needs. DoliWamp is the Dolibarr ERP/CRM autoinstaller for Windows users with no technical knowledge to install Dolibarr and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. Dolibarr ERP/CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations. - DoliWamp is the Dolibarr ERP/CRM for Windows. Dolibarr ERP & CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations (You can manage or follow contacts, invoices, orders, commercial proposals, products, stock management, agenda, mass emailings, members of a foundation, bank accounts...). Based on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems), you can install it as a standalone program or use it from anywhere with any web browser. Dolibarr is an OpenSource project. It differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install, Simple to use, Simple to develop. + DoliWamp is the Dolibarr ERP/CRM for Windows. Dolibarr ERP & CRM is a software package built by modules addition (you enable only features you need), to manage small or mid-sized businesses, freelancers or foundations (You can manage or follow contacts, invoices, orders, commercial proposals, products, stock management, agenda, mass emailings, members of a foundation, bank accounts...). Based on a WAMP, MAMP or LAMP server (Apache, Mysql, PHP for all Operating Systems), you can install it as a standalone program or use it from anywhere with any web browser. Dolibarr is an OpenSource project. It differs from other ERP or CRM softwares (like OpenAguila, OpenBravo, OpenERP, Neogia, Compiere, etc) because everything was made to be more simple: Simple to install, Simple to use, Simple to develop. DoliWamp is the auto-installer for Windows users with no technical knowledge to install Dolibarr ERP/CRM and all its prerequisites (Apache, Mysql, PHP) with just one auto-exe file. diff --git a/build/patch/README b/dev/build/patch/README similarity index 89% rename from build/patch/README rename to dev/build/patch/README index 6b63713122f..5c2bb973d5d 100644 --- a/build/patch/README +++ b/dev/build/patch/README @@ -3,7 +3,7 @@ README (English) Building a Patch file ################################################## -This directory contains tools to build a patch after a developer has made changes on files in its Dolibarr tree. +This directory contains tools to build a patch after a developer has made changes on files in its Dolibarr tree. The output patch file can then be submitted on Dolibarr dev mailing-list, with explanation on its goal, for inclusion in main branch. Using this tool is now deprecated. You must use git pull requests to submit contributions. diff --git a/build/patch/buildpatch.sh b/dev/build/patch/buildpatch.sh similarity index 100% rename from build/patch/buildpatch.sh rename to dev/build/patch/buildpatch.sh diff --git a/build/pdf/README.txt b/dev/build/pdf/README.txt similarity index 80% rename from build/pdf/README.txt rename to dev/build/pdf/README.txt index 7a5424ca3d5..3a0f43ff2ea 100644 --- a/build/pdf/README.txt +++ b/dev/build/pdf/README.txt @@ -1,7 +1,7 @@ To make htmldoc working from wiki.dolibarr.org, the wiki must be modified to have -To disable part of content, add: -class="htmldoc-ignore" +To disable part of content, add: +class="htmldoc-ignore" with css .htmldoc-ignore { display: none; } diff --git a/build/pdf/htmldoc_en.book b/dev/build/pdf/htmldoc_en.book similarity index 100% rename from build/pdf/htmldoc_en.book rename to dev/build/pdf/htmldoc_en.book diff --git a/build/perl/virtualmin/README b/dev/build/perl/virtualmin/README similarity index 89% rename from build/perl/virtualmin/README rename to dev/build/perl/virtualmin/README index 6da04e5f0b8..cde6224c024 100644 --- a/build/perl/virtualmin/README +++ b/dev/build/perl/virtualmin/README @@ -7,4 +7,4 @@ This script will install automatically Dolibarr from Virtualmin. (Included in the professional version and can be added in the GPL version) https://www.virtualmin.com -http://www.webmin.com/virtualmin.html \ No newline at end of file +http://www.webmin.com/virtualmin.html diff --git a/build/perl/virtualmin/dolibarr.pl b/dev/build/perl/virtualmin/dolibarr.pl similarity index 99% rename from build/perl/virtualmin/dolibarr.pl rename to dev/build/perl/virtualmin/dolibarr.pl index b5bacf59356..6ac8b9449cb 100644 --- a/build/perl/virtualmin/dolibarr.pl +++ b/dev/build/perl/virtualmin/dolibarr.pl @@ -252,7 +252,7 @@ if ($upgrade) { ©_source_dest_as_domain_user($d, $oldcfile, $cfile); ©_source_dest_as_domain_user($d, $olddocdir, $docdir); ©_source_dest_as_domain_user($d, $oldaltdir, $altdir); - + # First page (Update database schema) local @params = ( [ "action", "upgrade" ], [ "versionfrom", $upgrade->{'version'} ], @@ -260,7 +260,7 @@ if ($upgrade) { ); local $err = &call_dolibarr_wizard_page(\@params, "upgrade", $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); - + # Second page (Migrate some data) local @params = ( [ "action", "upgrade" ], [ "versionfrom", $upgrade->{'version'} ], @@ -268,7 +268,7 @@ if ($upgrade) { ); local $err = &call_dolibarr_wizard_page(\@params, "upgrade2", $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); - + # Third page (Update version number) local @params = ( [ "action", "upgrade" ], [ "versionfrom", $upgrade->{'version'} ], @@ -278,12 +278,12 @@ if ($upgrade) { local $p = $ver >= 3.8 ? "step5" : "etape5"; local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); - + # Remove the installation directory. (deprecated) # local $dinstall = "$opts->{'dir'}/install"; # $dinstall =~ s/\/$//; # $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall)); - + } else { # First page (Db connection and config file creation) @@ -305,13 +305,13 @@ else { local $p = $ver >= 3.8 ? "step1" : "etape1"; local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); - + # Second page (Populate database) local @params = ( [ "action", "set" ] ); local $p = $ver >= 3.8 ? "step2" : "etape2"; local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); - + # Third page (Add administrator account) local @params = ( [ "action", "set" ], [ "login", "admin" ], @@ -322,17 +322,17 @@ else { local $p = $ver >= 3.8 ? "step5" : "etape5"; local $err = &call_dolibarr_wizard_page(\@params, $p, $d, $opts); return (-1, "Dolibarr wizard failed : $err") if ($err); - + # Remove the installation directory (deprecated) # local $dinstall = "$opts->{'dir'}/install"; # $dinstall =~ s/\/$//; # $out = &run_as_domain_user($d, "rm -rf ".quotemeta($dinstall)); - + # Protect config file &set_permissions_as_domain_user($d, 0644, $cfile); &set_permissions_as_domain_user($d, 0755, $cfiledir); } - + # Return a URL for the user local $rp = $opts->{'dir'}; $rp =~ s/^$d->{'home'}\///; diff --git a/build/phpstan/README b/dev/build/phpstan/README similarity index 97% rename from build/phpstan/README rename to dev/build/phpstan/README index 30f7a20b24e..7f207283b61 100644 --- a/build/phpstan/README +++ b/dev/build/phpstan/README @@ -1,4 +1,4 @@ -PHPStan (https://phpstan.org) +PHPStan (https://phpstan.org) ----------------------------- PHPStan requires PHP >= 7.1 diff --git a/build/phpstan/bootstrap.php b/dev/build/phpstan/bootstrap.php similarity index 100% rename from build/phpstan/bootstrap.php rename to dev/build/phpstan/bootstrap.php diff --git a/build/phpstan/bootstrap_action.php b/dev/build/phpstan/bootstrap_action.php similarity index 100% rename from build/phpstan/bootstrap_action.php rename to dev/build/phpstan/bootstrap_action.php diff --git a/build/phpstan/phpstan-baseline.neon b/dev/build/phpstan/phpstan-baseline.neon similarity index 100% rename from build/phpstan/phpstan-baseline.neon rename to dev/build/phpstan/phpstan-baseline.neon diff --git a/build/rpm/GURULABS-RPM-GUIDE-v1.0.PDF b/dev/build/rpm/GURULABS-RPM-GUIDE-v1.0.PDF similarity index 100% rename from build/rpm/GURULABS-RPM-GUIDE-v1.0.PDF rename to dev/build/rpm/GURULABS-RPM-GUIDE-v1.0.PDF diff --git a/build/rpm/README b/dev/build/rpm/README similarity index 95% rename from build/rpm/README rename to dev/build/rpm/README index ab7be252ccb..ef10378b20a 100644 --- a/build/rpm/README +++ b/dev/build/rpm/README @@ -3,7 +3,7 @@ README (English) RPM Package tools ################################################## -This directory contains files used by makepack-dolibarr.pl script to build a package, +This directory contains files used by makepack-dolibarr.pl script to build a package, ready to be distributed with format RPM (https://rpm.org) for Linux Distributions like Redhat, Fedora, CentOS, OpenSuse, OpenMandriva, Mageia ... @@ -20,11 +20,11 @@ for Linux Distributions like Redhat, Fedora, CentOS, OpenSuse, OpenMandriva, Mag # On Fedora # ========= -# rpm -i --test dolibarr-...rpm to list dependencies of RPM -# yum -v install dolibarr-...rpm to install package and dependencies -# yum -v erase dolibarr to remove package -# chcon -R -h -t httpd_sys_script_rw_t /file to add temporary context rw for httpd on /file -# restorecon -R -v /file to restore values into files (cancel chcon, validate semanage) +# rpm -i --test dolibarr-...rpm to list dependencies of RPM +# yum -v install dolibarr-...rpm to install package and dependencies +# yum -v erase dolibarr to remove package +# chcon -R -h -t httpd_sys_script_rw_t /file to add temporary context rw for httpd on /file +# restorecon -R -v /file to restore values into files (cancel chcon, validate semanage) # semanage fcontext -a -t httpd_sys_script_rw_t "/dir/(.*)?" to add persistent context rw for httpd on /dir (this add file_contexts.local) diff --git a/build/rpm/conf.php b/dev/build/rpm/conf.php similarity index 100% rename from build/rpm/conf.php rename to dev/build/rpm/conf.php diff --git a/build/rpm/dolibarr-forrpm.patch b/dev/build/rpm/dolibarr-forrpm.patch similarity index 97% rename from build/rpm/dolibarr-forrpm.patch rename to dev/build/rpm/dolibarr-forrpm.patch index 884d1a02e40..5ef30d39025 100644 --- a/build/rpm/dolibarr-forrpm.patch +++ b/dev/build/rpm/dolibarr-forrpm.patch @@ -1,7 +1,7 @@ diff -up htdocs/filefunc.inc.php.patch htdocs/filefunc.inc.php --- htdocs/filefunc.inc.php.patch 2011-09-03 02:32:48.666952000 +0200 +++ htdocs/filefunc.inc.php 2011-09-03 02:33:00.510952001 +0200 -@@ -63,8 +63,8 @@ +@@ -63,8 +63,8 @@ $conffile = "conf/conf.php"; $conffiletoshow = "htdocs/conf/conf.php"; // For debian/redhat like systems @@ -9,8 +9,8 @@ diff -up htdocs/filefunc.inc.php.patch htdocs/filefunc.inc.php -//$conffiletoshow = "/etc/dolibarr/conf.php"; +$conffile = "/etc/dolibarr/conf.php"; +$conffiletoshow = "/etc/dolibarr/conf.php"; - - + + // Include configuration diff -up htdocs/install/inc.php.patch htdocs/install/inc.php --- htdocs/install/inc.php.patch 2011-09-03 02:33:26.450952000 +0200 @@ -23,6 +23,6 @@ diff -up htdocs/install/inc.php.patch htdocs/install/inc.php -//$conffiletoshow = "/etc/dolibarr/conf.php"; +$conffile = "/etc/dolibarr/conf.php"; +$conffiletoshow = "/etc/dolibarr/conf.php"; - + $short_options = "c:h"; $long_options = array( diff --git a/build/rpm/dolibarr.desktop b/dev/build/rpm/dolibarr.desktop similarity index 97% rename from build/rpm/dolibarr.desktop rename to dev/build/rpm/dolibarr.desktop index 8a2d8adb99c..c574c6d3e88 100644 --- a/build/rpm/dolibarr.desktop +++ b/dev/build/rpm/dolibarr.desktop @@ -13,7 +13,7 @@ Comment[es]=Software para gestión de PYMES, profesionales independientes, auto Comment[fr]=L'ERP & CRM simple pour la gestion des TPE, PME, associations et auto-entrepreneurs Comment[it]=Programma gestionale open source e gratuito per piccole e medie imprese, fondazioni e liberi professionisti # Command to open an URL -# For Fedora: xdg-open +# For Fedora: xdg-open # For Debian/Ubuntu: xdg-open or x-www-browser # (exo-open for xfde, gnome-open for gnome, ...) Exec=xdg-open http://localhost/dolibarr diff --git a/build/rpm/dolibarr_fedora.spec b/dev/build/rpm/dolibarr_fedora.spec similarity index 100% rename from build/rpm/dolibarr_fedora.spec rename to dev/build/rpm/dolibarr_fedora.spec diff --git a/build/rpm/dolibarr_generic.spec b/dev/build/rpm/dolibarr_generic.spec similarity index 100% rename from build/rpm/dolibarr_generic.spec rename to dev/build/rpm/dolibarr_generic.spec diff --git a/build/rpm/dolibarr_mandriva.spec b/dev/build/rpm/dolibarr_mandriva.spec similarity index 100% rename from build/rpm/dolibarr_mandriva.spec rename to dev/build/rpm/dolibarr_mandriva.spec diff --git a/build/rpm/dolibarr_opensuse.spec b/dev/build/rpm/dolibarr_opensuse.spec similarity index 100% rename from build/rpm/dolibarr_opensuse.spec rename to dev/build/rpm/dolibarr_opensuse.spec diff --git a/build/rpm/file_contexts.dolibarr b/dev/build/rpm/file_contexts.dolibarr similarity index 98% rename from build/rpm/file_contexts.dolibarr rename to dev/build/rpm/file_contexts.dolibarr index 9dbe838d2ad..38c51c9ed6d 100644 --- a/build/rpm/file_contexts.dolibarr +++ b/dev/build/rpm/file_contexts.dolibarr @@ -4,6 +4,6 @@ # # Note: To allow temporary write permission for httpd: # chcon -R -h -t httpd_sys_script_rw_t /dirtoallow -# +# /etc/dolibarr(/.*?) system_u:object_r:httpd_sys_script_rw_t:s0 -/var/lib/dolibarr(/.*?) system_u:object_r:httpd_sys_script_rw_t:s0 \ No newline at end of file +/var/lib/dolibarr(/.*?) system_u:object_r:httpd_sys_script_rw_t:s0 diff --git a/build/rpm/httpd-dolibarr.conf b/dev/build/rpm/httpd-dolibarr.conf similarity index 98% rename from build/rpm/httpd-dolibarr.conf rename to dev/build/rpm/httpd-dolibarr.conf index ebda2b3ddfc..a33cf6db84b 100644 --- a/build/rpm/httpd-dolibarr.conf +++ b/dev/build/rpm/httpd-dolibarr.conf @@ -31,15 +31,15 @@ Alias /dolibarr /usr/share/dolibarr/htdocs # OPTIMIZE: To use gzip compressed files (for Dolibarr already compressed files). - # Note that constant MAIN_OPTIMIZE_SPEED must have a value with bit 0 set. + # Note that constant MAIN_OPTIMIZE_SPEED must have a value with bit 0 set. #AddType text/javascript .jgz #AddEncoding gzip .jgz - + # OPTIMIZE: To use gzip compression (on the fly). # Note that you must also enable the module mod_deflate. - # You can also set this with constant MAIN_OPTIMIZE_SPEED and bit 2 set. + # You can also set this with constant MAIN_OPTIMIZE_SPEED and bit 2 set. #TODO - + # OPTIMIZE: To use cache on static pages (A259200 = 1 month). # Note that you must also enable the module mod_expires. #ExpiresActive On @@ -51,7 +51,7 @@ Alias /dolibarr /usr/share/dolibarr/htdocs #ExpiresByType text/javascript A2592000 #ExpiresByType application/x-javascript A2592000 #ExpiresByType application/javascript A2592000 - + # Directory for public pages @@ -103,4 +103,3 @@ Alias /dolibarr /usr/share/dolibarr/htdocs AllowOverride All - diff --git a/build/rpm/install.forced.php.fedora b/dev/build/rpm/install.forced.php.fedora similarity index 100% rename from build/rpm/install.forced.php.fedora rename to dev/build/rpm/install.forced.php.fedora diff --git a/build/rpm/install.forced.php.generic b/dev/build/rpm/install.forced.php.generic similarity index 100% rename from build/rpm/install.forced.php.generic rename to dev/build/rpm/install.forced.php.generic diff --git a/build/rpm/install.forced.php.mandriva b/dev/build/rpm/install.forced.php.mandriva similarity index 100% rename from build/rpm/install.forced.php.mandriva rename to dev/build/rpm/install.forced.php.mandriva diff --git a/build/rpm/install.forced.php.opensuse b/dev/build/rpm/install.forced.php.opensuse similarity index 100% rename from build/rpm/install.forced.php.opensuse rename to dev/build/rpm/install.forced.php.opensuse diff --git a/build/sitemap/README b/dev/build/sitemap/README similarity index 73% rename from build/sitemap/README rename to dev/build/sitemap/README index a06bd58f259..8f286ed7db7 100644 --- a/build/sitemap/README +++ b/dev/build/sitemap/README @@ -1,6 +1,5 @@ # Format of sitemap file is available at # https://www.sitemaps.org/protocol.html -# To build a sitemap from urllist-bing.txt, run +# To build a sitemap from urllist-bing.txt, run # google-sitemapgen --config=config-bing.xml --testing - diff --git a/build/sitemap/config-bing.xml b/dev/build/sitemap/config-bing.xml similarity index 99% rename from build/sitemap/config-bing.xml rename to dev/build/sitemap/config-bing.xml index c08d8bb7a5d..346c7b08b80 100644 --- a/build/sitemap/config-bing.xml +++ b/dev/build/sitemap/config-bing.xml @@ -57,7 +57,7 @@ changefreq - how often content at this URL is usually updated priority - value 0.0 to 1.0 of relative importance in your site --> - - - - diff --git a/build/sitemap/urllist-wiki.txt b/dev/build/sitemap/urllist-wiki.txt similarity index 100% rename from build/sitemap/urllist-wiki.txt rename to dev/build/sitemap/urllist-wiki.txt diff --git a/build/tgz/README b/dev/build/tgz/README similarity index 93% rename from build/tgz/README rename to dev/build/tgz/README index e556b78fd67..01d2defc68e 100644 --- a/build/tgz/README +++ b/dev/build/tgz/README @@ -5,4 +5,4 @@ TGZ Package tools This directory contains files used by makepack-dolibarr.pl script to build a package, ready to be distributed, -with format .tgz \ No newline at end of file +with format .tgz diff --git a/build/tgz/tar_exclude.txt b/dev/build/tgz/tar_exclude.txt similarity index 100% rename from build/tgz/tar_exclude.txt rename to dev/build/tgz/tar_exclude.txt diff --git a/build/travis-ci/apache.conf b/dev/build/travis-ci/apache.conf similarity index 99% rename from build/travis-ci/apache.conf rename to dev/build/travis-ci/apache.conf index 1d8b5d33923..7d9dadca124 100644 --- a/build/travis-ci/apache.conf +++ b/dev/build/travis-ci/apache.conf @@ -14,7 +14,7 @@ # Action php5-fcgi /php5-fcgi # Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi # FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization - # + # # # Require all granted # diff --git a/build/zip/README b/dev/build/zip/README similarity index 93% rename from build/zip/README rename to dev/build/zip/README index f96f373f964..ea103a6b95e 100644 --- a/build/zip/README +++ b/dev/build/zip/README @@ -5,4 +5,4 @@ ZIP Package tools This directory contains files used by makepack-dolibarr.pl script to build a package, ready to be distributed, -with format .zip \ No newline at end of file +with format .zip diff --git a/build/zip/zip_exclude.txt b/dev/build/zip/zip_exclude.txt similarity index 100% rename from build/zip/zip_exclude.txt rename to dev/build/zip/zip_exclude.txt From 9a61a6e6c904cbd19ccade141340a7d3b8684647 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 14:46:26 +0100 Subject: [PATCH 116/126] Update files after moving build into dev/ --- .codeclimate.yml | 1 - .../workflows/doxygen-gh-pages.yml.disabled | 10 +- .github/workflows/exakat.yml | 2 +- .../github_ci_php71_pgsql.yml.disabled | 49 ++-- .../github_ci_php81_mysql.yml.disabled | 41 ++-- .github/workflows/phpstan.yml | 4 +- .github/workflows/phpstan_baseline.yml | 4 +- .gitignore | 8 +- .pre-commit-config.yaml | 4 +- .travis.yml | 4 +- dev/build/README | 2 +- dev/build/debian/rules | 20 +- dev/build/docker-dev/README.md | 2 +- dev/build/doxygen/dolibarr-doxygen-build.pl | 6 +- dev/build/doxygen/dolibarr-doxygen.doxyfile | 8 +- dev/build/exe/doliwamp/doliwamp.iss | 2 +- dev/build/generate_filelist_xml.php | 2 +- dev/build/gource/README.md | 4 +- dev/build/launchpad/README | 2 +- dev/build/makepack-dolibarr.pl | 210 +++++++++--------- dev/build/makepack-dolibarrmodule.pl | 8 +- dev/build/makepack-dolibarrtheme.pl | 2 +- dev/build/makepack-howto.txt | 4 +- dev/build/patch/buildpatch.sh | 2 +- dev/build/phpstan/README | 6 +- dev/build/rpm/dolibarr_fedora.spec | 30 +-- dev/build/rpm/dolibarr_generic.spec | 40 ++-- dev/build/rpm/dolibarr_mandriva.spec | 30 +-- dev/build/rpm/dolibarr_opensuse.spec | 30 +-- dev/build/tgz/tar_exclude.txt | 4 +- dev/build/zip/zip_exclude.txt | 4 +- dev/setup/codesniffer/ruleset.xml | 2 +- dev/tools/apstats.php | 2 +- htdocs/core/doxygen.php | 2 +- phpstan.neon.dist | 2 +- pyproject.toml | 2 +- test/phpunit/phpunittest.xml | 1 - 37 files changed, 276 insertions(+), 280 deletions(-) diff --git a/.codeclimate.yml b/.codeclimate.yml index 0c62d4ed5eb..f6fbf2fe168 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -6,7 +6,6 @@ languages: engines: phpcodesniffer: true exclude_paths: - - 'build/*' - 'dev/*' - 'doc/*' - 'test/*' diff --git a/.github/workflows/doxygen-gh-pages.yml.disabled b/.github/workflows/doxygen-gh-pages.yml.disabled index 33dd47aa6e6..7c91b892378 100644 --- a/.github/workflows/doxygen-gh-pages.yml.disabled +++ b/.github/workflows/doxygen-gh-pages.yml.disabled @@ -8,7 +8,7 @@ on: - develop permissions: contents: write - + jobs: build: runs-on: ubuntu-latest @@ -18,16 +18,16 @@ jobs: with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages - folder: build/html - config_file: build/doxygen/dolibarr-doxygen.doxyfile + folder: dev/build/html + config_file: dev/build/doxygen/dolibarr-doxygen.doxyfile # - name: Deploy # uses: JamesIves/github-pages-deploy-action@v4 # with: # branch: gh-pages -# folder: build/html # The folder the action should deploy. +# folder: dev/build/html # The folder the action should deploy. # target-folder: docs/html2 - + #jobs: # doxygen: # runs-on: ubuntu-latest diff --git a/.github/workflows/exakat.yml b/.github/workflows/exakat.yml index 420ca085cad..2d53ce8f49c 100644 --- a/.github/workflows/exakat.yml +++ b/.github/workflows/exakat.yml @@ -22,6 +22,6 @@ jobs: uses: docker://exakat/exakat-ga with: ignore_rules: 'Classes/UseInstanceof,Constants/ConstantStrangeNames,Performances/PrePostIncrement,Functions/UndefinedFunctions,Functions/WrongNumberOfArguments,Functions/WrongTypeWithCall,Variables/UndefinedVariable,Classes/DontUnsetProperties,Classes/NonPpp,Classes/StaticMethodsCalledFromObject,Classes/UseClassOperator,Functions/UsesDefaultArguments,Php/NoClassInGlobal,Php/ShouldUseCoalesce,Php/WrongTypeForNativeFunction,Structures/AddZero,Structures/DropElseAfterReturn,Structures/IfWithSameConditions,Structures/MergeIfThen,Structures/NestedTernary,Structures/ElseIfElseif,Structures/ExitUsage,Structures/RepeatedPrint,Structures/RepeatedRegex,Structures/SameConditions,Structures/SwitchWithoutDefault,Structures/ShouldMakeTernary,Structures/UselessParenthesis,Structures/UseConstant' - ignore_dirs: '/htdocs/includes/,/htdocs/install/doctemplates/,/build/,/dev/,/doc/,/scripts/,/test/' + ignore_dirs: '/htdocs/includes/,/htdocs/install/doctemplates/,/dev/,/doc/,/scripts/,/test/' file_extensions: php project_reports: Perfile diff --git a/.github/workflows/github_ci_php71_pgsql.yml.disabled b/.github/workflows/github_ci_php71_pgsql.yml.disabled index d324d1c1481..b2997a041b6 100644 --- a/.github/workflows/github_ci_php71_pgsql.yml.disabled +++ b/.github/workflows/github_ci_php71_pgsql.yml.disabled @@ -35,14 +35,14 @@ jobs: --health-timeout 5s --health-retries 5 ports: - - 5432:5432 + - 5432:5432 steps: # git clone dolibarr into GITHUB_WORKSPACE = /home/runner/work/dolibarr/dolibarr - uses: actions/checkout@v3 with: fetch-depth: 1 - + - name: Version PHP run: | php -i | head - @@ -59,7 +59,7 @@ jobs: sudo apt install apache2 php7.1 php7.1-cli php7.1-curl php7.1-mysql php7.1-pgsql php7.1-gd php7.1-imap php7.1-intl php7.1-ldap php7.1-xml php7.1-mbstring php7.1-xml php7.1-zip libapache2-mod-php7.1 sudo update-alternatives --set php /usr/bin/php7.1 php -i | head - - + cd $GITHUB_WORKSPACE ls $GITHUB_WORKSPACE composer -n require --ignore-platform-reqs phpunit/phpunit ^7.5 \ @@ -76,7 +76,7 @@ jobs: sudo rm -fr htdocs/includes/phpunit/php-code-coverage/src/Report/Html - name: Adding path of binaries tools installed by composer to the PATH - run: | + run: | export PATH="$GITHUB_WORKSPACE/htdocs/includes/bin:$PATH" echo $PATH # We must have a directory bin created by the previous composer call @@ -107,32 +107,32 @@ jobs: psql --version echo "Check pgloader version" pgloader --version - + - name: Create database run: | pwd - echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE + echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE sudo apt-get install -y mysql-client mysql --version | head - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SELECT VERSION();" | head - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SHOW DATABASES" - + echo "Drop and create database" mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'DROP DATABASE IF EXISTS travis;' mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8';" mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password';" mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;' mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'FLUSH PRIVILEGES;' - - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql - - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';" - echo "Init postgresql database" + mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql + + mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';" + + echo "Init postgresql database" ps fauxww | grep postgres ls /etc/postgresql/14/main/ sudo chmod -R a+rwx /etc/postgresql/14/main/pg_hba.conf - + sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/14/main/pg_hba.conf sudo cat /etc/postgresql/14/main/pg_hba.conf @@ -144,7 +144,7 @@ jobs: sudo mkdir -p /tmp/pgloader sudo chmod -R a+rwx /tmp/pgloader/ - + echo sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis echo 'ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq' | psql postgresql://postgres:postgres@127.0.0.1:5432/travis @@ -190,7 +190,7 @@ jobs: echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE echo '$'force_install_main_data_root=\'/var/www/html\'';' >> $INSTALL_FORCED_FILE cat $INSTALL_FORCED_FILE - + - name: Create document directory run: | echo "Create documents directory and set permissions" @@ -199,9 +199,9 @@ jobs: sudo chmod -R a+rwx /var/www/html/documents sudo echo "***** First line of dolibarr.log" > /var/www/html/documents/dolibarr.log sudo chmod a+rwx /var/www/html/documents/dolibarr.log - + - name: Copy app into /var/www - run: | + run: | sudo cp -r $GITHUB_WORKSPACE/htdocs/. /var/www/html sudo mv /var/www/html/index.html /var/www/html/index.disabled.html sudo ln -fs /var/www/html /var/www/htdocs @@ -217,7 +217,7 @@ jobs: a2query -s a2query -m ls /etc/apache2/sites-available - #sudo cp -f $GITHUB_WORKSPACE/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf + #sudo cp -f $GITHUB_WORKSPACE/dev/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf #sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf a2ensite 000-default a2enmod php7.1 @@ -245,7 +245,7 @@ jobs: # The wget should return a page with line ' wget -O - --debug http://127.0.0.1 > $GITHUB_WORKSPACE/test.html 2>&1 head -n 200 $GITHUB_WORKSPACE/test.html - + echo Logs are... #sudo cat /tmp/install.log sudo cat /var/log/apache2/access.log @@ -287,7 +287,7 @@ jobs: php upgrade.php 6.0.0 7.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade600700.log php upgrade2.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-2.log php step5.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-3.log - + echo "\dt llx_c_paiement" | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis' echo "\dt llx_c_payment_term" | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis' @@ -324,17 +324,17 @@ jobs: php upgrade.php 17.0.0 18.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade17001800.log php upgrade2.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-2.log php step5.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-3.log - + - name: Result of migration scripts if: always() run: | ls -alrt $GITHUB_WORKSPACE/ - + echo Show content of last file cat "$(ls -rt $GITHUB_WORKSPACE/ | tail -n1)" - name: Enabling new modules - run: | + run: | # Enable modules not enabled into original dump set -e cd /var/www/html/install @@ -361,5 +361,4 @@ jobs: includes/bin/phpunit -d memory_limit=-1 -c /var/www/test/phpunit/phpunittest.xml /var/www/test/phpunit/AllTests.php phpunitresult=$? echo "Phpunit return code = $phpunitresult" - set +e - + set +e diff --git a/.github/workflows/github_ci_php81_mysql.yml.disabled b/.github/workflows/github_ci_php81_mysql.yml.disabled index 047fcd63fb5..c303b3125c1 100644 --- a/.github/workflows/github_ci_php81_mysql.yml.disabled +++ b/.github/workflows/github_ci_php81_mysql.yml.disabled @@ -28,7 +28,7 @@ jobs: - uses: actions/checkout@v3 with: fetch-depth: 1 - + - name: Version PHP run: | php -i | head - @@ -38,14 +38,14 @@ jobs: sudo composer self-update 2.2.18 sudo chmod -R a+rwx /home/runner composer -n config -g vendor-dir htdocs/includes - + sudo add-apt-repository -y ppa:ondrej/php sudo apt-get update sudo apt-get install -y pgloader memcached sudo apt install apache2 php8.1 php8.1-cli php8.1-curl php8.1-mysql php8.1-pgsql php8.1-gd php8.1-imap php8.1-intl php8.1-ldap php8.1-xml php8.1-mbstring php8.1-xml php8.1-zip libapache2-mod-php8.1 sudo update-alternatives --set php /usr/bin/php8.1 php -i | head - - + cd $GITHUB_WORKSPACE ls $GITHUB_WORKSPACE composer -n require --ignore-platform-reqs phpunit/phpunit ^8 \ @@ -56,7 +56,7 @@ jobs: sudo rm -fr htdocs/includes/phpunit/php-code-coverage/src/Report/Html - name: Adding path of binaries tools installed by composer to the PATH - run: | + run: | export PATH="$GITHUB_WORKSPACE/htdocs/includes/bin:$PATH" echo $PATH # We must have a directory bin created by the previous composer call @@ -87,26 +87,26 @@ jobs: psql --version echo "Check pgloader version" pgloader --version - + - name: Create database run: | pwd - echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE + echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE sudo apt-get install -y mysql-client mysql --version | head - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SELECT VERSION();" | head - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SHOW DATABASES" - + echo "Drop and create database" mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'DROP DATABASE IF EXISTS travis;' mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8';" mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password';" mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;' mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'FLUSH PRIVILEGES;' - - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql - mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';" + mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql + + mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';" - name: Generate Dolibarr conf file run: | @@ -145,7 +145,7 @@ jobs: echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE echo '$'force_install_main_data_root=\'/var/www/html\'';' >> $INSTALL_FORCED_FILE cat $INSTALL_FORCED_FILE - + - name: Create document directory run: | echo "Create documents directory and set permissions" @@ -154,9 +154,9 @@ jobs: sudo chmod -R a+rwx /var/www/html/documents sudo echo "***** First line of dolibarr.log" > /var/www/html/documents/dolibarr.log sudo chmod a+rwx /var/www/html/documents/dolibarr.log - + - name: Copy app into /var/www - run: | + run: | sudo cp -r $GITHUB_WORKSPACE/htdocs/. /var/www/html sudo mv /var/www/html/index.html /var/www/html/index.disabled.html sudo ln -fs /var/www/html /var/www/htdocs @@ -172,7 +172,7 @@ jobs: a2query -s a2query -m ls /etc/apache2/sites-available - #sudo cp -f $GITHUB_WORKSPACE/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf + #sudo cp -f $GITHUB_WORKSPACE/dev/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf #sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf a2ensite 000-default a2enmod php8.1 @@ -200,7 +200,7 @@ jobs: # The wget should return a page with line ' wget -O - --debug http://127.0.0.1 > $GITHUB_WORKSPACE/test.html 2>&1 head -n 200 $GITHUB_WORKSPACE/test.html - + echo Logs are... #sudo cat /tmp/install.log sudo cat /var/log/apache2/access.log @@ -274,17 +274,17 @@ jobs: php upgrade.php 17.0.0 18.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade17001800.log php upgrade2.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-2.log php step5.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-3.log - + - name: Result of migration scripts if: always() run: | ls -alrt $GITHUB_WORKSPACE/ - + echo Show content of last file cat "$(ls -rt $GITHUB_WORKSPACE/ | tail -n1)" - name: Enabling new modules - run: | + run: | # Enable modules not enabled into original dump set -e cd /var/www/html/install @@ -311,7 +311,7 @@ jobs: includes/bin/phpunit -d memory_limit=-1 -c /var/www/test/phpunit/phpunittest.xml /var/www/test/phpunit/AllTests.php phpunitresult=$? echo "Phpunit return code = $phpunitresult" - set +e + set +e - name: Code quality check - Lint if: github.event_name == 'push' @@ -325,10 +325,9 @@ jobs: - name: Code quality check - phpcs if: github.event_name == 'push' run: | - htdocs/includes/bin/phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .; + htdocs/includes/bin/phpcs -s -p -d memory_limit=-1 --extensions=php --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 --runtime-set ignore_warnings_on_exit true .; - name: Code quality check - var-dump-check if: github.event_name == 'push' run: | htdocs/includes/bin/var-dump-check --extensions php --tracy --exclude htdocs/includes --exclude test/ --exclude htdocs/public/test/ --exclude htdocs/core/lib/functions.lib.php . - diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 844ad46af3c..ddc3c6ccc4e 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -67,7 +67,7 @@ jobs: - name: Run PHPStan id: phpstan run: | - phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings + phpstan -vvv analyse --error-format=checkstyle --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php | tee _stan.xml | cs2pr --graceful-warnings # continue-on-error: true # Save cache @@ -90,4 +90,4 @@ jobs: # id: phpstan-baseline # if: ${{ success() }} # run: | - # phpstan -vv analyse --memory-limit 7G -a build/phpstan/bootstrap_action.php --generate-baseline build/phpstan/phpstan-baseline.neon + # phpstan -vv analyse --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php --generate-baseline dev/build/phpstan/phpstan-baseline.neon diff --git a/.github/workflows/phpstan_baseline.yml b/.github/workflows/phpstan_baseline.yml index 9503c25de77..9cea77150dd 100644 --- a/.github/workflows/phpstan_baseline.yml +++ b/.github/workflows/phpstan_baseline.yml @@ -60,8 +60,8 @@ jobs: github_token: ${{ env.GH_TOKEN }} phpstan_path: phpstan configuration_path: phpstan.neon.dist - phpstan_additional_arguments: --memory-limit 7G -a build/phpstan/bootstrap_action.php - baseline_path: build/phpstan/phpstan-baseline.neon + phpstan_additional_arguments: --memory-limit 7G -a dev/build/phpstan/bootstrap_action.php + baseline_path: dev/build/phpstan/phpstan-baseline.neon commit_name: Dolibot commit_email: dolibarr-bot@users.noreply.github.com commit_message: PHPStan > Update baseline diff --git a/.gitignore b/.gitignore index 0a6e4cf6655..434764e4f06 100644 --- a/.gitignore +++ b/.gitignore @@ -47,8 +47,8 @@ htdocs/.well-known/apple-developer-merchantid-domain-association /output/ # Node Modules -build/yarn-error.log -build/node_modules/ +dev/build/yarn-error.log +dev/build/node_modules/ node_modules/ vendor/ @@ -84,8 +84,8 @@ doc/install.lock /INI_PHPUNIT # ignore cache builds -/build/phpstan/phpstan -/build/phpstan/bootstrap_custom.php +/dev/build/phpstan/phpstan +/dev/build/phpstan/bootstrap_custom.php phpstan_custom.neon /.php-cs-fixer.cache /.php_cs.cache diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b74143a4512..2c2226fb84b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -51,8 +51,8 @@ repos: exclude: (?x)^( dev/tools/dolibarr-postgres2mysql.php |test/other/test_serialize.php |test/phpunit/textutf8.txt |test/phpunit/textiso.txt |htdocs/includes/.* - |htdocs/modulebuilder/template/.* |build/debian/dolibarr.postrm |build/debian/dolibarr.postinst - |build/debian/dolibarr.config )$ + |htdocs/modulebuilder/template/.* |dev/build/debian/dolibarr.postrm |dev/build/debian/dolibarr.postinst + |dev/build/debian/dolibarr.config )$ # Fix the first UTF8 byte - id: fix-byte-order-marker # Check that there are no files that have are the same when uppercased (conflict on windows) diff --git a/.travis.yml b/.travis.yml index ad037e8fe31..2609b797d95 100644 --- a/.travis.yml +++ b/.travis.yml @@ -177,7 +177,7 @@ install: fi # Remove non expected files - rm -fr /home/travis/build/Dolibarr/dolibarr/htdocs/includes/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js + rm -fr /home/travis/dev/build/Dolibarr/dolibarr/htdocs/includes/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js echo - | @@ -313,7 +313,7 @@ before_script: - | echo "Setting up Apache" sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars - sudo cp -f build/travis-ci/apache.conf /etc/apache2/sites-available/000-default.conf + sudo cp -f dev/build/travis-ci/apache.conf /etc/apache2/sites-available/000-default.conf sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf sudo cat /etc/apache2/sites-available/000-default.conf sudo service apache2 restart diff --git a/dev/build/README b/dev/build/README index 549937881b3..d1107129de0 100644 --- a/dev/build/README +++ b/dev/build/README @@ -1,6 +1,6 @@ README (English) -Path: /dolibarr/build/README +Path: /dolibarr/dev/build/README ################################################## Building packages diff --git a/dev/build/debian/rules b/dev/build/debian/rules index 5b70362c610..f22c7f1d0a8 100755 --- a/dev/build/debian/rules +++ b/dev/build/debian/rules @@ -81,16 +81,16 @@ override_dh_install: rm -fr test - rm -fr build/aps - rm -fr build/dmg - rm -fr build/doap - rm -fr build/exe - rm -fr build/launchpad - rm -fr build/live - rm -fr build/patch - rm -fr build/perl - rm -fr build/rpm - rm -fr build/zip + rm -fr dev/build/aps + rm -fr dev/build/dmg + rm -fr dev/build/doap + rm -fr dev/build/exe + rm -fr dev/build/launchpad + rm -fr dev/build/live + rm -fr dev/build/patch + rm -fr dev/build/perl + rm -fr dev/build/rpm + rm -fr dev/build/zip # clean from all PHP embedded libraries (we use package dependencies instead) # rm -fr htdocs/includes/geoip diff --git a/dev/build/docker-dev/README.md b/dev/build/docker-dev/README.md index 66358bf2bbe..bb5c82391f1 100644 --- a/dev/build/docker-dev/README.md +++ b/dev/build/docker-dev/README.md @@ -10,7 +10,7 @@ Before build/run, define the variable HOST_USER_ID as following: Go in repository build/docker : - cd build/docker + cd dev/build/docker And then, you can run : diff --git a/dev/build/doxygen/dolibarr-doxygen-build.pl b/dev/build/doxygen/dolibarr-doxygen-build.pl index e8100011666..08deb42d6cd 100755 --- a/dev/build/doxygen/dolibarr-doxygen-build.pl +++ b/dev/build/doxygen/dolibarr-doxygen-build.pl @@ -19,7 +19,7 @@ my $dir = getcwd; print "Current dir is: $dir\n"; #print "Running dir for doxygen must be: $DIR\n"; -if (! -s "build/doxygen/$CONFFILE") +if (! -s "dev/build/doxygen/$CONFFILE") { print "Error: current directory for building Dolibarr doxygen documentation is not correct.\n"; print "\n"; @@ -47,8 +47,8 @@ $version=$MAJOR.".".$MINOR.".".$BUILD; print "Running doxygen for version ".$version.", please wait...\n"; -print "cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n"; -$result=`cat build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`; +print "cat dev/build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/".$version."/' | doxygen $OPTIONS - 2>&1\n"; +$result=`cat dev/build/doxygen/$CONFFILE | sed -e 's/x\.y\.z/$version/' | doxygen $OPTIONS - 2>&1`; print $result; diff --git a/dev/build/doxygen/dolibarr-doxygen.doxyfile b/dev/build/doxygen/dolibarr-doxygen.doxyfile index 66d86a6aa22..fb9a116409c 100644 --- a/dev/build/doxygen/dolibarr-doxygen.doxyfile +++ b/dev/build/doxygen/dolibarr-doxygen.doxyfile @@ -575,7 +575,7 @@ WARN_FORMAT = "$file:$line: $text" # and error messages should be written. If left blank the output is written # to stderr. -WARN_LOGFILE = build/html/doxygen_warnings.log +WARN_LOGFILE = dev/build/html/doxygen_warnings.log #--------------------------------------------------------------------------- # configuration options related to the input files @@ -804,14 +804,14 @@ HTML_FILE_EXTENSION = .html # standard header. # Does not work with 1.7.3 -#HTML_HEADER = build/doxygen/doxygen_header.html +#HTML_HEADER = dev/build/doxygen/doxygen_header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. # Does not work with 1.7.3 -HTML_FOOTER = build/doxygen/doxygen_footer.html +HTML_FOOTER = dev/build/doxygen/doxygen_footer.html # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to @@ -1655,4 +1655,4 @@ DOT_CLEANUP = YES FULL_SIDEBAR = NO -HTML_EXTRA_STYLESHEET = build/doxygen/doxygen-awesome.css +HTML_EXTRA_STYLESHEET = dev/build/doxygen/doxygen-awesome.css diff --git a/dev/build/exe/doliwamp/doliwamp.iss b/dev/build/exe/doliwamp/doliwamp.iss index a637b7deca1..063c9047bd5 100644 --- a/dev/build/exe/doliwamp/doliwamp.iss +++ b/dev/build/exe/doliwamp/doliwamp.iss @@ -8,7 +8,7 @@ ; package contains only one user called root with no password. ; For this, you can edit the mysql.user table of the source database to keep ; only the root user with no password, stop server and catch -; files user.MY* to put them in the Dolibarr build/exe/doliwamp/mysql directory. +; files user.MY* to put them in the Dolibarr dev/build/exe/doliwamp/mysql directory. ; ;---------------------------------------------------------------------------------------- diff --git a/dev/build/generate_filelist_xml.php b/dev/build/generate_filelist_xml.php index c97194efa18..13c07c7da19 100755 --- a/dev/build/generate_filelist_xml.php +++ b/dev/build/generate_filelist_xml.php @@ -18,7 +18,7 @@ */ /** - * \file build/generate_filelist_xml.php + * \file dev/build/generate_filelist_xml.php * \ingroup dev * \brief This script create a xml checksum file */ diff --git a/dev/build/gource/README.md b/dev/build/gource/README.md index 548d01ebccb..8356d788084 100644 --- a/dev/build/gource/README.md +++ b/dev/build/gource/README.md @@ -1,10 +1,10 @@ # Command to run gource on Dolibarr git project. cd ~/git/dolibarr -gource -a 0.5 -c 4 -i 0 --max-files 0 --dir-name-depth 2 --max-file-lag 0.1 --max-user-speed 150 --user-friction 1 --user-scale 3 --file-filter svgs --file-filter _source --file-filter tests --file-show-filter htdocs --date-format "%d %b %Y" -logo doc/images/appicon_64.png --highlight-users --highlight-colour FFFF88 -s 0.5 -1280x720 -r 25 -title 'Dolibarr ERP CRM Genesis' --stop-at-end --filename-time 2 --user-image-dir build/gource/avatars --hide filenames +gource -a 0.5 -c 4 -i 0 --max-files 0 --dir-name-depth 2 --max-file-lag 0.1 --max-user-speed 150 --user-friction 1 --user-scale 3 --file-filter svgs --file-filter _source --file-filter tests --file-show-filter htdocs --date-format "%d %b %Y" -logo doc/images/appicon_64.png --highlight-users --highlight-colour FFFF88 -s 0.5 -1280x720 -r 25 -title 'Dolibarr ERP CRM Genesis' --stop-at-end --filename-time 2 --user-image-dir dev/build/gource/avatars --hide filenames # To build a mp4 video # Change -crf 1 to -crf 50 for max compression (best is 5) cd ~/git/dolibarr -gource -a 0.5 -c 4 -i 0 --max-files 0 --dir-name-depth 2 --max-file-lag 0.1 --max-user-speed 150 --user-friction 1 --user-scale 3 --file-filter svgs --file-filter _source --file-filter tests --file-show-filter htdocs --date-format "%d %b %Y" -logo doc/images/appicon_64.png --highlight-users --highlight-colour FFFF88 -s 0.4 -1280x720 -r 25 -title 'Dolibarr ERP CRM Genesis' --stop-at-end --filename-time 2 --user-image-dir build/gource/avatars --hide filenames -o - | ffmpeg -y -r 25 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset slow -pix_fmt yuv420p -crf 5 -threads 0 -bf 0 dolibarr_genesis.mp4 +gource -a 0.5 -c 4 -i 0 --max-files 0 --dir-name-depth 2 --max-file-lag 0.1 --max-user-speed 150 --user-friction 1 --user-scale 3 --file-filter svgs --file-filter _source --file-filter tests --file-show-filter htdocs --date-format "%d %b %Y" -logo doc/images/appicon_64.png --highlight-users --highlight-colour FFFF88 -s 0.4 -1280x720 -r 25 -title 'Dolibarr ERP CRM Genesis' --stop-at-end --filename-time 2 --user-image-dir dev/build/gource/avatars --hide filenames -o - | ffmpeg -y -r 25 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset slow -pix_fmt yuv420p -crf 5 -threads 0 -bf 0 dolibarr_genesis.mp4 diff --git a/dev/build/launchpad/README b/dev/build/launchpad/README index a787bf3f9ad..7350c805a5a 100644 --- a/dev/build/launchpad/README +++ b/dev/build/launchpad/README @@ -31,7 +31,7 @@ DEBEMAIL="" - Create a Bazaar directory mkdir bzr -If you want to build/test package locally: +If you want to build or test package locally: - Create a file ~/.pbuilderrc with content COMPONENTS="main universe multiverse restricted" - Create chroot ubuntu env diff --git a/dev/build/makepack-dolibarr.pl b/dev/build/makepack-dolibarr.pl index 442466b128c..0e0f9412596 100755 --- a/dev/build/makepack-dolibarr.pl +++ b/dev/build/makepack-dolibarr.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl #---------------------------------------------------------------------------- -# \file build/makepack-dolibarr.pl +# \file dev/build/makepack-dolibarr.pl # \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps) # \author (c)2004-2023 Laurent Destailleur # @@ -410,8 +410,8 @@ if ($nboftargetok) { exit; } - print 'Create xml check file with md5 checksum with command php '.$SOURCE.'/build/generate_filelist_xml.php release='.$MAJOR.'.'.$MINOR.'.'.$BUILD."\n"; - $ret=`php $SOURCE/build/generate_filelist_xml.php release=$MAJOR.$MINOR.$BUILD`; + print 'Create xml check file with md5 checksum with command php '.$SOURCE.'/dev/build/generate_filelist_xml.php release='.$MAJOR.'.'.$MINOR.'.'.$BUILD."\n"; + $ret=`php $SOURCE/dev/build/generate_filelist_xml.php release=$MAJOR.$MINOR.$BUILD`; print $ret."\n"; # Copy to final dir $NEWDESTI=$DESTI; @@ -468,8 +468,8 @@ if ($nboftargetok) { print "Copy $SOURCE into $BUILDROOT/$PROJECT\n"; $ret=`cp -pr "$SOURCE" "$BUILDROOT/$PROJECT"`; - #print "Copy $SOURCE/build/debian/apache/.htaccess into $BUILDROOT/$PROJECT/build/debian/apache/.htaccess\n"; - #$ret=`cp -pr "$SOURCE/build/debian/apache/.htaccess" "$BUILDROOT/$PROJECT/build/debian/apache/.htaccess"`; + #print "Copy $SOURCE/dev/build/debian/apache/.htaccess into $BUILDROOT/$PROJECT/dev/build/debian/apache/.htaccess\n"; + #$ret=`cp -pr "$SOURCE/dev/build/debian/apache/.htaccess" "$BUILDROOT/$PROJECT/dev/build/debian/apache/.htaccess"`; } print "Clean $BUILDROOT\n"; $ret=`rm -f $BUILDROOT/$PROJECT/.buildpath`; @@ -492,22 +492,22 @@ if ($nboftargetok) { $ret=`rm -f $BUILDROOT/$PROJECT/pom.xml`; $ret=`rm -f $BUILDROOT/$PROJECT/README-*.md`; - $ret=`rm -fr $BUILDROOT/$PROJECT/build/html`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/Doli*-*`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.deb`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.dsc`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.tar.gz`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.tar.xz`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.deb`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.rpm`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar.gz`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar.xz`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tgz`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.xz`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.zip`; - $ret=`rm -f $BUILDROOT/$PROJECT/build/doxygen/doxygen_warnings.log`; - $ret=`rm -fr $BUILDROOT/$PROJECT/build/phpstan/phpstan`; + $ret=`rm -fr $BUILDROOT/$PROJECT/dev/build/html`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/Doli*-*`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr_*.deb`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr_*.dsc`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr_*.tar.gz`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr_*.tar.xz`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.deb`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.rpm`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.tar`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.tar.gz`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.tar.xz`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.tgz`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.xz`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/dolibarr-*.zip`; + $ret=`rm -f $BUILDROOT/$PROJECT/dev/build/doxygen/doxygen_warnings.log`; + $ret=`rm -fr $BUILDROOT/$PROJECT/dev/build/phpstan/phpstan`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/cache.manifest`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php`; $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`; @@ -702,11 +702,11 @@ if ($nboftargetok) { $cmd="cp -pr \"$BUILDROOT/$PROJECT/\" \"$BUILDROOT/$FILENAMETGZ\""; $ret=`$cmd`; - $ret=`rm -fr $BUILDROOT/$FILENAMETGZ/build/exe`; + $ret=`rm -fr $BUILDROOT/$FILENAMETGZ/dev/build/exe`; $ret=`rm -fr $BUILDROOT/$FILENAMETGZ/htdocs/includes/ckeditor/_source`; # We can't remove it with exclude file, we need it for some tarball packages print "Compress $FILENAMETGZ into $FILENAMETGZ.tgz...\n"; - $cmd="tar --exclude-vcs --exclude-from \"$BUILDROOT/$PROJECT/build/tgz/tar_exclude.txt\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$BUILDROOT/$FILENAMETGZ.tgz\" $FILENAMETGZ"; + $cmd="tar --exclude-vcs --exclude-from \"$BUILDROOT/$PROJECT/dev/build/tgz/tar_exclude.txt\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$BUILDROOT/$FILENAMETGZ.tgz\" $FILENAMETGZ"; print "$cmd\n"; $ret=`$cmd`; @@ -734,7 +734,7 @@ if ($nboftargetok) { $cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$FILENAMEXZ\""; $ret=`$cmd`; - $ret=`rm -fr $BUILDROOT/$FILENAMEXZ/build/exe`; + $ret=`rm -fr $BUILDROOT/$FILENAMEXZ/dev/build/exe`; $ret=`rm -fr $BUILDROOT/$FILENAMEXZ/htdocs/includes/ckeditor/_source`; # We can't remove it with exclude file, we need it for some tarball packages print "Compress $FILENAMEXZ into $FILENAMEXZ.xz...\n"; @@ -771,7 +771,7 @@ if ($nboftargetok) { $cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$FILENAMEZIP\""; $ret=`$cmd`; - $ret=`rm -fr $BUILDROOT/$FILENAMEZIP/build/exe`; + $ret=`rm -fr $BUILDROOT/$FILENAMEZIP/dev/build/exe`; $ret=`rm -fr $BUILDROOT/$FILENAMEZIP/htdocs/includes/ckeditor/_source`; # We can't remove it with exclude file, we need it for some tarball packages print "Compress $FILENAMEZIP into $FILENAMEZIP.zip...\n"; @@ -779,7 +779,7 @@ if ($nboftargetok) { print "Go to directory $BUILDROOT\n"; $olddir=getcwd(); chdir("$BUILDROOT"); - $cmd= "7z a -r -tzip -xr\@\"$BUILDROOT\/$FILENAMEZIP\/build\/zip\/zip_exclude.txt\" -mx $BUILDROOT/$FILENAMEZIP.zip $FILENAMEZIP\/*"; + $cmd= "7z a -r -tzip -xr\@\"$BUILDROOT\/$FILENAMEZIP\/dev\/build\/zip\/zip_exclude.txt\" -mx $BUILDROOT/$FILENAMEZIP.zip $FILENAMEZIP\/*"; print $cmd."\n"; $ret= `$cmd`; chdir("$olddir"); @@ -829,7 +829,7 @@ if ($nboftargetok) { # Build tgz print "Compress $FILENAMETGZ2 into $FILENAMETGZ2.tgz...\n"; - $ret=`tar --exclude-from "$SOURCE/build/tgz/tar_exclude.txt" --directory "$BUILDROOT" -czvf "$BUILDROOT/$FILENAMETGZ2.tgz" $FILENAMETGZ2`; + $ret=`tar --exclude-from "$SOURCE/dev/build/tgz/tar_exclude.txt" --directory "$BUILDROOT" -czvf "$BUILDROOT/$FILENAMETGZ2.tgz" $FILENAMETGZ2`; print "Move $BUILDROOT/$FILENAMETGZ2.tgz to $RPMDIR/SOURCES/$FILENAMETGZ2.tgz\n"; $cmd="mv $BUILDROOT/$FILENAMETGZ2.tgz $RPMDIR/SOURCES/$FILENAMETGZ2.tgz"; @@ -846,8 +846,8 @@ if ($nboftargetok) { $datestring = $lang->time2str("%a %b %e %Y", time); $changelogstring="* ".$datestring." Laurent Destailleur (eldy) $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n- Upstream release\n"; - print "Generate file $BUILDROOT/$BUILDFIC from $SOURCE/build/rpm/${BUILDFICSRC}\n"; - open (SPECFROM,"<$SOURCE/build/rpm/${BUILDFICSRC}") || die "Error"; + print "Generate file $BUILDROOT/$BUILDFIC from $SOURCE/dev/build/rpm/${BUILDFICSRC}\n"; + open (SPECFROM,"<$SOURCE/dev/build/rpm/${BUILDFICSRC}") || die "Error"; open (SPECTO,">$BUILDROOT/$BUILDFIC") || die "Error"; while () { $_ =~ s/__FILENAMETGZ__/$FILENAMETGZ/; @@ -860,7 +860,7 @@ if ($nboftargetok) { close SPECTO; print "Copy patch file to $RPMDIR/SOURCES\n"; - $ret=`cp "$SOURCE/build/rpm/dolibarr-forrpm.patch" "$RPMDIR/SOURCES"`; + $ret=`cp "$SOURCE/dev/build/rpm/dolibarr-forrpm.patch" "$RPMDIR/SOURCES"`; $ret=`chmod 644 $RPMDIR/SOURCES/dolibarr-forrpm.patch`; print "Launch RPM build (rpmbuild --clean -ba $BUILDROOT/${BUILDFIC})\n"; @@ -917,40 +917,40 @@ if ($nboftargetok) { print "Remove other files\n"; $ret=`rm -f $BUILDROOT/$PROJECT.tmp/README-FR.md`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/README`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/README-FR`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/aps`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/dmg`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/pad/README`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/tgz/README`; - #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/debian`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/debian/po`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/debian/source`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/changelog`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/compat`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/control*`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/copyright`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.config`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.desktop`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.docs`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.install`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.lintian-overrides`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.postrm`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.postinst`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.templates`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/dolibarr.templates.futur`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/rules`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/README.Debian`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/README.howto`; - $ret=`rm -f $BUILDROOT/$PROJECT.tmp/build/debian/watch`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/doap`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/exe`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/launchpad`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/live`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/patch`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/perl`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/rpm`; - $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/build/zip`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/README`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/README-FR`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/aps`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/dmg`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/pad/README`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/tgz/README`; + #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/debian`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/debian/po`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/debian/source`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/changelog`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/compat`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/control*`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/copyright`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.config`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.desktop`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.docs`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.install`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.lintian-overrides`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.postrm`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.postinst`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.templates`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/dolibarr.templates.futur`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/rules`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/README.Debian`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/README.howto`; + $ret=`rm -f $BUILDROOT/$PROJECT.tmp/dev/build/debian/watch`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/doap`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/exe`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/launchpad`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/live`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/patch`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/perl`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/rpm`; + $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/dev/build/zip`; # Removed duplicate license files $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source/LICENSE.md`; $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/htdocs/includes/ckeditor/ckeditor/_source/plugins/scayt/LICENSE.md`; @@ -978,10 +978,10 @@ if ($nboftargetok) { # Prepare source package (init debian dir) print "Create directory $BUILDROOT/$PROJECT.tmp/debian\n"; $ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian"`; - print "Copy $SOURCE/build/debian/xxx to $BUILDROOT/$PROJECT.tmp/debian\n"; + print "Copy $SOURCE/dev/build/debian/xxx to $BUILDROOT/$PROJECT.tmp/debian\n"; # Add files for dpkg-source (changelog) - #$ret=`cp -f "$SOURCE/build/debian/changelog" "$BUILDROOT/$PROJECT.tmp/debian"`; - open (SPECFROM,"<$SOURCE/build/debian/changelog") || die "Error"; + #$ret=`cp -f "$SOURCE/dev/build/debian/changelog" "$BUILDROOT/$PROJECT.tmp/debian"`; + open (SPECFROM,"<$SOURCE/dev/build/debian/changelog") || die "Error"; open (SPECTO,">$BUILDROOT/$PROJECT.tmp/debian/changelog") || die "Error"; while () { $_ =~ s/__VERSION__/$MAJOR.$MINOR.$newbuild/; @@ -990,28 +990,28 @@ if ($nboftargetok) { close SPECFROM; close SPECTO; # Add files for dpkg-source - $ret=`cp -f "$SOURCE/build/debian/compat" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/control" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/copyright" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.desktop" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.docs" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.install" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.lintian-overrides" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.xpm" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/rules" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/watch" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -fr "$SOURCE/build/debian/patches" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -fr "$SOURCE/build/debian/po" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -fr "$SOURCE/build/debian/source" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -fr "$SOURCE/build/debian/apache" "$BUILDROOT/$PROJECT.tmp/debian/apache"`; - $ret=`cp -f "$SOURCE/build/debian/apache/.htaccess" "$BUILDROOT/$PROJECT.tmp/debian/apache"`; - $ret=`cp -fr "$SOURCE/build/debian/lighttpd" "$BUILDROOT/$PROJECT.tmp/debian/lighttpd"`; - # Add files also required to build binary package - $ret=`cp -f "$SOURCE/build/debian/dolibarr.config" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.postinst" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.postrm" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/dolibarr.templates" "$BUILDROOT/$PROJECT.tmp/debian"`; - $ret=`cp -f "$SOURCE/build/debian/install.forced.php.install" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/compat" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/control" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/copyright" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.desktop" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.docs" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.install" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.lintian-overrides" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.xpm" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/rules" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/watch" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -fr "$SOURCE/dev/build/debian/patches" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -fr "$SOURCE/dev/build/debian/po" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -fr "$SOURCE/dev/build/debian/source" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -fr "$SOURCE/dev/build/debian/apache" "$BUILDROOT/$PROJECT.tmp/debian/apache"`; + $ret=`cp -f "$SOURCE/dev/build/debian/apache/.htaccess" "$BUILDROOT/$PROJECT.tmp/debian/apache"`; + $ret=`cp -fr "$SOURCE/dev/build/debian/lighttpd" "$BUILDROOT/$PROJECT.tmp/debian/lighttpd"`; + # Add files also required to dev/build binary package + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.config" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.postinst" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.postrm" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/dolibarr.templates" "$BUILDROOT/$PROJECT.tmp/debian"`; + $ret=`cp -f "$SOURCE/dev/build/debian/install.forced.php.install" "$BUILDROOT/$PROJECT.tmp/debian"`; # Set owners and permissions #print "Set owners on files/dir\n"; @@ -1055,7 +1055,7 @@ if ($nboftargetok) { # We need a tarball to be able to build "quilt" debian package (not required for native but we need patch so it is not a native) print "Compress $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build into $BUILDROOT/$FILENAMEDEBNATIVE.orig.tar.gz...\n"; - $cmd="tar --exclude-vcs --exclude-from \"$BUILDROOT/$PROJECT/build/tgz/tar_exclude.txt\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$BUILDROOT/$FILENAMEDEBNATIVE.orig.tar.gz\" $PROJECT-$MAJOR.$MINOR.$build"; + $cmd="tar --exclude-vcs --exclude-from \"$BUILDROOT/$PROJECT/dev/build/tgz/tar_exclude.txt\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$BUILDROOT/$FILENAMEDEBNATIVE.orig.tar.gz\" $PROJECT-$MAJOR.$MINOR.$build"; print $cmd."\n"; $ret=`$cmd`; @@ -1105,11 +1105,11 @@ if ($nboftargetok) { $SOURCEBACK=$SOURCE; $SOURCEBACK =~ s/\//\\/g; - print "Prepare file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" from \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.iss\"\n"; + print "Prepare file \"$SOURCEBACK\\dev\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" from \"$SOURCEBACK\\dev\\build\\exe\\doliwamp\\doliwamp.iss\"\n"; - #$ret=`cat "$SOURCE/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; - open(IN, '<' . $SOURCE."/build/exe/doliwamp/doliwamp.iss") or die $!; - open(OUT, '>' . "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss") or die $!; + #$ret=`cat "$SOURCE/dev/build/exe/doliwamp/doliwamp.iss" | sed -e 's/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g' > "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; + open(IN, '<' . $SOURCE."/dev/build/exe/doliwamp/doliwamp.iss") or die $!; + open(OUT, '>' . "$SOURCE/dev/build/exe/doliwamp/doliwamp.tmp.iss") or die $!; while() { $_ =~ s/__FILENAMEEXEDOLIWAMP__/$FILENAMEEXEDOLIWAMP/g; @@ -1118,30 +1118,30 @@ if ($nboftargetok) { close(IN); close(OUT); - print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" on OS $OS\n"; + print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCEBACK\\dev\\build\\exe\\doliwamp\\doliwamp.tmp.iss\" on OS $OS\n"; if ($OS eq 'windows') { - $cmd= "ISCC.exe \"$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; + $cmd= "ISCC.exe \"$SOURCEBACK\\dev\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; } else { - #$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; + #$cmd= "wine ISCC.exe \"Z:$SOURCEBACK\\dev\\build\\exe\\doliwamp\\doliwamp.tmp.iss\""; } print "$cmd\n"; $ret= `$cmd`; print "ret=$ret\n"; # Move to final dir - print "Move \"$SOURCE\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; - rename("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); - print "Move $SOURCE/build/$FILENAMEEXEDOLIWAMP.exe to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; + print "Move \"$SOURCE\\dev\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; + rename("$SOURCE/dev/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); + print "Move $SOURCE/dev/build/$FILENAMEEXEDOLIWAMP.exe to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n"; use File::Copy; - #$ret=`mv "$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`; - $ret=move("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe", "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); + #$ret=`mv "$SOURCE/dev/build/$FILENAMEEXEDOLIWAMP.exe" "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"`; + $ret=move("$SOURCE/dev/build/$FILENAMEEXEDOLIWAMP.exe", "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe"); - print "Remove tmp file $SOURCE/build/exe/doliwamp/doliwamp.tmp.iss\n"; - #$ret=`rm "$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"`; - $ret=unlink("$SOURCE/build/exe/doliwamp/doliwamp.tmp.iss"); + print "Remove tmp file $SOURCE/dev/build/exe/doliwamp/doliwamp.tmp.iss\n"; + #$ret=`rm "$SOURCE/dev/build/exe/doliwamp/doliwamp.tmp.iss"`; + $ret=unlink("$SOURCE/dev/build/exe/doliwamp/doliwamp.tmp.iss"); next; } diff --git a/dev/build/makepack-dolibarrmodule.pl b/dev/build/makepack-dolibarrmodule.pl index 5f51582a65b..bc0022a67fc 100755 --- a/dev/build/makepack-dolibarrmodule.pl +++ b/dev/build/makepack-dolibarrmodule.pl @@ -285,10 +285,10 @@ foreach my $PROJECT (@PROJECTLIST) { @timearray=localtime(time()); $fulldate=($timearray[5]+1900).'-'.($timearray[4]+1).'-'.$timearray[3].' '.$timearray[2].':'.$timearray[1]; - open(VF,">$BUILDROOT/$PROJECTLC/build/version-".$PROJECTLC.".txt"); + open(VF,">$BUILDROOT/$PROJECTLC/dev/build/version-".$PROJECTLC.".txt"); - print "Create version file $BUILDROOT/$PROJECTLC/build/version-".$PROJECTLC.".txt with date ".$fulldate."\n"; - $ret=`mkdir -p "$BUILDROOT/$PROJECTLC/build"`; + print "Create version file $BUILDROOT/$PROJECTLC/dev/build/version-".$PROJECTLC.".txt with date ".$fulldate."\n"; + $ret=`mkdir -p "$BUILDROOT/$PROJECTLC/dev/build"`; print VF "Version: ".$MAJOR.".".$MINOR.($BUILD ne ''?".$BUILD":"")."\n"; print VF "Build : ".$fulldate."\n"; close VF; @@ -299,7 +299,7 @@ foreach my $PROJECT (@PROJECTLIST) { $ret=`rm -fr $BUILDROOT/$PROJECTLC/.project`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/.settings`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/index.php`; - $ret=`rm -fr $BUILDROOT/$PROJECTLC/build/html`; + $ret=`rm -fr $BUILDROOT/$PROJECTLC/dev/build/html`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/documents`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/document`; $ret=`rm -fr $BUILDROOT/$PROJECTLC/htdocs/conf/conf.php.mysql`; diff --git a/dev/build/makepack-dolibarrtheme.pl b/dev/build/makepack-dolibarrtheme.pl index 6aeb32a5fcb..7a6c31fb0f8 100755 --- a/dev/build/makepack-dolibarrtheme.pl +++ b/dev/build/makepack-dolibarrtheme.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl #----------------------------------------------------------------------------- -# \file build/makepack-dolibarrtheme.pl +# \file dev/build/makepack-dolibarrtheme.pl # \brief Script to build a theme Package for Dolibarr # \author (c)2005-2009 Laurent Destailleur #----------------------------------------------------------------------------- diff --git a/dev/build/makepack-howto.txt b/dev/build/makepack-howto.txt index 674d6e2fd01..aed7f0685fd 100644 --- a/dev/build/makepack-howto.txt +++ b/dev/build/makepack-howto.txt @@ -15,11 +15,11 @@ Prerequisites to build autoexe DoliWamp package from Linux (solution seems broke For example by running isetup-5.5.8.exe (https://www.jrsoftware.org) https://files.jrsoftware.org/is/5/ > Install WampServer into "C:\wamp64" to have Apache, PHP and MariaDB For example by running wampserver3.2.6_x64.exe (https://www.wampserver.com). - See file build/exe/doliwamp.iss to know the doliwamp version currently setup. + See file dev/build/exe/doliwamp.iss to know the doliwamp version currently setup. > Add path to ISCC into PATH windows var: Launch wine cmd, then regedit and add entry int HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment\PATH > To build manually the .exe from Windows (running from makepack-dolibarr.pl script is however recommended), - open file build/exe/doliwamp.iss and click on button "Compile". + open file dev/build/exe/doliwamp.iss and click on button "Compile". The .exe file will be build into directory build. diff --git a/dev/build/patch/buildpatch.sh b/dev/build/patch/buildpatch.sh index a2c5787e853..8f672c0b395 100755 --- a/dev/build/patch/buildpatch.sh +++ b/dev/build/patch/buildpatch.sh @@ -1,6 +1,6 @@ #!/bin/bash #---------------------------------------------------------------------------- -# \file build/patch/buildpatch.sh +# \file dev/build/patch/buildpatch.sh # \brief Create patch files # \author (c)2009-2011 Laurent Destailleur #---------------------------------------------------------------------------- diff --git a/dev/build/phpstan/README b/dev/build/phpstan/README index 7f207283b61..e5f743fa1ec 100644 --- a/dev/build/phpstan/README +++ b/dev/build/phpstan/README @@ -7,7 +7,7 @@ Config File is: ./phpstan.neon = Installation = -cd ./build/phpstan +cd ./dev/build/phpstan mkdir phpstan cd phpstan composer require --dev phpstan/phpstan @@ -17,8 +17,8 @@ composer require --dev phpstan/phpstan In dolibarr/ mv htdocs/custom /tmp/ -php build/phpstan/phpstan/vendor/bin/phpstan -v analyze -c ./phpstan.neon -a build/phpstan/bootstrap.php --memory-limit 4G --error-format=table htdocs/commande/class -php build/phpstan/phpstan/vendor/bin/phpstan -v analyze -c ./phpstan.neon -a build/phpstan/bootstrap.php --memory-limit 4G --error-format=table htdocs/ +php dev/build/phpstan/phpstan/vendor/bin/phpstan -v analyze -c ./phpstan.neon -a dev/build/phpstan/bootstrap.php --memory-limit 4G --error-format=table htdocs/commande/class +php dev/build/phpstan/phpstan/vendor/bin/phpstan -v analyze -c ./phpstan.neon -a dev/build/phpstan/bootstrap.php --memory-limit 4G --error-format=table htdocs/ mv /tmp/custom htdocs Build HTML report from Cron: diff --git a/dev/build/rpm/dolibarr_fedora.spec b/dev/build/rpm/dolibarr_fedora.spec index f17cf690160..77860e9d744 100644 --- a/dev/build/rpm/dolibarr_fedora.spec +++ b/dev/build/rpm/dolibarr_fedora.spec @@ -84,23 +84,23 @@ cui hai bisogno ed essere facile da usare. %{__rm} -rf $RPM_BUILD_ROOT %{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} -%{__install} -m 644 build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php -%{__install} -m 644 build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf -%{__install} -m 644 build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr -%{__install} -m 644 build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php +%{__install} -m 644 dev/build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php +%{__install} -m 644 dev/build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf +%{__install} -m 644 dev/build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr +%{__install} -m 644 dev/build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps %{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications -#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop -%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop +#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications dev/build/rpm/%{name}.desktop +%{__install} -m 644 dev/build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts -%{__cp} -pr build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__cp} -pr build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__cp} -pr dev/build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name} %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source @@ -146,13 +146,13 @@ done >>%{name}.lang %_datadir/pixmaps/dolibarr.png %_datadir/applications/dolibarr.desktop -%dir %_datadir/dolibarr/build +%dir %_datadir/dolibarr/dev/build -%dir %_datadir/dolibarr/build/rpm -%_datadir/dolibarr/build/rpm/* +%dir %_datadir/dolibarr/dev/build/rpm +%_datadir/dolibarr/dev/build/rpm/* -%dir %_datadir/dolibarr/build/tgz -%_datadir/dolibarr/build/tgz/* +%dir %_datadir/dolibarr/dev/build/tgz +%_datadir/dolibarr/dev/build/tgz/* %dir %_datadir/dolibarr/htdocs %_datadir/dolibarr/htdocs/accountancy diff --git a/dev/build/rpm/dolibarr_generic.spec b/dev/build/rpm/dolibarr_generic.spec index b0ac7d65e80..2c3da4a4817 100644 --- a/dev/build/rpm/dolibarr_generic.spec +++ b/dev/build/rpm/dolibarr_generic.spec @@ -133,19 +133,19 @@ cui hai bisogno ed essere facile da usare. %{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} %endif -%{__install} -m 644 build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php -%{__install} -m 644 build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf -%{__install} -m 644 build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr +%{__install} -m 644 dev/build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php +%{__install} -m 644 dev/build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf +%{__install} -m 644 dev/build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} -%{__install} -m 644 build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php +%{__install} -m 644 dev/build/rpm/install.forced.php.fedora $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %else %if 0%{?mdkversion} -%{__install} -m 644 build/rpm/install.forced.php.mandriva $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php +%{__install} -m 644 dev/build/rpm/install.forced.php.mandriva $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %else %if 0%{?suse_version} -%{__install} -m 644 build/rpm/install.forced.php.opensuse $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php +%{__install} -m 644 dev/build/rpm/install.forced.php.opensuse $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %else -%{__install} -m 644 build/rpm/install.forced.php.generic $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php +%{__install} -m 644 dev/build/rpm/install.forced.php.generic $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %endif %endif %endif @@ -153,18 +153,18 @@ cui hai bisogno ed essere facile da usare. %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps %{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications -%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop +%{__install} -m 644 dev/build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop %if 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} || 0%{?mdkversion} || 0%{?suse_version} -#Commented as it fails with error: /usr/bin/install: cannot stat build/rpm/dolibarr.desktop: No such file or directory -#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop --vendor="" +#Commented as it fails with error: /usr/bin/install: cannot stat dev/build/rpm/dolibarr.desktop: No such file or directory +#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications dev/build/rpm/%{name}.desktop --vendor="" %endif -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts -%{__cp} -pr build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__cp} -pr build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__cp} -pr dev/build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name} %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source @@ -227,13 +227,13 @@ done >>%{name}.lang %_datadir/pixmaps/dolibarr.png %_datadir/applications/dolibarr.desktop -%dir %_datadir/dolibarr/build +%dir %_datadir/dolibarr/dev/build -%dir %_datadir/dolibarr/build/rpm -%_datadir/dolibarr/build/rpm/* +%dir %_datadir/dolibarr/dev/build/rpm +%_datadir/dolibarr/dev/build/rpm/* -%dir %_datadir/dolibarr/build/tgz -%_datadir/dolibarr/build/tgz/* +%dir %_datadir/dolibarr/dev/build/tgz +%_datadir/dolibarr/dev/build/tgz/* %dir %_datadir/dolibarr/htdocs %_datadir/dolibarr/htdocs/accountancy @@ -413,7 +413,7 @@ then superuserpassword=$(/bin/grep --max-count=1 "password" %{_sysconfdir}/mysql/debian.cnf | /bin/sed -e 's/^password[ =]*//g') fi echo Mysql superuser found to use is $superuserlogin - %{__cat} /usr/share/dolibarr/build/rpm/install.forced.php.generic | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig + %{__cat} /usr/share/dolibarr/dev/build/rpm/install.forced.php.generic | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig %{__chmod} -R 660 $installconfig fi %endif diff --git a/dev/build/rpm/dolibarr_mandriva.spec b/dev/build/rpm/dolibarr_mandriva.spec index e1d70e7de93..543a91bfff1 100644 --- a/dev/build/rpm/dolibarr_mandriva.spec +++ b/dev/build/rpm/dolibarr_mandriva.spec @@ -83,23 +83,23 @@ cui hai bisogno ed essere facile da usare. %{__rm} -rf $RPM_BUILD_ROOT %{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} -%{__install} -m 644 build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php -%{__install} -m 644 build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf -%{__install} -m 644 build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr -%{__install} -m 644 build/rpm/install.forced.php.mandriva $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php +%{__install} -m 644 dev/build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php +%{__install} -m 644 dev/build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf +%{__install} -m 644 dev/build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr +%{__install} -m 644 dev/build/rpm/install.forced.php.mandriva $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps %{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications -#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop -%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop +#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications dev/build/rpm/%{name}.desktop +%{__install} -m 644 dev/build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts -%{__cp} -pr build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__cp} -pr build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__cp} -pr dev/build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name} %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source @@ -144,13 +144,13 @@ done >>%{name}.lang %_datadir/pixmaps/dolibarr.png %_datadir/applications/dolibarr.desktop -%dir %_datadir/dolibarr/build +%dir %_datadir/dolibarr/dev/build -%dir %_datadir/dolibarr/build/rpm -%_datadir/dolibarr/build/rpm/* +%dir %_datadir/dolibarr/dev/build/rpm +%_datadir/dolibarr/dev/build/rpm/* -%dir %_datadir/dolibarr/build/tgz -%_datadir/dolibarr/build/tgz/* +%dir %_datadir/dolibarr/dev/build/tgz +%_datadir/dolibarr/dev/build/tgz/* %dir %_datadir/dolibarr/htdocs %_datadir/dolibarr/htdocs/accountancy diff --git a/dev/build/rpm/dolibarr_opensuse.spec b/dev/build/rpm/dolibarr_opensuse.spec index 7a8e42664e5..9af35bca1d2 100644 --- a/dev/build/rpm/dolibarr_opensuse.spec +++ b/dev/build/rpm/dolibarr_opensuse.spec @@ -83,23 +83,23 @@ cui hai bisogno ed essere facile da usare. %{__rm} -rf $RPM_BUILD_ROOT %{__mkdir} -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name} -%{__install} -m 644 build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php -%{__install} -m 644 build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf -%{__install} -m 644 build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr -%{__install} -m 644 build/rpm/install.forced.php.opensuse $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php +%{__install} -m 644 dev/build/rpm/conf.php $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.php +%{__install} -m 644 dev/build/rpm/httpd-dolibarr.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/apache.conf +%{__install} -m 644 dev/build/rpm/file_contexts.dolibarr $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/file_contexts.dolibarr +%{__install} -m 644 dev/build/rpm/install.forced.php.opensuse $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/install.forced.php %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/pixmaps %{__install} -m 644 doc/images/appicon_64.png $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{name}.png %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/applications -#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications build/rpm/%{name}.desktop -%{__install} -m 644 build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop +#desktop-file-install --delete-original --dir=$RPM_BUILD_ROOT%{_datadir}/applications dev/build/rpm/%{name}.desktop +%{__install} -m 644 dev/build/rpm/dolibarr.desktop $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs %{__mkdir} -p $RPM_BUILD_ROOT%{_datadir}/%{name}/scripts -%{__cp} -pr build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/rpm -%{__cp} -pr build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/build/tgz +%{__cp} -pr dev/build/rpm/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/rpm +%{__cp} -pr dev/build/tgz/* $RPM_BUILD_ROOT%{_datadir}/%{name}/dev/build/tgz %{__cp} -pr htdocs $RPM_BUILD_ROOT%{_datadir}/%{name} %{__cp} -pr scripts $RPM_BUILD_ROOT%{_datadir}/%{name} %{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/%{name}/htdocs/includes/ckeditor/_source @@ -154,13 +154,13 @@ done >>%{name}.lang %_datadir/pixmaps/dolibarr.png %_datadir/applications/dolibarr.desktop -%dir %_datadir/dolibarr/build +%dir %_datadir/dolibarr/dev/build -%dir %_datadir/dolibarr/build/rpm -%_datadir/dolibarr/build/rpm/* +%dir %_datadir/dolibarr/dev/build/rpm +%_datadir/dolibarr/dev/build/rpm/* -%dir %_datadir/dolibarr/build/tgz -%_datadir/dolibarr/build/tgz/* +%dir %_datadir/dolibarr/dev/build/tgz +%_datadir/dolibarr/dev/build/tgz/* %dir %_datadir/dolibarr/htdocs %_datadir/dolibarr/htdocs/accountancy diff --git a/dev/build/tgz/tar_exclude.txt b/dev/build/tgz/tar_exclude.txt index 4a69b4e87dc..c5173fe955d 100644 --- a/dev/build/tgz/tar_exclude.txt +++ b/dev/build/tgz/tar_exclude.txt @@ -4,8 +4,8 @@ .gitignore .scrutinizer.yml Thumbs.db -build/exe -build/html +dev/build/exe +dev/build/html dev/examples/zapier dev/initdemo dev/initdata diff --git a/dev/build/zip/zip_exclude.txt b/dev/build/zip/zip_exclude.txt index 88bd22826ff..11a17d808d8 100644 --- a/dev/build/zip/zip_exclude.txt +++ b/dev/build/zip/zip_exclude.txt @@ -1,8 +1,8 @@ *~ *.#* Thumbs.db -*/build/exe -*/build/html +*/dev/build/exe +*/dev/build/html */dev/dbmodel/* */dev/fpdf/* */dev/initdemo/* diff --git a/dev/setup/codesniffer/ruleset.xml b/dev/setup/codesniffer/ruleset.xml index 50b107f5fcc..25ccaa38c40 100644 --- a/dev/setup/codesniffer/ruleset.xml +++ b/dev/setup/codesniffer/ruleset.xml @@ -7,7 +7,7 @@ - /build/(html|aps)/ + /dev/build/(html|aps)/ /dev/tools/test/namespacemig/ /dev/tools/phan/stubs/ diff --git a/dev/tools/apstats.php b/dev/tools/apstats.php index 825257dadbe..2e7e1b2b39a 100755 --- a/dev/tools/apstats.php +++ b/dev/tools/apstats.php @@ -149,7 +149,7 @@ $phpstanversion = $output_arrtd[0]; $output_arrtd = array(); if ($dirphpstan != 'disabled') { - $commandcheck = ($dirphpstan ? $dirphpstan.'/' : '').'phpstan --level='.$PHPSTANLEVEL.' -v analyze -a build/phpstan/bootstrap.php --memory-limit 8G --error-format=github -c ~/preview.dolibarr.org/dolibarr/dev/tools/phpstan/phpstan_v1_apstats.neon'; + $commandcheck = ($dirphpstan ? $dirphpstan.'/' : '').'phpstan --level='.$PHPSTANLEVEL.' -v analyze -a dev/build/phpstan/bootstrap.php --memory-limit 8G --error-format=github -c ~/preview.dolibarr.org/dolibarr/dev/tools/phpstan/phpstan_v1_apstats.neon'; print 'Execute PHPStan to get the technical debt: '.$commandcheck."\n"; $resexectd = 0; exec($commandcheck, $output_arrtd, $resexectd); diff --git a/htdocs/core/doxygen.php b/htdocs/core/doxygen.php index 0d86ec3438f..b0f7f3a8af7 100644 --- a/htdocs/core/doxygen.php +++ b/htdocs/core/doxygen.php @@ -23,7 +23,7 @@ * \mainpage Dolibarr documentation of source code * * This is source documentation for Dolibarr ERP/CRM.
- * This documentation can be built or updated running the script build/doxygen/dolibarr-doxygen-build.pl or from Eclipse with Doxygen plugin.
+ * This documentation can be built or updated running the script dev/build/doxygen/dolibarr-doxygen-build.pl or from Eclipse with Doxygen plugin.
*
* Dolibarr official web site: www.dolibarr.org
*
diff --git a/phpstan.neon.dist b/phpstan.neon.dist index a21273cea08..075cc668cca 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -1,5 +1,5 @@ includes: - - build/phpstan/phpstan-baseline.neon + - dev/build/phpstan/phpstan-baseline.neon parameters: tmpDir: ./.github/tmp parallel: diff --git a/pyproject.toml b/pyproject.toml index a14e7614a89..419d1d6d5f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta" # `codespell` can be run as a standalone program from the CLI # with the appropriate default options. -skip = "*/.*/*,*/langs/*,*/build/exe/*,**.log,*.pdf,*.PDF,*dev/resources/*,*.phar,*.z,*.gz,*.sql,*.svg,*htdocs/includes/*,*/textiso.txt,*.js,*README-*,*build/rpm/*spec,*build/pad/*ml,*htdocs/includes/phpoffice/*,*htdocs/includes/tecnickcom/*,*dev/initdemo/removeconfdemo.sh,*dev/tools/codespell/*,*dev/trans*/ignore_translation_keys.lst,*pyproject.toml,*build/exe/*,*fontawe*,*htdocs/theme/*/flags-sprite.inc.php,*dev/setup/codetemplates/codetemplates.xml,*/php.ini,*/html_cerfafr.*,*/lessc.class.php,*.asciidoc,*.xml,*opensurvey/css/style.css,*dev/tools/phan/stubs/*,*/documents,phpstan.*" +skip = "*/.*/*,*/langs/*,*/dev/build/exe/*,**.log,*.pdf,*.PDF,*dev/resources/*,*.phar,*.z,*.gz,*.sql,*.svg,*htdocs/includes/*,*/textiso.txt,*.js,*README-*,*build/rpm/*spec,*build/pad/*ml,*htdocs/includes/phpoffice/*,*htdocs/includes/tecnickcom/*,*dev/initdemo/removeconfdemo.sh,*dev/tools/codespell/*,*dev/trans*/ignore_translation_keys.lst,*pyproject.toml,*build/exe/*,*fontawe*,*htdocs/theme/*/flags-sprite.inc.php,*dev/setup/codetemplates/codetemplates.xml,*/php.ini,*/html_cerfafr.*,*/lessc.class.php,*.asciidoc,*.xml,*opensurvey/css/style.css,*dev/tools/phan/stubs/*,*/documents,phpstan.*" check-hidden = true quiet-level=2 diff --git a/test/phpunit/phpunittest.xml b/test/phpunit/phpunittest.xml index 7fa17448216..ff3afdbf7ec 100644 --- a/test/phpunit/phpunittest.xml +++ b/test/phpunit/phpunittest.xml @@ -36,7 +36,6 @@ ../../htdocs/core/modules/fichinter/modules_fichinter.php - ../../build/ ../../dev/ ../../doc/ ../../test/ From 64e83886fbaae4892dcce4d812449db4f40fb3eb Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 14:49:20 +0100 Subject: [PATCH 117/126] Doc --- doc/install/README | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/install/README b/doc/install/README index 0192ff27521..49ae1d1a74e 100644 --- a/doc/install/README +++ b/doc/install/README @@ -12,7 +12,7 @@ Download https://www.dolibarr.org * Most external modules are only available on DoliStore: - https://www.dolistore.com + https://www.dolistore.com -------------------------------- @@ -21,5 +21,5 @@ Install * For a Quick guide, take a look at README.md file into root directory. -* More complete documentations are also available on line on the Dolibarr Wiki: +* More complete documentation is also available on line on the Dolibarr Wiki: https://wiki.dolibarr.org From 83f350bea4657ef034dea2c194f218c83e10455b Mon Sep 17 00:00:00 2001 From: MDW Date: Sun, 5 Jan 2025 15:02:58 +0100 Subject: [PATCH 118/126] Fix: Copyright generation when single year --- dev/tools/fixcopyrightheader.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dev/tools/fixcopyrightheader.php b/dev/tools/fixcopyrightheader.php index bda934bf3b7..423c455f596 100755 --- a/dev/tools/fixcopyrightheader.php +++ b/dev/tools/fixcopyrightheader.php @@ -1,6 +1,6 @@ #!/usr/bin/env php +/* Copyright (C) 2024-2025 MDW * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -125,9 +125,11 @@ function updateCopyrightNotice($filename, $fileType, $name, $email) $matches = array(); if (preg_match($pattern, $lines, $matches)) { $existingYear = $matches['last']; + $startYear = null; if (array_key_exists('start', $matches)) { $startYear = $matches['start']; - } else { + } + if (empty($startYear)) { $startYear = $existingYear; } @@ -135,7 +137,6 @@ function updateCopyrightNotice($filename, $fileType, $name, $email) if ($existingYear !== date('Y')) { // Extend the year range to the current year $updatedNotice = preg_replace('/(?:\d{4}-)?\d{4}\s+/', $startYear . '-' . date('Y') . "\t", $matches[0]); - // Replace the old notice with the updated one in the file file_put_contents($filename, preg_replace($pattern, $updatedNotice, file_get_contents($filename))); return true; // Change detected From a9d526e74a14944a2f838fcc88a0ace89e4d5e88 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 15:41:50 +0100 Subject: [PATCH 119/126] Fix travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2609b797d95..22fef0806a0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -177,7 +177,7 @@ install: fi # Remove non expected files - rm -fr /home/travis/dev/build/Dolibarr/dolibarr/htdocs/includes/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js + rm -fr /home/travis/build/Dolibarr/dolibarr/htdocs/includes/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js echo - | From 16e45e90c439324351903394bb0304de9710ef91 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 16:13:56 +0100 Subject: [PATCH 120/126] Doc --- ChangeLog | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6f84acd3dd4..b7439b5e742 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,25 @@ English Dolibarr ChangeLog -------------------------------------------------------------- + +***** ChangeLog for 22.0.0 compared to 21.0 ***** + +For users: +---------- + + +For developers: +---------- + + +WARNING: +-------- + +The following changes may create regressions for some external modules, but were necessary to make Dolibarr better: +* The directory /build has been moved into /dev/build. + + + ***** ChangeLog for 21.0.0 compared to 20.0 ***** For users: From 3b1bc8bbb13fe0d31b115c32cf957a39982ca6aa Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 16:14:21 +0100 Subject: [PATCH 121/126] Prepare v22 dev --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index a8b1e09f220..aa03bc81bd9 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -36,7 +36,7 @@ if (!defined('DOL_APPLICATION_TITLE')) { define('DOL_APPLICATION_TITLE', 'Dolibarr'); } if (!defined('DOL_VERSION')) { - define('DOL_VERSION', '21.0.0'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c + define('DOL_VERSION', '22.0.0-alpha'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c } if (!defined('EURO')) { From a2eb970bb7e93759143a043ed3d4e41e8560fd35 Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 16:18:38 +0100 Subject: [PATCH 122/126] Fix type --- htdocs/commande/class/orderline.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/commande/class/orderline.class.php b/htdocs/commande/class/orderline.class.php index d4ee988d3ea..250c73b9ce1 100644 --- a/htdocs/commande/class/orderline.class.php +++ b/htdocs/commande/class/orderline.class.php @@ -105,7 +105,7 @@ class OrderLine extends CommonOrderLine /** * Buy price without taxes - * @var float + * @var float|string Can be '' when we do not provide any buying price. */ public $pa_ht; From 9b52c4a10a905bbc56de1f06a79b43d86ed9898b Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 16:30:56 +0100 Subject: [PATCH 123/126] Fix CI github --- dev/build/phpstan/README | 2 +- dev/build/phpstan/bootstrap.php | 2 +- dev/build/phpstan/bootstrap_action.php | 6 +- dev/build/phpstan/phpstan-baseline.neon | 11214 +++++++++++----------- 4 files changed, 5612 insertions(+), 5612 deletions(-) diff --git a/dev/build/phpstan/README b/dev/build/phpstan/README index e5f743fa1ec..07e192f88ab 100644 --- a/dev/build/phpstan/README +++ b/dev/build/phpstan/README @@ -23,4 +23,4 @@ mv /tmp/custom htdocs Build HTML report from Cron: Example of line to add into a cron to generate a HTML report: -0 1 5 * * cd /home/dolibarr/preview.dolibarr.org/dolibarr; chmod -R u+w /home/dolibarr/preview.dolibarr.org/dolibarr; git pull; /home/dolibarr/phpstan/vendor/bin/phpstan -v analyze --memory-limit 4G --error-format=github | awk ' BEGIN{ print "Date "strftime("%Y-%m-%d")"
" } { print $0"
" } END{ print NR } ' > /home/dolibarr/doxygen.dolibarr.org/phpstan/index.html +0 1 5 * * cd /home/dolibarr/preview.dolibarr.org/dolibarr; chmod -R u+w /home/dolibarr/preview.dolibarr.org/dolibarr; git reset --hard HEAD; git pull; /home/dolibarr/preview.dolibarr.org/dolibarr/dev/build/phpstan/vendor/bin/phpstan -v analyze --memory-limit 4G --error-format=github | awk ' BEGIN{ print "Date "strftime("%Y-%m-%d")"
" } { print $0"
" } END{ print NR } ' > /home/dolibarr/cti.dolibarr.org/phpstanindex.html diff --git a/dev/build/phpstan/bootstrap.php b/dev/build/phpstan/bootstrap.php index c756ecfd4ae..c0806621641 100644 --- a/dev/build/phpstan/bootstrap.php +++ b/dev/build/phpstan/bootstrap.php @@ -42,4 +42,4 @@ if (!defined("NOHTTPSREDIRECT")) { global $conf, $db, $hookmanager, $langs, $mysoc, $user; -include_once __DIR__ . '/../../htdocs/main.inc.php'; +include_once __DIR__ . '/../../../htdocs/main.inc.php'; diff --git a/dev/build/phpstan/bootstrap_action.php b/dev/build/phpstan/bootstrap_action.php index f1a6a638f91..69e8f3d4f81 100644 --- a/dev/build/phpstan/bootstrap_action.php +++ b/dev/build/phpstan/bootstrap_action.php @@ -27,9 +27,9 @@ if (!defined("NOHTTPSREDIRECT")) { } // Defined some constants and load Dolibarr env to reduce PHPStan bootstrap that fails to load a lot of things. -$dolibarr_main_document_root = __DIR__ . '/../../htdocs'; -define('DOL_DOCUMENT_ROOT', __DIR__ . '/../../htdocs'); -define('DOL_DATA_ROOT', __DIR__ . '/../../documents'); +$dolibarr_main_document_root = __DIR__ . '/../../../htdocs'; +define('DOL_DOCUMENT_ROOT', __DIR__ . '/../../../htdocs'); +define('DOL_DATA_ROOT', __DIR__ . '/../../../documents'); define('DOL_URL_ROOT', '/'); define('DOL_MAIN_URL_ROOT', '/'); define('MAIN_DB_PREFIX', 'llx_'); diff --git a/dev/build/phpstan/phpstan-baseline.neon b/dev/build/phpstan/phpstan-baseline.neon index c850e576f25..be42a96344b 100644 --- a/dev/build/phpstan/phpstan-baseline.neon +++ b/dev/build/phpstan/phpstan-baseline.neon @@ -4,33640 +4,33640 @@ parameters: message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 3 - path: ../../htdocs/accountancy/admin/accountmodel.php + path: ../../../htdocs/accountancy/admin/accountmodel.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 3 - path: ../../htdocs/accountancy/admin/accountmodel.php + path: ../../../htdocs/accountancy/admin/accountmodel.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/accountancy/admin/accountmodel.php + path: ../../../htdocs/accountancy/admin/accountmodel.php - message: '#^Loose comparison using \=\= between ''type_cdr'' and ''type_cdr'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/accountancy/admin/accountmodel.php + path: ../../../htdocs/accountancy/admin/accountmodel.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/card.php + path: ../../../htdocs/accountancy/admin/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/accountancy/admin/card.php + path: ../../../htdocs/accountancy/admin/card.php - message: '#^Variable \$cat_id in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/admin/categories.php + path: ../../../htdocs/accountancy/admin/categories.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/accountancy/admin/categories_list.php + path: ../../../htdocs/accountancy/admin/categories_list.php - message: '#^Loose comparison using \=\= between 32 and 32 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/categories_list.php + path: ../../../htdocs/accountancy/admin/categories_list.php - message: '#^Parameter \#12 \$tabcomplete of function complete_dictionary_with_modules expects array\\>\>, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/accountancy/admin/categories_list.php + path: ../../../htdocs/accountancy/admin/categories_list.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 4 - path: ../../htdocs/accountancy/admin/fiscalyear_card.php + path: ../../../htdocs/accountancy/admin/fiscalyear_card.php - message: '#^Loose comparison using \=\= between ''ACCOUNTING_LABEL…'' and ''ACCOUNTING_LABEL…'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/index.php + path: ../../../htdocs/accountancy/admin/index.php - message: '#^Loose comparison using \=\= between ''ACCOUNTING_LENGTH…'' and ''ACCOUNTING_LENGTH…'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/index.php + path: ../../../htdocs/accountancy/admin/index.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/index.php + path: ../../../htdocs/accountancy/admin/index.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/index.php + path: ../../../htdocs/accountancy/admin/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 7 - path: ../../htdocs/accountancy/admin/journals_list.php + path: ../../../htdocs/accountancy/admin/journals_list.php - message: '#^Loose comparison using \!\= between 35 and 10 will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/journals_list.php + path: ../../../htdocs/accountancy/admin/journals_list.php - message: '#^Parameter \#12 \$tabcomplete of function complete_dictionary_with_modules expects array\\>\>, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/accountancy/admin/journals_list.php + path: ../../../htdocs/accountancy/admin/journals_list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/journals_list.php + path: ../../../htdocs/accountancy/admin/journals_list.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/productaccount.php + path: ../../../htdocs/accountancy/admin/productaccount.php - message: '#^Variable \$defaultvalue in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/accountancy/admin/productaccount.php + path: ../../../htdocs/accountancy/admin/productaccount.php - message: '#^Variable \$toselect in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/admin/productaccount.php + path: ../../../htdocs/accountancy/admin/productaccount.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/report_list.php + path: ../../../htdocs/accountancy/admin/report_list.php - message: '#^Loose comparison using \=\= between 45 and 45 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/report_list.php + path: ../../../htdocs/accountancy/admin/report_list.php - message: '#^Parameter \#12 \$tabcomplete of function complete_dictionary_with_modules expects array\\>\>, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/accountancy/admin/report_list.php + path: ../../../htdocs/accountancy/admin/report_list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/admin/report_list.php + path: ../../../htdocs/accountancy/admin/report_list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 3 - path: ../../htdocs/accountancy/admin/subaccount.php + path: ../../../htdocs/accountancy/admin/subaccount.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/admin/subaccount.php + path: ../../../htdocs/accountancy/admin/subaccount.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/accountancy/bookkeeping/balance.php + path: ../../../htdocs/accountancy/bookkeeping/balance.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/accountancy/bookkeeping/balance.php + path: ../../../htdocs/accountancy/bookkeeping/balance.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/bookkeeping/balance.php + path: ../../../htdocs/accountancy/bookkeeping/balance.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/bookkeeping/balance.php + path: ../../../htdocs/accountancy/bookkeeping/balance.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/bookkeeping/balance.php + path: ../../../htdocs/accountancy/bookkeeping/balance.php - message: '#^Variable \$filter might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/accountancy/bookkeeping/balance.php + path: ../../../htdocs/accountancy/bookkeeping/balance.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/accountancy/bookkeeping/export.php + path: ../../../htdocs/accountancy/bookkeeping/export.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/accountancy/bookkeeping/export.php + path: ../../../htdocs/accountancy/bookkeeping/export.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/bookkeeping/export.php + path: ../../../htdocs/accountancy/bookkeeping/export.php - message: '#^Variable \$filter might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/accountancy/bookkeeping/export.php + path: ../../../htdocs/accountancy/bookkeeping/export.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/bookkeeping/list.php + path: ../../../htdocs/accountancy/bookkeeping/list.php - message: '#^Variable \$documentlink might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/accountancy/bookkeeping/list.php + path: ../../../htdocs/accountancy/bookkeeping/list.php - message: '#^Variable \$filter might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/accountancy/bookkeeping/list.php + path: ../../../htdocs/accountancy/bookkeeping/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/bookkeeping/listbyaccount.php + path: ../../../htdocs/accountancy/bookkeeping/listbyaccount.php - message: '#^Property AccountancyCategory\:\:\$active \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$category_type \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$fk_country \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$formula \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$position \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$range_account \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Property AccountancyCategory\:\:\$sens \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancycategory.class.php + path: ../../../htdocs/accountancy/class/accountancycategory.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Loose comparison using \=\= between 2 and 2 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 6 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$archiveFullName in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$archivePath in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$completefilename in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$downloadFileFullName in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$downloadFileMimeType in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$downloadFilePath in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$exportFileFullName in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$exportFilePath in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Variable \$invoice might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/accountancy/class/accountancyexport.class.php + path: ../../../htdocs/accountancy/class/accountancyexport.class.php - message: '#^Property AccountancyReport\:\:\$active \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancyreport.class.php + path: ../../../htdocs/accountancy/class/accountancyreport.class.php - message: '#^Property AccountancyReport\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancyreport.class.php + path: ../../../htdocs/accountancy/class/accountancyreport.class.php - message: '#^Property AccountancyReport\:\:\$fk_country \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancyreport.class.php + path: ../../../htdocs/accountancy/class/accountancyreport.class.php - message: '#^Property AccountancyReport\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/accountancyreport.class.php + path: ../../../htdocs/accountancy/class/accountancyreport.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/accountancy/class/accountingaccount.class.php + path: ../../../htdocs/accountancy/class/accountingaccount.class.php - message: '#^Property AccountingAccount\:\:\$account_number \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/accountancy/class/accountingaccount.class.php + path: ../../../htdocs/accountancy/class/accountingaccount.class.php - message: '#^Property AccountingAccount\:\:\$fk_pcg_version \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/accountancy/class/accountingaccount.class.php + path: ../../../htdocs/accountancy/class/accountingaccount.class.php - message: '#^Property AccountingAccount\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/accountancy/class/accountingaccount.class.php + path: ../../../htdocs/accountancy/class/accountingaccount.class.php - message: '#^Property AccountingAccount\:\:\$labelshort \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/accountancy/class/accountingaccount.class.php + path: ../../../htdocs/accountancy/class/accountingaccount.class.php - message: '#^Property AccountingAccount\:\:\$pcg_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/accountancy/class/accountingaccount.class.php + path: ../../../htdocs/accountancy/class/accountingaccount.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/class/accountingaccount.class.php + path: ../../../htdocs/accountancy/class/accountingaccount.class.php - message: '#^Call to function array_key_exists\(\) with ''error'' and array\{ref\: mixed, label\: mixed, acquisition_value_ht\: mixed, depreciation\: non\-empty\-array\\}\>, disposal\?\: array\{date\: mixed, amount\: mixed, subject_to_vat\: bool\}\} will always evaluate to false\.$#' identifier: function.impossibleType count: 1 - path: ../../htdocs/accountancy/class/accountingjournal.class.php + path: ../../../htdocs/accountancy/class/accountingjournal.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Parameter \#2 \$callback of function array_filter expects \(callable\(string\)\: bool\)\|null, ''strlen'' given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$amount \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$code_journal \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$credit \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$debit \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$doc_ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$doc_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$fk_doc \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$fk_docdet \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$fk_user_author \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$import_key \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$journal_label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$label_compte \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$label_operation \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$montant \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$numero_compte \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$piece_num \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$sens \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Property BookKeeping\:\:\$thirdparty_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/class/bookkeeping.class.php + path: ../../../htdocs/accountancy/class/bookkeeping.class.php - message: '#^Call to function is_array\(\) with non\-empty\-array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/accountancy/class/lettering.class.php + path: ../../../htdocs/accountancy/class/lettering.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/accountancy/class/lettering.class.php + path: ../../../htdocs/accountancy/class/lettering.class.php - message: '#^Parameter \#1 \$document_ids of method Lettering\:\:getBankLinesFromFkDocAndDocType\(\) expects array\\>, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/accountancy/class/lettering.class.php + path: ../../../htdocs/accountancy/class/lettering.class.php - message: '#^Parameter \#1 \$link_by_element of method Lettering\:\:getGroupElements\(\) expects array\\>, array\\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/accountancy/class/lettering.class.php + path: ../../../htdocs/accountancy/class/lettering.class.php - message: '#^Parameter \#3 \$link_key of method Lettering\:\:getGroupElements\(\) expects string, int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/accountancy/class/lettering.class.php + path: ../../../htdocs/accountancy/class/lettering.class.php - message: '#^Variable \$save_element_by_link might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/accountancy/class/lettering.class.php + path: ../../../htdocs/accountancy/class/lettering.class.php - message: '#^Variable \$save_link_by_element might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/accountancy/class/lettering.class.php + path: ../../../htdocs/accountancy/class/lettering.class.php - message: '#^Parameter \#2 \$callback of function array_filter expects \(callable\(string\)\: bool\)\|null, ''strlen'' given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/accountancy/closure/index.php + path: ../../../htdocs/accountancy/closure/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/accountancy/closure/index.php + path: ../../../htdocs/accountancy/closure/index.php - message: '#^Variable \$current_fiscal_period in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 4 - path: ../../htdocs/accountancy/closure/index.php + path: ../../../htdocs/accountancy/closure/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/customer/card.php + path: ../../../htdocs/accountancy/customer/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/accountancy/customer/index.php + path: ../../../htdocs/accountancy/customer/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/customer/lines.php + path: ../../../htdocs/accountancy/customer/lines.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/accountancy/customer/lines.php + path: ../../../htdocs/accountancy/customer/lines.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/customer/list.php + path: ../../../htdocs/accountancy/customer/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/accountancy/customer/list.php + path: ../../../htdocs/accountancy/customer/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/customer/list.php + path: ../../../htdocs/accountancy/customer/list.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/expensereport/card.php + path: ../../../htdocs/accountancy/expensereport/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/accountancy/expensereport/index.php + path: ../../../htdocs/accountancy/expensereport/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/expensereport/lines.php + path: ../../../htdocs/accountancy/expensereport/lines.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/accountancy/expensereport/lines.php + path: ../../../htdocs/accountancy/expensereport/lines.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/expensereport/list.php + path: ../../../htdocs/accountancy/expensereport/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/accountancy/expensereport/list.php + path: ../../../htdocs/accountancy/expensereport/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/expensereport/list.php + path: ../../../htdocs/accountancy/expensereport/list.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/accountancy/index.php + path: ../../../htdocs/accountancy/index.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/accountancy/index.php + path: ../../../htdocs/accountancy/index.php - message: '#^Call to function is_array\(\) with non\-empty\-array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/accountancy/journal/bankjournal.php + path: ../../../htdocs/accountancy/journal/bankjournal.php - message: '#^Call to function is_array\(\) with non\-empty\-array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 3 - path: ../../htdocs/accountancy/journal/bankjournal.php + path: ../../../htdocs/accountancy/journal/bankjournal.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/accountancy/journal/bankjournal.php + path: ../../../htdocs/accountancy/journal/bankjournal.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/accountancy/journal/bankjournal.php + path: ../../../htdocs/accountancy/journal/bankjournal.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/journal/bankjournal.php + path: ../../../htdocs/accountancy/journal/bankjournal.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/accountancy/journal/expensereportsjournal.php + path: ../../../htdocs/accountancy/journal/expensereportsjournal.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/journal/expensereportsjournal.php + path: ../../../htdocs/accountancy/journal/expensereportsjournal.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/journal/expensereportsjournal.php + path: ../../../htdocs/accountancy/journal/expensereportsjournal.php - message: '#^Variable \$def_tva might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/accountancy/journal/expensereportsjournal.php + path: ../../../htdocs/accountancy/journal/expensereportsjournal.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/journal/purchasesjournal.php + path: ../../../htdocs/accountancy/journal/purchasesjournal.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/journal/sellsjournal.php + path: ../../../htdocs/accountancy/journal/sellsjournal.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/accountancy/journal/variousjournal.php + path: ../../../htdocs/accountancy/journal/variousjournal.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/supplier/card.php + path: ../../../htdocs/accountancy/supplier/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/accountancy/supplier/index.php + path: ../../../htdocs/accountancy/supplier/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/supplier/lines.php + path: ../../../htdocs/accountancy/supplier/lines.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/accountancy/supplier/lines.php + path: ../../../htdocs/accountancy/supplier/lines.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/accountancy/supplier/list.php + path: ../../../htdocs/accountancy/supplier/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/accountancy/supplier/list.php + path: ../../../htdocs/accountancy/supplier/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/accountancy/supplier/list.php + path: ../../../htdocs/accountancy/supplier/list.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/adherents/admin/member.php + path: ../../../htdocs/adherents/admin/member.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/adherents/card.php + path: ../../../htdocs/adherents/card.php - message: '#^Variable \$public in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/adherents/card.php + path: ../../../htdocs/adherents/card.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Call to function method_exists\(\) with \$this\(Adherent\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Call to function method_exists\(\) with \$this\(Adherent\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Call to function property_exists\(\) with \$this\(Adherent\) and ''photo'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Call to function property_exists\(\) with \$this\(Adherent\) and ''societe'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 5 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Property Adherent\:\:\$last_subscription_amount \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/adherents/class/adherent.class.php + path: ../../../htdocs/adherents/class/adherent.class.php - message: '#^Call to function method_exists\(\) with \$this\(AdherentType\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Call to function method_exists\(\) with \$this\(AdherentType\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Call to function property_exists\(\) with \$this\(AdherentType\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Call to function property_exists\(\) with \$this\(AdherentType\) and ''vote'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Loose comparison using \!\= between '''' and ''nolink'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Property AdherentType\:\:\$duration \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Property AdherentType\:\:\$subscription \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Property AdherentType\:\:\$vote \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/adherents/class/adherent_type.class.php + path: ../../../htdocs/adherents/class/adherent_type.class.php - message: '#^Call to function property_exists\(\) with \$this\(Subscription\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/subscription.class.php + path: ../../../htdocs/adherents/class/subscription.class.php - message: '#^Call to function property_exists\(\) with \$this\(Subscription\) and ''datef'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/subscription.class.php + path: ../../../htdocs/adherents/class/subscription.class.php - message: '#^Call to function property_exists\(\) with \$this\(Subscription\) and ''dateh'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/adherents/class/subscription.class.php + path: ../../../htdocs/adherents/class/subscription.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/adherents/class/subscription.class.php + path: ../../../htdocs/adherents/class/subscription.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/adherents/class/subscription.class.php + path: ../../../htdocs/adherents/class/subscription.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/adherents/list.php + path: ../../../htdocs/adherents/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/adherents/list.php + path: ../../../htdocs/adherents/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/adherents/list.php + path: ../../../htdocs/adherents/list.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/adherents/list.php + path: ../../../htdocs/adherents/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/adherents/list.php + path: ../../../htdocs/adherents/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/adherents/list.php + path: ../../../htdocs/adherents/list.php - message: '#^Variable \$diroutputmassaction might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/adherents/list.php + path: ../../../htdocs/adherents/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/adherents/messaging.php + path: ../../../htdocs/adherents/messaging.php - message: '#^Property Partnership\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/adherents/partnership.php + path: ../../../htdocs/adherents/partnership.php - message: '#^Property Partnership\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/adherents/partnership.php + path: ../../../htdocs/adherents/partnership.php - message: '#^Variable \$bankline in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/adherents/subscription/card.php + path: ../../../htdocs/adherents/subscription/card.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/adherents/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/adherents/tpl/linkedobjectblock.tpl.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/adherents/type.php + path: ../../../htdocs/adherents/type.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/admin/accountant.php + path: ../../../htdocs/admin/accountant.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/admin/agenda.php + path: ../../../htdocs/admin/agenda.php - message: '#^Variable \$errorsaved in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/bank.php + path: ../../../htdocs/admin/bank.php - message: '#^Call to function is_object\(\) with ModeleBoxes will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/admin/boxes.php + path: ../../../htdocs/admin/boxes.php - message: '#^Variable \$massaction might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/const.php + path: ../../../htdocs/admin/const.php - message: '#^Offset ''css'' on array\{css\: ''minwidth200'', enabled\: mixed\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/admin/dav.php + path: ../../../htdocs/admin/dav.php - message: '#^Call to function is_null\(\) with null will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/admin/dict.php + path: ../../../htdocs/admin/dict.php - message: '#^Loose comparison using \!\= between ''create'' and ''edit'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/admin/dict.php + path: ../../../htdocs/admin/dict.php - message: '#^Parameter \#12 \$tabcomplete of function complete_dictionary_with_modules expects array\\>\>, array\\|string\>\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/admin/dict.php + path: ../../../htdocs/admin/dict.php - message: '#^Variable \$param in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/dict.php + path: ../../../htdocs/admin/dict.php - message: '#^Variable \$rowidcol in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/dict.php + path: ../../../htdocs/admin/dict.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/admin/emailcollector_card.php + path: ../../../htdocs/admin/emailcollector_card.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/emailcollector_list.php + path: ../../../htdocs/admin/emailcollector_list.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/admin/eventorganization.php + path: ../../../htdocs/admin/eventorganization.php - message: '#^Loose comparison using \=\= between 1 and 1 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/admin/eventorganization.php + path: ../../../htdocs/admin/eventorganization.php - message: '#^Offset ''css'' on array\{type\: ''category\:customer''\|''emailtemplate…''\|''product''\|''securekey''\|''textarea''\|''thirdparty_type\:'', enabled\: 1, css\: ''''\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/admin/eventorganization.php + path: ../../../htdocs/admin/eventorganization.php - message: '#^Variable \$arrayofparameters in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/eventorganization.php + path: ../../../htdocs/admin/eventorganization.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/events.php + path: ../../../htdocs/admin/events.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/fediverse.php + path: ../../../htdocs/admin/fediverse.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/admin/geoipmaxmind.php + path: ../../../htdocs/admin/geoipmaxmind.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Loose comparison using \=\= between ''varchar'' and ''html'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Loose comparison using \=\= between ''varchar'' and ''product'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Loose comparison using \=\= between ''varchar'' and ''securekey'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Loose comparison using \=\= between ''varchar'' and ''yesno'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Loose comparison using \=\= between 1 and 1 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Offset ''css'' on array\{type\: ''integer''\|''varchar'', enabled\: 1, css\: ''''\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Variable \$arrayofparameters in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/hrm.php + path: ../../../htdocs/admin/hrm.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 1 - path: ../../htdocs/admin/index.php + path: ../../../htdocs/admin/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/admin/index.php + path: ../../../htdocs/admin/index.php - message: '#^Variable \$setupcompanynotcomplete in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/index.php + path: ../../../htdocs/admin/index.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/admin/knowledgemanagement.php + path: ../../../htdocs/admin/knowledgemanagement.php - message: '#^Offset ''includedocgeneration'' on array\{label\: ''KnowledgeManagement'', includerefgeneration\: 1, includedocgeneration\: 0, class\: ''KnowledgeRecord''\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/admin/knowledgemanagement.php + path: ../../../htdocs/admin/knowledgemanagement.php - message: '#^Offset ''includerefgeneration'' on array\{label\: ''KnowledgeManagement'', includerefgeneration\: 1, includedocgeneration\: 0, class\: ''KnowledgeRecord''\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/admin/knowledgemanagement.php + path: ../../../htdocs/admin/knowledgemanagement.php - message: '#^Variable \$arrayofparameters in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/knowledgemanagement.php + path: ../../../htdocs/admin/knowledgemanagement.php - message: '#^Variable \$setupnotempty in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/knowledgemanagement.php + path: ../../../htdocs/admin/knowledgemanagement.php - message: '#^Parameter \#12 \$localtaxes_array of function calcul_price_total expects array\{string, int\|string, string, int\|string, string, string\}\|array\{string, int\|string, string, string\}, array\{\} given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/admin/limits.php + path: ../../../htdocs/admin/limits.php - message: '#^Variable \$aCurrencies in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/admin/limits.php + path: ../../../htdocs/admin/limits.php - message: '#^Call to function is_array\(\) with non\-empty\-list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/admin/mails.php + path: ../../../htdocs/admin/mails.php - message: '#^Variable \$text in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 4 - path: ../../htdocs/admin/mails.php + path: ../../../htdocs/admin/mails.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/admin/mails_emailing.php + path: ../../../htdocs/admin/mails_emailing.php - message: '#^Variable \$text in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/admin/mails_emailing.php + path: ../../../htdocs/admin/mails_emailing.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/admin/mails_passwordreset.php + path: ../../../htdocs/admin/mails_passwordreset.php - message: '#^Variable \$text in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/admin/mails_passwordreset.php + path: ../../../htdocs/admin/mails_passwordreset.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/admin/mails_senderprofile_list.php + path: ../../../htdocs/admin/mails_senderprofile_list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/mails_senderprofile_list.php + path: ../../../htdocs/admin/mails_senderprofile_list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 4 - path: ../../htdocs/admin/mails_templates.php + path: ../../../htdocs/admin/mails_templates.php - message: '#^Loose comparison using \!\= between ''create'' and ''edit'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/admin/mails_templates.php + path: ../../../htdocs/admin/mails_templates.php - message: '#^Loose comparison using \=\= between ''create'' and ''edit'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/admin/mails_templates.php + path: ../../../htdocs/admin/mails_templates.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/admin/mails_templates.php + path: ../../../htdocs/admin/mails_templates.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/admin/mails_templates.php + path: ../../../htdocs/admin/mails_templates.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/admin/mails_ticket.php + path: ../../../htdocs/admin/mails_ticket.php - message: '#^Variable \$text in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/admin/mails_ticket.php + path: ../../../htdocs/admin/mails_ticket.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/admin/menus/edit.php + path: ../../../htdocs/admin/menus/edit.php - message: '#^Property Menubase\:\:\$target \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/admin/menus/edit.php + path: ../../../htdocs/admin/menus/edit.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/admin/modules.php + path: ../../../htdocs/admin/modules.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/admin/modules.php + path: ../../../htdocs/admin/modules.php - message: '#^Property DolibarrModules\:\:\$langfiles \(array\\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/admin/modules.php + path: ../../../htdocs/admin/modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/admin/modules.php + path: ../../../htdocs/admin/modules.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/admin/modules.php + path: ../../../htdocs/admin/modules.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/admin/notification.php + path: ../../../htdocs/admin/notification.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/admin/notification.php + path: ../../../htdocs/admin/notification.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/admin/oauth.php + path: ../../../htdocs/admin/oauth.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/admin/oauthlogintokens.php + path: ../../../htdocs/admin/oauthlogintokens.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/admin/oauthlogintokens.php + path: ../../../htdocs/admin/oauthlogintokens.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/admin/oauthlogintokens.php + path: ../../../htdocs/admin/oauthlogintokens.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/admin/oauthlogintokens.php + path: ../../../htdocs/admin/oauthlogintokens.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/admin/openinghours.php + path: ../../../htdocs/admin/openinghours.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/admin/pdf.php + path: ../../../htdocs/admin/pdf.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/admin/perms.php + path: ../../../htdocs/admin/perms.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/admin/security.php + path: ../../../htdocs/admin/security.php - message: '#^Variable \$max in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/admin/security_file.php + path: ../../../htdocs/admin/security_file.php - message: '#^Variable \$smsfile might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/admin/sms.php + path: ../../../htdocs/admin/sms.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/admin/stocktransfer.php + path: ../../../htdocs/admin/stocktransfer.php - message: '#^Variable \$setupnotempty in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/stocktransfer.php + path: ../../../htdocs/admin/stocktransfer.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/admin/system/about.php + path: ../../../htdocs/admin/system/about.php - message: '#^Variable \$conffiletoshowshort might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/system/constall.php + path: ../../../htdocs/admin/system/constall.php - message: '#^Variable \$row might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/system/dbtable.php + path: ../../../htdocs/admin/system/dbtable.php - message: '#^Variable \$conffiletoshowshort might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/system/dolibarr.php + path: ../../../htdocs/admin/system/dolibarr.php - message: '#^Variable \$ignore in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/system/dolibarr.php + path: ../../../htdocs/admin/system/dolibarr.php - message: '#^Call to function is_array\(\) with non\-empty\-list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/admin/system/filecheck.php + path: ../../../htdocs/admin/system/filecheck.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/admin/system/filecheck.php + path: ../../../htdocs/admin/system/filecheck.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/admin/system/filecheck.php + path: ../../../htdocs/admin/system/filecheck.php - message: '#^Parameter \#1 \$file_list of function getFilesUpdated expects array\{insignature\: array\, missing\?\: array\, updated\: array\\}, array\{\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/admin/system/filecheck.php + path: ../../../htdocs/admin/system/filecheck.php - message: '#^Parameter \#1 \$size of function dol_print_size expects int, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/admin/system/filecheck.php + path: ../../../htdocs/admin/system/filecheck.php - message: '#^Loose comparison using \!\= between '''' and ''kanban'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/admin/system/modules.php + path: ../../../htdocs/admin/system/modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/admin/system/modules.php + path: ../../../htdocs/admin/system/modules.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/system/modules.php + path: ../../../htdocs/admin/system/modules.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/admin/system/perf.php + path: ../../../htdocs/admin/system/perf.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/admin/system/phpinfo.php + path: ../../../htdocs/admin/system/phpinfo.php - message: '#^Variable \$title in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/admin/system/phpinfo.php + path: ../../../htdocs/admin/system/phpinfo.php - message: '#^Call to function function_exists\(\) with ''exec''\|''popen'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/admin/system/security.php + path: ../../../htdocs/admin/system/security.php - message: '#^Variable \$dolibarr_main_document_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/system/security.php + path: ../../../htdocs/admin/system/security.php - message: '#^Variable \$dolibarr_main_prod might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/system/security.php + path: ../../../htdocs/admin/system/security.php - message: '#^Call to function is_bool\(\) with true will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/admin/system/xdebug.php + path: ../../../htdocs/admin/system/xdebug.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/admin/tools/dolibarr_export.php + path: ../../../htdocs/admin/tools/dolibarr_export.php - message: '#^Variable \$dolibarr_main_db_name might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/admin/tools/dolibarr_export.php + path: ../../../htdocs/admin/tools/dolibarr_export.php - message: '#^Variable \$dolibarr_main_db_user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/admin/tools/dolibarr_export.php + path: ../../../htdocs/admin/tools/dolibarr_export.php - message: '#^Variable \$dolibarr_main_db_host might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/admin/tools/dolibarr_import.php + path: ../../../htdocs/admin/tools/dolibarr_import.php - message: '#^Variable \$dolibarr_main_db_name might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/admin/tools/dolibarr_import.php + path: ../../../htdocs/admin/tools/dolibarr_import.php - message: '#^Variable \$dolibarr_main_db_user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/admin/tools/dolibarr_import.php + path: ../../../htdocs/admin/tools/dolibarr_import.php - message: '#^Variable \$ExecTimeLimit in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/tools/export.php + path: ../../../htdocs/admin/tools/export.php - message: '#^Variable \$MemoryLimit in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/tools/export.php + path: ../../../htdocs/admin/tools/export.php - message: '#^Variable \$massaction might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/tools/export.php + path: ../../../htdocs/admin/tools/export.php - message: '#^Method Documentation\:\:displayMenu\(\) has parameter \$menu with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/admin/tools/ui/class/documentation.class.php + path: ../../../htdocs/admin/tools/ui/class/documentation.class.php - message: '#^Method Documentation\:\:displaySummary\(\) has parameter \$menu with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/admin/tools/ui/class/documentation.class.php + path: ../../../htdocs/admin/tools/ui/class/documentation.class.php - message: '#^Method Documentation\:\:setMenu\(\) should return mixed but return statement is missing\.$#' identifier: return.missing count: 1 - path: ../../htdocs/admin/tools/ui/class/documentation.class.php + path: ../../../htdocs/admin/tools/ui/class/documentation.class.php - message: '#^Method Documentation\:\:showCode\(\) has parameter \$lines with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/admin/tools/ui/class/documentation.class.php + path: ../../../htdocs/admin/tools/ui/class/documentation.class.php - message: '#^Property Documentation\:\:\$menu type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/admin/tools/ui/class/documentation.class.php + path: ../../../htdocs/admin/tools/ui/class/documentation.class.php - message: '#^Property Documentation\:\:\$summary type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/admin/tools/ui/class/documentation.class.php + path: ../../../htdocs/admin/tools/ui/class/documentation.class.php - message: '#^Property Documentation\:\:\$view type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/admin/tools/ui/class/documentation.class.php + path: ../../../htdocs/admin/tools/ui/class/documentation.class.php - message: '#^Variable \$massactionbutton in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/admin/translation.php + path: ../../../htdocs/admin/translation.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/admin/triggers.php + path: ../../../htdocs/admin/triggers.php - message: '#^Variable \$label might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/admin/usergroup.php + path: ../../../htdocs/admin/usergroup.php - message: '#^Variable \$scandir might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/admin/usergroup.php + path: ../../../htdocs/admin/usergroup.php - message: '#^Variable \$arrayofparameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/webhook.php + path: ../../../htdocs/admin/webhook.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/webhook.php + path: ../../../htdocs/admin/webhook.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 5 - path: ../../htdocs/admin/website.php + path: ../../../htdocs/admin/website.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 4 - path: ../../htdocs/admin/website.php + path: ../../../htdocs/admin/website.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/admin/website.php + path: ../../../htdocs/admin/website.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/admin/website.php + path: ../../../htdocs/admin/website.php - message: '#^Parameter \#1 \$array of function dol_sort_array contains unresolvable type\.$#' identifier: argument.unresolvableType count: 1 - path: ../../htdocs/admin/workflow.php + path: ../../../htdocs/admin/workflow.php - message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#' identifier: function.unresolvableReturnType count: 1 - path: ../../htdocs/admin/workflow.php + path: ../../../htdocs/admin/workflow.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/admin/workstation.php + path: ../../../htdocs/admin/workstation.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/admin/workstation.php + path: ../../../htdocs/admin/workstation.php - message: '#^Variable \$arrayofparameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/admin/workstation.php + path: ../../../htdocs/admin/workstation.php - message: '#^Variable \$label might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/admin/workstation.php + path: ../../../htdocs/admin/workstation.php - message: '#^Variable \$scandir might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/admin/workstation.php + path: ../../../htdocs/admin/workstation.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/admin/workstation.php + path: ../../../htdocs/admin/workstation.php - message: '#^Loose comparison using \=\= between ''edit'' and ''edit'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/ai/admin/setup.php + path: ../../../htdocs/ai/admin/setup.php - message: '#^Unable to resolve the template type T in call to method DolibarrApi\:\:_cleanObjectDatas\(\)$#' identifier: argument.templateType count: 1 - path: ../../htdocs/api/class/api.class.php + path: ../../../htdocs/api/class/api.class.php - message: '#^Method DolibarrApiAccess\:\:verifyAccess\(\) has parameter \$m with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_access.class.php + path: ../../../htdocs/api/class/api_access.class.php - message: '#^Property DolibarrApiAccess\:\:\$requires type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_access.class.php + path: ../../../htdocs/api/class/api_access.class.php - message: '#^Call to function is_object\(\) with ActionComm\|Adherent\|Commande\|CommandeFournisseur\|Contact\|Contrat\|ExpenseReport\|Facture\|FactureFournisseur\|Fichinter\|Mo\|Product\|Project\|Propal\|Task will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Method Documents\:\:builddoc\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Method Documents\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Method Documents\:\:getDocumentsListByElement\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Method Documents\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Method Documents\:\:post\(\) has parameter \$array_options with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Variable \$disablevirusscan in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Variable \$modulepart in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Variable \$relativefile might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/api/class/api_documents.class.php + path: ../../../htdocs/api/class/api_documents.class.php - message: '#^Method Login\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_login.class.php + path: ../../../htdocs/api/class/api_login.class.php - message: '#^Method Login\:\:loginUnsecured\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_login.class.php + path: ../../../htdocs/api/class/api_login.class.php - message: '#^Comparison operation "\<\=" between 0 and 0 is always true\.$#' identifier: smallerOrEqual.alwaysTrue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:deleteExtrafieldsFromNames\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getAvailability\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getCheckIntegrity\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getEstablishments\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getExtrafields\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfCivilities\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfContactTypes\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfCountries\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfCurrencies\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfEventTypes\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfExpenseReportsTypes\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfExtrafields\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfIncoterms\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfLegalForm\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfMeasuringUnits\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfRegions\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfStaff\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfStates\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfTowns\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getListOfsocialNetworks\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getOrderingMethods\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getOrderingOrigins\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getPaymentTerms\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getPaymentTypes\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getShippingModes\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getTicketsCategories\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getTicketsSeverities\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:getTicketsTypes\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:postExtrafields\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:translateLabel\(\) has parameter \$dict with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Setup\:\:updateExtrafields\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Parameter \#1 \$file_list of function getFilesUpdated expects array\{insignature\: array\, missing\?\: array\, updated\: array\\}, array\{\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Variable \$multicurrency in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Variable \$tmpfilelist3 in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/api/class/api_setup.class.php + path: ../../../htdocs/api/class/api_setup.class.php - message: '#^Method Status\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/api/class/api_status.class.php + path: ../../../htdocs/api/class/api_status.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/api/index.php + path: ../../../htdocs/api/index.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/accountancy_codes.php + path: ../../../htdocs/asset/accountancy_codes.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/asset/admin/setup.php + path: ../../../htdocs/asset/admin/setup.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/asset/admin/setup.php + path: ../../../htdocs/asset/admin/setup.php - message: '#^Loose comparison using \=\= between 1 and 1 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/asset/admin/setup.php + path: ../../../htdocs/asset/admin/setup.php - message: '#^Variable \$arrayofparameters in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/asset/admin/setup.php + path: ../../../htdocs/asset/admin/setup.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/admin/setup.php + path: ../../../htdocs/asset/admin/setup.php - message: '#^Variable \$setupnotempty in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/asset/admin/setup.php + path: ../../../htdocs/asset/admin/setup.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/asset/card.php + path: ../../../htdocs/asset/card.php - message: '#^Property Asset\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/card.php + path: ../../../htdocs/asset/card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/card.php + path: ../../../htdocs/asset/card.php - message: '#^Loose comparison using \=\= between 0 and 9 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Loose comparison using \=\= between 9 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Parameter \#4 \$depreciation_ht of method Asset\:\:addDepreciationLine\(\) expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Parameter \#5 \$cumulative_depreciation_ht of method Asset\:\:addDepreciationLine\(\) expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Property Asset\:\:\$date_start \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Property Asset\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/asset/class/asset.class.php + path: ../../../htdocs/asset/class/asset.class.php - message: '#^Call to function is_callable\(\) with array\{\$this\(AssetDepreciationOptions\), ''validateField''\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/asset/class/assetdepreciationoptions.class.php + path: ../../../htdocs/asset/class/assetdepreciationoptions.class.php - message: '#^Call to function property_exists\(\) with AssetModel and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Call to function property_exists\(\) with AssetModel and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Call to function property_exists\(\) with AssetModel and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Call to function property_exists\(\) with AssetModel and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Call to function property_exists\(\) with AssetModel and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Property AssetModel\:\:\$asset_accountancy_codes \(AssetAccountancyCodes\) in empty\(\) is not falsy\.$#' identifier: empty.property count: 2 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Property AssetModel\:\:\$asset_depreciation_options \(AssetDepreciationOptions\) in empty\(\) is not falsy\.$#' identifier: empty.property count: 2 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Property AssetModel\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/class/assetmodel.class.php + path: ../../../htdocs/asset/class/assetmodel.class.php - message: '#^Variable \$lines in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/asset/depreciation.php + path: ../../../htdocs/asset/depreciation.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/depreciation_options.php + path: ../../../htdocs/asset/depreciation_options.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/asset/list.php + path: ../../../htdocs/asset/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/asset/list.php + path: ../../../htdocs/asset/list.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/model/accountancy_codes.php + path: ../../../htdocs/asset/model/accountancy_codes.php - message: '#^Variable \$backtopageforcancel might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/model/accountancy_codes.php + path: ../../../htdocs/asset/model/accountancy_codes.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/model/agenda.php + path: ../../../htdocs/asset/model/agenda.php - message: '#^Property AssetModel\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/model/card.php + path: ../../../htdocs/asset/model/card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/model/card.php + path: ../../../htdocs/asset/model/card.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/asset/model/card.php + path: ../../../htdocs/asset/model/card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/model/depreciation_options.php + path: ../../../htdocs/asset/model/depreciation_options.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/asset/model/list.php + path: ../../../htdocs/asset/model/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/asset/model/list.php + path: ../../../htdocs/asset/model/list.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/asset/model/note.php + path: ../../../htdocs/asset/model/note.php - message: '#^Variable \$assetaccountancycodes might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/accountancy_codes_edit.tpl.php + path: ../../../htdocs/asset/tpl/accountancy_codes_edit.tpl.php - message: '#^Variable \$parameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/accountancy_codes_edit.tpl.php + path: ../../../htdocs/asset/tpl/accountancy_codes_edit.tpl.php - message: '#^Variable \$assetaccountancycodes might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/accountancy_codes_view.tpl.php + path: ../../../htdocs/asset/tpl/accountancy_codes_view.tpl.php - message: '#^Variable \$parameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/accountancy_codes_view.tpl.php + path: ../../../htdocs/asset/tpl/accountancy_codes_view.tpl.php - message: '#^Variable \$parameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/depreciation_options_edit.tpl.php + path: ../../../htdocs/asset/tpl/depreciation_options_edit.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/depreciation_options_view.tpl.php + path: ../../../htdocs/asset/tpl/depreciation_options_view.tpl.php - message: '#^Variable \$parameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/depreciation_options_view.tpl.php + path: ../../../htdocs/asset/tpl/depreciation_options_view.tpl.php - message: '#^Variable \$parameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/depreciation_view.tpl.php + path: ../../../htdocs/asset/tpl/depreciation_view.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/asset/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/asset/tpl/linkedobjectblock.tpl.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 4 - path: ../../htdocs/barcode/printsheet.php + path: ../../../htdocs/barcode/printsheet.php - message: '#^Variable \$code might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/barcode/printsheet.php + path: ../../../htdocs/barcode/printsheet.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/blockedlog/admin/blockedlog_list.php + path: ../../../htdocs/blockedlog/admin/blockedlog_list.php - message: '#^Strict comparison using \=\=\= between ''facture'' and ''facture'' will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 1 - path: ../../htdocs/blockedlog/ajax/block-add.php + path: ../../../htdocs/blockedlog/ajax/block-add.php - message: '#^Call to function is_object\(\) with Don\|Facture\|FactureFournisseur\|PaymentVarious will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/blockedlog/class/blockedlog.class.php + path: ../../../htdocs/blockedlog/class/blockedlog.class.php - message: '#^Dead catch \- Exception is never thrown in the try block\.$#' identifier: catch.neverThrown count: 1 - path: ../../htdocs/blockedlog/class/blockedlog.class.php + path: ../../../htdocs/blockedlog/class/blockedlog.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/blockedlog/class/blockedlog.class.php + path: ../../../htdocs/blockedlog/class/blockedlog.class.php - message: '#^Property BOM\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/bom_card.php + path: ../../../htdocs/bom/bom_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/bom_card.php + path: ../../../htdocs/bom/bom_card.php - message: '#^Variable \$idprod might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/bom/bom_card.php + path: ../../../htdocs/bom/bom_card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/bom/bom_list.php + path: ../../../htdocs/bom/bom_list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/bom/bom_list.php + path: ../../../htdocs/bom/bom_list.php - message: '#^Loose comparison using \=\= between ''treeview'' and ''treeview'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 3 - path: ../../htdocs/bom/bom_net_needs.php + path: ../../../htdocs/bom/bom_net_needs.php - message: '#^Property BOM\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/bom_net_needs.php + path: ../../../htdocs/bom/bom_net_needs.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/bom_net_needs.php + path: ../../../htdocs/bom/bom_net_needs.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/bom_net_needs.php + path: ../../../htdocs/bom/bom_net_needs.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:deleteLine\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:getLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:postLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Method Boms\:\:putLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/bom/class/api_boms.class.php + path: ../../../htdocs/bom/class/api_boms.class.php - message: '#^Call to function method_exists\(\) with \$this\(BOM\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bom/class/bom.class.php + path: ../../../htdocs/bom/class/bom.class.php - message: '#^Call to function method_exists\(\) with \$this\(BOM\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bom/class/bom.class.php + path: ../../../htdocs/bom/class/bom.class.php - message: '#^Method BOM\:\:getNetNeedsTree\(\) has parameter \$TNetNeeds with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bom/class/bom.class.php + path: ../../../htdocs/bom/class/bom.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/bom/class/bom.class.php + path: ../../../htdocs/bom/class/bom.class.php - message: '#^Property BOM\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/class/bom.class.php + path: ../../../htdocs/bom/class/bom.class.php - message: '#^Property BOM\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/class/bom.class.php + path: ../../../htdocs/bom/class/bom.class.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/bom/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/bom/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/bom/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/bom/tpl/linkedobjectblock.tpl.php - message: '#^Call to function is_object\(\) with BOMLine will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bom/tpl/objectline_create.tpl.php + path: ../../../htdocs/bom/tpl/objectline_create.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/bom/tpl/objectline_create.tpl.php + path: ../../../htdocs/bom/tpl/objectline_create.tpl.php - message: '#^Variable \$extrafields might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/bom/tpl/objectline_create.tpl.php + path: ../../../htdocs/bom/tpl/objectline_create.tpl.php - message: '#^Call to function is_object\(\) with BOMLine will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bom/tpl/objectline_edit.tpl.php + path: ../../../htdocs/bom/tpl/objectline_edit.tpl.php - message: '#^Variable \$dateSelector might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/bom/tpl/objectline_edit.tpl.php + path: ../../../htdocs/bom/tpl/objectline_edit.tpl.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/bom/tpl/objectline_title.tpl.php + path: ../../../htdocs/bom/tpl/objectline_title.tpl.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bom/tpl/objectline_view.tpl.php + path: ../../../htdocs/bom/tpl/objectline_view.tpl.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Left side of \|\| is always true\.$#' identifier: booleanOr.leftAlwaysTrue count: 1 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Property Availabilities\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 6 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Variable \$permissiontoadd in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/bookcal/availabilities_card.php + path: ../../../htdocs/bookcal/availabilities_card.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/bookcal/availabilities_list.php + path: ../../../htdocs/bookcal/availabilities_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/availabilities_list.php + path: ../../../htdocs/bookcal/availabilities_list.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/availabilities_list.php + path: ../../../htdocs/bookcal/availabilities_list.php - message: '#^Variable \$permissiontodelete in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/bookcal/availabilities_list.php + path: ../../../htdocs/bookcal/availabilities_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/booking_list.php + path: ../../../htdocs/bookcal/booking_list.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/booking_list.php + path: ../../../htdocs/bookcal/booking_list.php - message: '#^Property Calendar\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/booking_list.php + path: ../../../htdocs/bookcal/booking_list.php - message: '#^Variable \$lineid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/bookcal/booking_list.php + path: ../../../htdocs/bookcal/booking_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_agenda.php + path: ../../../htdocs/bookcal/calendar_agenda.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_agenda.php + path: ../../../htdocs/bookcal/calendar_agenda.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^Property Calendar\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^Property Calendar\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 5 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^Variable \$permissiontoadd in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/bookcal/calendar_card.php + path: ../../../htdocs/bookcal/calendar_card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_contact.php + path: ../../../htdocs/bookcal/calendar_contact.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_contact.php + path: ../../../htdocs/bookcal/calendar_contact.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/bookcal/calendar_contact.php + path: ../../../htdocs/bookcal/calendar_contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_document.php + path: ../../../htdocs/bookcal/calendar_document.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_document.php + path: ../../../htdocs/bookcal/calendar_document.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/bookcal/calendar_list.php + path: ../../../htdocs/bookcal/calendar_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_list.php + path: ../../../htdocs/bookcal/calendar_list.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_list.php + path: ../../../htdocs/bookcal/calendar_list.php - message: '#^Variable \$permissiontodelete in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/bookcal/calendar_list.php + path: ../../../htdocs/bookcal/calendar_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_note.php + path: ../../../htdocs/bookcal/calendar_note.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/bookcal/calendar_note.php + path: ../../../htdocs/bookcal/calendar_note.php - message: '#^Call to function method_exists\(\) with \$this\(Availabilities\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function method_exists\(\) with \$this\(Availabilities\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function property_exists\(\) with \$this\(Availabilities\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function property_exists\(\) with Availabilities and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function property_exists\(\) with Availabilities and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function property_exists\(\) with Availabilities and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function property_exists\(\) with Availabilities and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function property_exists\(\) with Availabilities and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Method Availabilities\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Method Availabilities\:\:getLinesArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Property Availabilities\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/bookcal/class/availabilities.class.php + path: ../../../htdocs/bookcal/class/availabilities.class.php - message: '#^Call to function method_exists\(\) with \$this\(Calendar\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function method_exists\(\) with \$this\(Calendar\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function property_exists\(\) with \$this\(Calendar\) and ''fk_soc'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function property_exists\(\) with \$this\(Calendar\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function property_exists\(\) with Calendar and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function property_exists\(\) with Calendar and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function property_exists\(\) with Calendar and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function property_exists\(\) with Calendar and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Call to function property_exists\(\) with Calendar and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Property Calendar\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/bookcal/class/calendar.class.php + path: ../../../htdocs/bookcal/class/calendar.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 3 - path: ../../htdocs/bookcal/lib/bookcal_availabilities.lib.php + path: ../../../htdocs/bookcal/lib/bookcal_availabilities.lib.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/bookcal/lib/bookcal_availabilities.lib.php + path: ../../../htdocs/bookcal/lib/bookcal_availabilities.lib.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/bookcal/lib/bookcal_calendar.lib.php + path: ../../../htdocs/bookcal/lib/bookcal_calendar.lib.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/bookcal/lib/bookcal_calendar.lib.php + path: ../../../htdocs/bookcal/lib/bookcal_calendar.lib.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/bookmarks/bookmarks.lib.php + path: ../../../htdocs/bookmarks/bookmarks.lib.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/bookmarks/bookmarks.lib.php + path: ../../../htdocs/bookmarks/bookmarks.lib.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/bookmarks/list.php + path: ../../../htdocs/bookmarks/list.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/categories/card.php + path: ../../../htdocs/categories/card.php - message: '#^Method Categories\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:getListForObject\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:linkObjectById\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:linkObjectByRef\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:unlinkObjectById\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Method Categories\:\:unlinkObjectByRef\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/categories/class/api_categories.class.php + path: ../../../htdocs/categories/class/api_categories.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/categories/class/categorie.class.php + path: ../../../htdocs/categories/class/categorie.class.php - message: '#^Method Categorie\:\:get_full_arbo\(\) should return \-1\|array\ but returns array\\.$#' identifier: return.type count: 1 - path: ../../htdocs/categories/class/categorie.class.php + path: ../../../htdocs/categories/class/categorie.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/categories/class/categorie.class.php + path: ../../../htdocs/categories/class/categorie.class.php - message: '#^Parameter \#1 \$array of function dol_sort_array contains unresolvable type\.$#' identifier: argument.unresolvableType count: 1 - path: ../../htdocs/categories/class/categorie.class.php + path: ../../../htdocs/categories/class/categorie.class.php - message: '#^Property Categorie\:\:\$cats \(array\\) does not accept array\\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/categories/class/categorie.class.php + path: ../../../htdocs/categories/class/categorie.class.php - message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#' identifier: function.unresolvableReturnType count: 1 - path: ../../htdocs/categories/class/categorie.class.php + path: ../../../htdocs/categories/class/categorie.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/categories/class/categorie.class.php + path: ../../../htdocs/categories/class/categorie.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/categories/photos.php + path: ../../../htdocs/categories/photos.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/categories/photos.php + path: ../../../htdocs/categories/photos.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/collab/index.php + path: ../../../htdocs/collab/index.php - message: '#^Variable \$objectpage might not be defined\.$#' identifier: variable.undefined count: 11 - path: ../../htdocs/collab/index.php + path: ../../../htdocs/collab/index.php - message: '#^Loose comparison using \=\= between ''create'' and ''create'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/comm/action/card.php + path: ../../../htdocs/comm/action/card.php - message: '#^Loose comparison using \=\= between ''edit'' and ''create'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/comm/action/card.php + path: ../../../htdocs/comm/action/card.php - message: '#^Loose comparison using \=\= between 1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/comm/action/card.php + path: ../../../htdocs/comm/action/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/comm/action/card.php + path: ../../../htdocs/comm/action/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/comm/action/card.php + path: ../../../htdocs/comm/action/card.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/comm/action/card.php + path: ../../../htdocs/comm/action/card.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/comm/action/card.php + path: ../../../htdocs/comm/action/card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Property ActionComm\:\:\$contact_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Property ActionComm\:\:\$durationp \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Property ActionComm\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Property ActionComm\:\:\$transparency \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Property ActionComm\:\:\$type_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Property ActionComm\:\:\$userownerid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 5 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Variable \$agenda_static might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/comm/action/class/actioncomm.class.php + path: ../../../htdocs/comm/action/class/actioncomm.class.php - message: '#^Method AgendaEvents\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/action/class/api_agendaevents.class.php + path: ../../../htdocs/comm/action/class/api_agendaevents.class.php - message: '#^Method AgendaEvents\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/action/class/api_agendaevents.class.php + path: ../../../htdocs/comm/action/class/api_agendaevents.class.php - message: '#^Method AgendaEvents\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/action/class/api_agendaevents.class.php + path: ../../../htdocs/comm/action/class/api_agendaevents.class.php - message: '#^Method AgendaEvents\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/action/class/api_agendaevents.class.php + path: ../../../htdocs/comm/action/class/api_agendaevents.class.php - message: '#^Method AgendaEvents\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/action/class/api_agendaevents.class.php + path: ../../../htdocs/comm/action/class/api_agendaevents.class.php - message: '#^Method AgendaEvents\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/action/class/api_agendaevents.class.php + path: ../../../htdocs/comm/action/class/api_agendaevents.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/comm/action/class/cactioncomm.class.php + path: ../../../htdocs/comm/action/class/cactioncomm.class.php - message: '#^Property CActionComm\:\:\$type_actions type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/action/class/cactioncomm.class.php + path: ../../../htdocs/comm/action/class/cactioncomm.class.php - message: '#^Variable \$TSystem might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/class/cactioncomm.class.php + path: ../../../htdocs/comm/action/class/cactioncomm.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/action/document.php + path: ../../../htdocs/comm/action/document.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Parameter \#16 \$usergroupid of function print_actions_filter expects int, array\\|string given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Parameter \#18 \$resourceid of function print_actions_filter expects int, array\\|string given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Variable \$reshook in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^Variable \$theme_datacolor might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/index.php + path: ../../../htdocs/comm/action/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/action/info.php + path: ../../../htdocs/comm/action/info.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/comm/action/info.php + path: ../../../htdocs/comm/action/info.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/info.php + path: ../../../htdocs/comm/action/info.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/action/list.php + path: ../../../htdocs/comm/action/list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 4 - path: ../../htdocs/comm/action/list.php + path: ../../../htdocs/comm/action/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/comm/action/list.php + path: ../../../htdocs/comm/action/list.php - message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Comparison operation "\<" between int\<1, max\> and 1 is always false\.$#' identifier: smaller.alwaysFalse count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Loose comparison using \!\= between ''show_pertype'' and ''show_day'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Loose comparison using \!\= between ''show_pertype'' and ''show_peruser'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Loose comparison using \!\= between ''show_pertype'' and ''show_week'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Loose comparison using \!\= between 1 and '''' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Loose comparison using \!\= between 53 and '''' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Loose comparison using \=\= between int\<2, max\> and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Parameter \#3 \$status of function print_actions_filter expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 4 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Variable \$mode in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Variable \$theme_datacolor might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/pertype.php + path: ../../../htdocs/comm/action/pertype.php - message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \!\= between ''show_peruser'' and ''show_day'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \!\= between ''show_peruser'' and ''show_peruser'' will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \!\= between ''show_peruser'' and ''show_week'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \=\= between ''show_peruser'' and ''list'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \=\= between ''show_peruser'' and ''show_day'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \=\= between ''show_peruser'' and ''show_month'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \=\= between ''show_peruser'' and ''show_peruser'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \=\= between ''show_peruser'' and ''show_week'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Loose comparison using \=\= between int\<2, max\> and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 4 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 10 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Variable \$labelbytype might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Variable \$mode in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Variable \$s might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Variable \$theme_datacolor might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/action/peruser.php + path: ../../../htdocs/comm/action/peruser.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/comm/action/rapport/index.php + path: ../../../htdocs/comm/action/rapport/index.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/comm/action/rapport/index.php + path: ../../../htdocs/comm/action/rapport/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 16 - path: ../../htdocs/comm/card.php + path: ../../../htdocs/comm/card.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 6 - path: ../../htdocs/comm/card.php + path: ../../../htdocs/comm/card.php - message: '#^Variable \$filedir in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/comm/card.php + path: ../../../htdocs/comm/card.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/comm/card.php + path: ../../../htdocs/comm/card.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/comm/card.php + path: ../../../htdocs/comm/card.php - message: '#^Variable \$label might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/contact.php + path: ../../../htdocs/comm/contact.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/comm/index.php + path: ../../../htdocs/comm/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/comm/mailing/advtargetemailing.php + path: ../../../htdocs/comm/mailing/advtargetemailing.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/comm/mailing/card.php + path: ../../../htdocs/comm/mailing/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/comm/mailing/card.php + path: ../../../htdocs/comm/mailing/card.php - message: '#^Parameter \#1 \$filenb of function dol_remove_file_process expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/comm/mailing/card.php + path: ../../../htdocs/comm/mailing/card.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/comm/mailing/card.php + path: ../../../htdocs/comm/mailing/card.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/mailing/card.php + path: ../../../htdocs/comm/mailing/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 4 - path: ../../htdocs/comm/mailing/cibles.php + path: ../../../htdocs/comm/mailing/cibles.php - message: '#^Variable \$filter might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/mailing/cibles.php + path: ../../../htdocs/comm/mailing/cibles.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/mailing/cibles.php + path: ../../../htdocs/comm/mailing/cibles.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/comm/mailing/class/advtargetemailing.class.php + path: ../../../htdocs/comm/mailing/class/advtargetemailing.class.php - message: '#^Property AdvanceTargetingMailing\:\:\$filtervalue \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/comm/mailing/class/advtargetemailing.class.php + path: ../../../htdocs/comm/mailing/class/advtargetemailing.class.php - message: '#^Property AdvanceTargetingMailing\:\:\$fk_element \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/comm/mailing/class/advtargetemailing.class.php + path: ../../../htdocs/comm/mailing/class/advtargetemailing.class.php - message: '#^Property AdvanceTargetingMailing\:\:\$name \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/comm/mailing/class/advtargetemailing.class.php + path: ../../../htdocs/comm/mailing/class/advtargetemailing.class.php - message: '#^Property AdvanceTargetingMailing\:\:\$type_element \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/comm/mailing/class/advtargetemailing.class.php + path: ../../../htdocs/comm/mailing/class/advtargetemailing.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/comm/mailing/class/mailing.class.php + path: ../../../htdocs/comm/mailing/class/mailing.class.php - message: '#^Property Mailing\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/mailing/class/mailing.class.php + path: ../../../htdocs/comm/mailing/class/mailing.class.php - message: '#^Property Mailing\:\:\$sujet \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/mailing/class/mailing.class.php + path: ../../../htdocs/comm/mailing/class/mailing.class.php - message: '#^Property Mailing\:\:\$title \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/mailing/class/mailing.class.php + path: ../../../htdocs/comm/mailing/class/mailing.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 4 - path: ../../htdocs/comm/mailing/list.php + path: ../../../htdocs/comm/mailing/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/propal/agenda.php + path: ../../../htdocs/comm/propal/agenda.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/comm/propal/card.php + path: ../../../htdocs/comm/propal/card.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/card.php + path: ../../../htdocs/comm/propal/card.php - message: '#^Variable \$classname might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/comm/propal/card.php + path: ../../../htdocs/comm/propal/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/comm/propal/card.php + path: ../../../htdocs/comm/propal/card.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/propal/card.php + path: ../../../htdocs/comm/propal/card.php - message: '#^Method Proposals\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:getLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:postContact\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:postLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:postLines\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Method Proposals\:\:putLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 4 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Property Proposals\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/api_proposals.class.php + path: ../../../htdocs/comm/propal/class/api_proposals.class.php - message: '#^Call to function method_exists\(\) with \$this\(Propal\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Call to function method_exists\(\) with \$this\(Propal\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Call to function property_exists\(\) with \$this\(Propal\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Call to function property_exists\(\) with \$this\(Propal\) and ''total_ht'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Method Propal\:\:liste_array\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 4 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Parameter \#15 \$pu_devise of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Parameter \#2 \$pu of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Parameter \#3 \$remise_percent_ligne of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Parameter \#5 \$uselocaltax1_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Parameter \#6 \$uselocaltax2_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$cond_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$mode_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$ref_ext \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$total_ht \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$total_localtax1 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$total_localtax2 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$total_ttc \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property CommonObject\:\:\$total_tva \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property Propal\:\:\$date_signature \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property Propal\:\:\$demand_reason_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property Propal\:\:\$ref_client \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property Propal\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property Propal\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Property Propal\:\:\$user_author_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Variable \$error in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/comm/propal/class/propal.class.php + path: ../../../htdocs/comm/propal/class/propal.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/comm/propal/class/propaleligne.class.php + path: ../../../htdocs/comm/propal/class/propaleligne.class.php - message: '#^Property PropaleLigne\:\:\$info_bits \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propaleligne.class.php + path: ../../../htdocs/comm/propal/class/propaleligne.class.php - message: '#^Property PropaleLigne\:\:\$pa_ht \(float\|int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/comm/propal/class/propaleligne.class.php + path: ../../../htdocs/comm/propal/class/propaleligne.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/propal/contact.php + path: ../../../htdocs/comm/propal/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/propal/document.php + path: ../../../htdocs/comm/propal/document.php - message: '#^Loose comparison using \=\= between \-1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/comm/propal/list.php + path: ../../../htdocs/comm/propal/list.php - message: '#^Loose comparison using \=\= between \-1 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/comm/propal/list.php + path: ../../../htdocs/comm/propal/list.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/comm/propal/list.php + path: ../../../htdocs/comm/propal/list.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/comm/propal/list.php + path: ../../../htdocs/comm/propal/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/comm/propal/list.php + path: ../../../htdocs/comm/propal/list.php - message: '#^Variable \$searchCategoryCustomerList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/comm/propal/list.php + path: ../../../htdocs/comm/propal/list.php - message: '#^Variable \$searchCategoryProductList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/comm/propal/list.php + path: ../../../htdocs/comm/propal/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/comm/propal/note.php + path: ../../../htdocs/comm/propal/note.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/comm/propal/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/comm/propal/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/comm/propal/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/comm/propal/tpl/linkedobjectblock.tpl.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/commande/agenda.php + path: ../../../htdocs/commande/agenda.php - message: '#^Loose comparison using \=\= between null and ''HT'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/commande/card.php + path: ../../../htdocs/commande/card.php - message: '#^Loose comparison using \=\= between null and ''TTC'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/commande/card.php + path: ../../../htdocs/commande/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/commande/card.php + path: ../../../htdocs/commande/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/commande/card.php + path: ../../../htdocs/commande/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/commande/card.php + path: ../../../htdocs/commande/card.php - message: '#^Variable \$classname might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/commande/card.php + path: ../../../htdocs/commande/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/commande/card.php + path: ../../../htdocs/commande/card.php - message: '#^Method Orders\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:deleteContact\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:getLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:getOrderShipments\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:postContact\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:postLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Method Orders\:\:putLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Parameter \#1 \$object of method Orders\:\:_cleanObjectDatas\(\) expects object, array\\>\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Property Orders\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/commande/class/api_orders.class.php + path: ../../../htdocs/commande/class/api_orders.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 5 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Parameter \#15 \$pu_devise of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Parameter \#2 \$pu of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Parameter \#5 \$uselocaltax1_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Parameter \#6 \$uselocaltax2_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property Commande\:\:\$mode_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property Commande\:\:\$ref_client \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property Commande\:\:\$ref_customer \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property Commande\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property Commande\:\:\$statut \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$cond_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$ref_ext \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$shipping_method_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$total_ht \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$total_localtax1 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$total_localtax2 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$total_ttc \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Property CommonObject\:\:\$total_tva \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Variable \$error in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/commande/class/commande.class.php + path: ../../../htdocs/commande/class/commande.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/commande/class/orderline.class.php + path: ../../../htdocs/commande/class/orderline.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/commande/contact.php + path: ../../../htdocs/commande/contact.php - message: '#^Variable \$addu might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/commande/customer.php + path: ../../../htdocs/commande/customer.php - message: '#^Variable \$begin might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/commande/customer.php + path: ../../../htdocs/commande/customer.php - message: '#^Variable \$maxlen might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/commande/customer.php + path: ../../../htdocs/commande/customer.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/commande/customer.php + path: ../../../htdocs/commande/customer.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/commande/document.php + path: ../../../htdocs/commande/document.php - message: '#^Call to function method_exists\(\) with Commande and ''fetch_lines'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 6 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Loose comparison using \=\= between \-1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Loose comparison using \=\= between \-1 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Variable \$permissiontoadd might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Variable \$searchCategoryCustomerList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Variable \$searchCategoryProductList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/commande/list.php + path: ../../../htdocs/commande/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/commande/list_det.php + path: ../../../htdocs/commande/list_det.php - message: '#^Variable \$formproduct might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/commande/list_det.php + path: ../../../htdocs/commande/list_det.php - message: '#^Variable \$permissiontoadd might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/commande/list_det.php + path: ../../../htdocs/commande/list_det.php - message: '#^Variable \$searchCategoryProductOperator might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/commande/list_det.php + path: ../../../htdocs/commande/list_det.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/commande/note.php + path: ../../../htdocs/commande/note.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/commande/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/commande/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/commande/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/commande/tpl/linkedobjectblock.tpl.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 5 - path: ../../htdocs/compta/accounting-files.php + path: ../../../htdocs/compta/accounting-files.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/compta/accounting-files.php + path: ../../../htdocs/compta/accounting-files.php - message: '#^Variable \$modulepart might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/accounting-files.php + path: ../../../htdocs/compta/accounting-files.php - message: '#^Variable \$sql in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/accounting-files.php + path: ../../../htdocs/compta/accounting-files.php - message: '#^Variable \$ve might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/bank/account_statement_document.php + path: ../../../htdocs/compta/bank/account_statement_document.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/compta/bank/bankentries_list.php + path: ../../../htdocs/compta/bank/bankentries_list.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/compta/bank/bankentries_list.php + path: ../../../htdocs/compta/bank/bankentries_list.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/compta/bank/bankentries_list.php + path: ../../../htdocs/compta/bank/bankentries_list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/compta/bank/bankentries_list.php + path: ../../../htdocs/compta/bank/bankentries_list.php - message: '#^Variable \$dateop in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/bank/bankentries_list.php + path: ../../../htdocs/compta/bank/bankentries_list.php - message: '#^Variable \$noback in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/bank/card.php + path: ../../../htdocs/compta/bank/card.php - message: '#^Variable \$selectedcode in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/bank/card.php + path: ../../../htdocs/compta/bank/card.php - message: '#^Variable \$title might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/card.php + path: ../../../htdocs/compta/bank/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/compta/bank/categ.php + path: ../../../htdocs/compta/bank/categ.php - message: '#^Call to function method_exists\(\) with \$this\(Account\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/class/account.class.php + path: ../../../htdocs/compta/bank/class/account.class.php - message: '#^Call to function method_exists\(\) with \$this\(Account\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/class/account.class.php + path: ../../../htdocs/compta/bank/class/account.class.php - message: '#^Call to function method_exists\(\) with \$this\(Account\) and ''solde'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/class/account.class.php + path: ../../../htdocs/compta/bank/class/account.class.php - message: '#^Call to function property_exists\(\) with \$this\(Account\) and ''type_lib'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/class/account.class.php + path: ../../../htdocs/compta/bank/class/account.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/compta/bank/class/account.class.php + path: ../../../htdocs/compta/bank/class/account.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/compta/bank/class/account.class.php + path: ../../../htdocs/compta/bank/class/account.class.php - message: '#^Method BankAccounts\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:deleteLine\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:getLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:getLinks\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Method BankAccounts\:\:transfer\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Property BankAccounts\:\:\$FIELDS has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Variable \$amount_to in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/bank/class/api_bankaccounts.class.php + path: ../../../htdocs/compta/bank/class/api_bankaccounts.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/bank/class/bankcateg.class.php + path: ../../../htdocs/compta/bank/class/bankcateg.class.php - message: '#^Property BankCateg\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/bank/class/bankcateg.class.php + path: ../../../htdocs/compta/bank/class/bankcateg.class.php - message: '#^Call to function method_exists\(\) with \$this\(PaymentVarious\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/class/paymentvarious.class.php + path: ../../../htdocs/compta/bank/class/paymentvarious.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentVarious\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/class/paymentvarious.class.php + path: ../../../htdocs/compta/bank/class/paymentvarious.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentVarious\) and ''datep'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/class/paymentvarious.class.php + path: ../../../htdocs/compta/bank/class/paymentvarious.class.php - message: '#^Property PaymentVarious\:\:\$accountid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/bank/class/paymentvarious.class.php + path: ../../../htdocs/compta/bank/class/paymentvarious.class.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/graph.php + path: ../../../htdocs/compta/bank/graph.php - message: '#^Variable \$max might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/compta/bank/graph.php + path: ../../../htdocs/compta/bank/graph.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/compta/bank/line.php + path: ../../../htdocs/compta/bank/line.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/bank/line.php + path: ../../../htdocs/compta/bank/line.php - message: '#^Variable \$filepath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/line.php + path: ../../../htdocs/compta/bank/line.php - message: '#^Variable \$oldfilepath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/line.php + path: ../../../htdocs/compta/bank/line.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/bank/list.php + path: ../../../htdocs/compta/bank/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/compta/bank/list.php + path: ../../../htdocs/compta/bank/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/compta/bank/list.php + path: ../../../htdocs/compta/bank/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/bank/list.php + path: ../../../htdocs/compta/bank/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/bank/list.php + path: ../../../htdocs/compta/bank/list.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/compta/bank/list.php + path: ../../../htdocs/compta/bank/list.php - message: '#^Variable \$buttonreconcile might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/releve.php + path: ../../../htdocs/compta/bank/releve.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/bank/releve.php + path: ../../../htdocs/compta/bank/releve.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/bank/transfer.php + path: ../../../htdocs/compta/bank/transfer.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/compta/bank/transfer.php + path: ../../../htdocs/compta/bank/transfer.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/compta/bank/treso.php + path: ../../../htdocs/compta/bank/treso.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/treso.php + path: ../../../htdocs/compta/bank/treso.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/bank/treso.php + path: ../../../htdocs/compta/bank/treso.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/bank/various_payment/card.php + path: ../../../htdocs/compta/bank/various_payment/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/bank/various_payment/card.php + path: ../../../htdocs/compta/bank/various_payment/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/compta/bank/various_payment/card.php + path: ../../../htdocs/compta/bank/various_payment/card.php - message: '#^Variable \$accountline might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/card.php + path: ../../../htdocs/compta/bank/various_payment/card.php - message: '#^Variable \$ref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/card.php + path: ../../../htdocs/compta/bank/various_payment/card.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/compta/bank/various_payment/document.php + path: ../../../htdocs/compta/bank/various_payment/document.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/document.php + path: ../../../htdocs/compta/bank/various_payment/document.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/document.php + path: ../../../htdocs/compta/bank/various_payment/document.php - message: '#^Variable \$morehtmlright might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/document.php + path: ../../../htdocs/compta/bank/various_payment/document.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/compta/bank/various_payment/info.php + path: ../../../htdocs/compta/bank/various_payment/info.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/info.php + path: ../../../htdocs/compta/bank/various_payment/info.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/info.php + path: ../../../htdocs/compta/bank/various_payment/info.php - message: '#^Variable \$morehtmlright might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/bank/various_payment/info.php + path: ../../../htdocs/compta/bank/various_payment/info.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/bank/various_payment/list.php + path: ../../../htdocs/compta/bank/various_payment/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/bank/various_payment/list.php + path: ../../../htdocs/compta/bank/various_payment/list.php - message: '#^Loose comparison using \=\= between ''card'' and ''card'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/compta/cashcontrol/cashcontrol_card.php + path: ../../../htdocs/compta/cashcontrol/cashcontrol_card.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 3 - path: ../../htdocs/compta/cashcontrol/cashcontrol_card.php + path: ../../../htdocs/compta/cashcontrol/cashcontrol_card.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/cashcontrol/cashcontrol_list.php + path: ../../../htdocs/compta/cashcontrol/cashcontrol_list.php - message: '#^Call to function method_exists\(\) with \$this\(CashControl\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/cashcontrol/class/cashcontrol.class.php + path: ../../../htdocs/compta/cashcontrol/class/cashcontrol.class.php - message: '#^Call to function method_exists\(\) with \$this\(CashControl\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/cashcontrol/class/cashcontrol.class.php + path: ../../../htdocs/compta/cashcontrol/class/cashcontrol.class.php - message: '#^Call to function property_exists\(\) with \$this\(CashControl\) and ''posmodule'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/cashcontrol/class/cashcontrol.class.php + path: ../../../htdocs/compta/cashcontrol/class/cashcontrol.class.php - message: '#^Call to function property_exists\(\) with \$this\(CashControl\) and ''year_close'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/cashcontrol/class/cashcontrol.class.php + path: ../../../htdocs/compta/cashcontrol/class/cashcontrol.class.php - message: '#^Call to function is_array\(\) with non\-empty\-array\<\(float\|int\)\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/cashcontrol/report.php + path: ../../../htdocs/compta/cashcontrol/report.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/compta/cashcontrol/report.php + path: ../../../htdocs/compta/cashcontrol/report.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/compta/charges/index.php + path: ../../../htdocs/compta/charges/index.php - message: '#^Variable \$addu might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/clients.php + path: ../../../htdocs/compta/clients.php - message: '#^Variable \$note might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/clients.php + path: ../../../htdocs/compta/clients.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/clients.php + path: ../../../htdocs/compta/clients.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/clients.php + path: ../../../htdocs/compta/clients.php - message: '#^Variable \$stcomm might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/clients.php + path: ../../../htdocs/compta/clients.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/deplacement/stats/index.php + path: ../../../htdocs/compta/deplacement/stats/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/agenda-rec.php + path: ../../../htdocs/compta/facture/agenda-rec.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/agenda.php + path: ../../../htdocs/compta/facture/agenda.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/card-rec.php + path: ../../../htdocs/compta/facture/card-rec.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/card-rec.php + path: ../../../htdocs/compta/facture/card-rec.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/compta/facture/card-rec.php + path: ../../../htdocs/compta/facture/card-rec.php - message: '#^Comparison operation "\<" between '''' and 0 is always true\.$#' identifier: smaller.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Loose comparison using \=\= between '''' and ''HT'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Loose comparison using \=\= between '''' and ''TTC'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Parameter \#12 \$localtaxes_array of function calcul_price_total expects array\{string, int\|string, string, int\|string, string, string\}\|array\{string, int\|string, string, string\}, array\{\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Variable \$classname might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/facture/card.php + path: ../../../htdocs/compta/facture/card.php - message: '#^Method Invoices\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:addPaymentDistributed\(\) has parameter \$arrayofamounts with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:getLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:getPayments\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:postContact\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:postLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:putLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Method Invoices\:\:putPayment\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 5 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Property Invoices\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/compta/facture/class/api_invoices.class.php + path: ../../../htdocs/compta/facture/class/api_invoices.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/compta/facture/class/facture-rec.class.php + path: ../../../htdocs/compta/facture/class/facture-rec.class.php - message: '#^Parameter \#1 \$vatrate of function getLocalTaxesFromRate expects int\|string, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/compta/facture/class/facture-rec.class.php + path: ../../../htdocs/compta/facture/class/facture-rec.class.php - message: '#^Parameter \#17 \$fk_unit of method FactureRec\:\:addline\(\) expects string\|null, int\|null given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/compta/facture/class/facture-rec.class.php + path: ../../../htdocs/compta/facture/class/facture-rec.class.php - message: '#^Property CommonObject\:\:\$array_options \(array\\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture-rec.class.php + path: ../../../htdocs/compta/facture/class/facture-rec.class.php - message: '#^Property FactureRec\:\:\$titre \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture-rec.class.php + path: ../../../htdocs/compta/facture/class/facture-rec.class.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/class/facture-rec.class.php + path: ../../../htdocs/compta/facture/class/facture-rec.class.php - message: '#^Call to function method_exists\(\) with \$this\(Facture\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Call to function method_exists\(\) with \$this\(Facture\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Call to function property_exists\(\) with \$this\(Facture\) and ''date'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Call to function property_exists\(\) with \$this\(Facture\) and ''total_ht'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Parameter \#12 \$localtaxes_array of function calcul_price_total expects array\{string, int\|string, string, int\|string, string, string\}\|array\{string, int\|string, string, string\}, array\{\} given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Parameter \#2 \$alreadypaid of method CommonInvoice\:\:getLibStatut\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Parameter \#4 \$txtva of method Facture\:\:addline\(\) expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$close_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$close_note \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$cond_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$mode_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$subtype \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$totalcreditnotes \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$totaldeposits \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$totalpaid \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonInvoice\:\:\$type \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property CommonObject\:\:\$ref_ext \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$fk_facture_source \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$paye \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$ref_client \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$retained_warranty \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$retained_warranty_fk_cond_reglement \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$revenuestamp \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$total_ht \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$total_localtax1 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$total_localtax2 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$total_ttc \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Property Facture\:\:\$total_tva \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 3 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/facture/class/facture.class.php + path: ../../../htdocs/compta/facture/class/facture.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/compta/facture/class/factureligne.class.php + path: ../../../htdocs/compta/facture/class/factureligne.class.php - message: '#^Property FactureLigne\:\:\$situation_percent \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/facture/class/factureligne.class.php + path: ../../../htdocs/compta/facture/class/factureligne.class.php - message: '#^Property PaymentTerm\:\:\$active \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$decalage \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$libelle \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$libelle_facture \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$nbjour \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$sortorder \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^Property PaymentTerm\:\:\$type_cdr \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/facture/class/paymentterm.class.php + path: ../../../htdocs/compta/facture/class/paymentterm.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/contact.php + path: ../../../htdocs/compta/facture/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/document.php + path: ../../../htdocs/compta/facture/document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/compta/facture/invoicetemplate_list.php + path: ../../../htdocs/compta/facture/invoicetemplate_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/compta/facture/list.php + path: ../../../htdocs/compta/facture/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/compta/facture/list.php + path: ../../../htdocs/compta/facture/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/compta/facture/list.php + path: ../../../htdocs/compta/facture/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/compta/facture/list.php + path: ../../../htdocs/compta/facture/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/facture/list.php + path: ../../../htdocs/compta/facture/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/messaging.php + path: ../../../htdocs/compta/facture/messaging.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/note-rec.php + path: ../../../htdocs/compta/facture/note-rec.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/note.php + path: ../../../htdocs/compta/facture/note.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/facture/prelevement.php + path: ../../../htdocs/compta/facture/prelevement.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/facture/prelevement.php + path: ../../../htdocs/compta/facture/prelevement.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/facture/prelevement.php + path: ../../../htdocs/compta/facture/prelevement.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/facture/stats/index.php + path: ../../../htdocs/compta/facture/stats/index.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/compta/facture/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/compta/facture/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/facture/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/compta/facture/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php + path: ../../../htdocs/compta/facture/tpl/linkedobjectblockForRec.tpl.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/index.php + path: ../../../htdocs/compta/index.php - message: '#^Variable \$total_ht might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/index.php + path: ../../../htdocs/compta/index.php - message: '#^Variable \$total_ttc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/index.php + path: ../../../htdocs/compta/index.php - message: '#^Variable \$tabcompany might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/journal/purchasesjournal.php + path: ../../../htdocs/compta/journal/purchasesjournal.php - message: '#^Variable \$tabht might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/purchasesjournal.php + path: ../../../htdocs/compta/journal/purchasesjournal.php - message: '#^Variable \$tablocaltax1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/purchasesjournal.php + path: ../../../htdocs/compta/journal/purchasesjournal.php - message: '#^Variable \$tablocaltax2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/purchasesjournal.php + path: ../../../htdocs/compta/journal/purchasesjournal.php - message: '#^Variable \$tabttc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/purchasesjournal.php + path: ../../../htdocs/compta/journal/purchasesjournal.php - message: '#^Variable \$tabtva might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/purchasesjournal.php + path: ../../../htdocs/compta/journal/purchasesjournal.php - message: '#^Variable \$tabcompany might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/compta/journal/sellsjournal.php + path: ../../../htdocs/compta/journal/sellsjournal.php - message: '#^Variable \$tabht might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/sellsjournal.php + path: ../../../htdocs/compta/journal/sellsjournal.php - message: '#^Variable \$tablocaltax1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/sellsjournal.php + path: ../../../htdocs/compta/journal/sellsjournal.php - message: '#^Variable \$tablocaltax2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/sellsjournal.php + path: ../../../htdocs/compta/journal/sellsjournal.php - message: '#^Variable \$tabttc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/sellsjournal.php + path: ../../../htdocs/compta/journal/sellsjournal.php - message: '#^Variable \$tabtva might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/journal/sellsjournal.php + path: ../../../htdocs/compta/journal/sellsjournal.php - message: '#^Variable \$morehtmlref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/localtax/card.php + path: ../../../htdocs/compta/localtax/card.php - message: '#^Call to function method_exists\(\) with \$this\(Localtax\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/localtax/class/localtax.class.php + path: ../../../htdocs/compta/localtax/class/localtax.class.php - message: '#^Call to function property_exists\(\) with \$this\(Localtax\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/localtax/class/localtax.class.php + path: ../../../htdocs/compta/localtax/class/localtax.class.php - message: '#^Call to function property_exists\(\) with \$this\(Localtax\) and ''datep'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/localtax/class/localtax.class.php + path: ../../../htdocs/compta/localtax/class/localtax.class.php - message: '#^Call to function property_exists\(\) with \$this\(Localtax\) and ''datev'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/localtax/class/localtax.class.php + path: ../../../htdocs/compta/localtax/class/localtax.class.php - message: '#^Call to function property_exists\(\) with \$this\(Localtax\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/localtax/class/localtax.class.php + path: ../../../htdocs/compta/localtax/class/localtax.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/compta/localtax/class/localtax.class.php + path: ../../../htdocs/compta/localtax/class/localtax.class.php - message: '#^Variable \$arrayofselected might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/localtax/list.php + path: ../../../htdocs/compta/localtax/list.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/localtax/list.php + path: ../../../htdocs/compta/localtax/list.php - message: '#^Call to function is_array\(\) with list\\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/localtax/quadri_detail.php + path: ../../../htdocs/compta/localtax/quadri_detail.php - message: '#^Comparison operation "\<" between 0 and 4 is always true\.$#' identifier: smaller.alwaysTrue count: 1 - path: ../../htdocs/compta/localtax/quadri_detail.php + path: ../../../htdocs/compta/localtax/quadri_detail.php - message: '#^Comparison operation "\>" between 0 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/compta/localtax/quadri_detail.php + path: ../../../htdocs/compta/localtax/quadri_detail.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/localtax/quadri_detail.php + path: ../../../htdocs/compta/localtax/quadri_detail.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/compta/paiement.php + path: ../../../htdocs/compta/paiement.php - message: '#^Variable \$marginInfo might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/paiement/card.php + path: ../../../htdocs/compta/paiement/card.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/paiement/card.php + path: ../../../htdocs/compta/paiement/card.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/paiement/cheque/card.php + path: ../../../htdocs/compta/paiement/cheque/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/compta/paiement/cheque/card.php + path: ../../../htdocs/compta/paiement/cheque/card.php - message: '#^Call to function method_exists\(\) with \$this\(RemiseCheque\) and ''LibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/paiement/cheque/class/remisecheque.class.php + path: ../../../htdocs/compta/paiement/cheque/class/remisecheque.class.php - message: '#^Call to function method_exists\(\) with \$this\(RemiseCheque\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/paiement/cheque/class/remisecheque.class.php + path: ../../../htdocs/compta/paiement/cheque/class/remisecheque.class.php - message: '#^Call to function property_exists\(\) with \$this\(RemiseCheque\) and ''account_id'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/paiement/cheque/class/remisecheque.class.php + path: ../../../htdocs/compta/paiement/cheque/class/remisecheque.class.php - message: '#^Call to function property_exists\(\) with \$this\(RemiseCheque\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/paiement/cheque/class/remisecheque.class.php + path: ../../../htdocs/compta/paiement/cheque/class/remisecheque.class.php - message: '#^Call to function property_exists\(\) with \$this\(RemiseCheque\) and ''date_bordereau'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/paiement/cheque/class/remisecheque.class.php + path: ../../../htdocs/compta/paiement/cheque/class/remisecheque.class.php - message: '#^Call to function property_exists\(\) with \$this\(RemiseCheque\) and ''nbcheque'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/paiement/cheque/class/remisecheque.class.php + path: ../../../htdocs/compta/paiement/cheque/class/remisecheque.class.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/compta/paiement/cheque/class/remisecheque.class.php + path: ../../../htdocs/compta/paiement/cheque/class/remisecheque.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/paiement/cheque/list.php + path: ../../../htdocs/compta/paiement/cheque/list.php - message: '#^Property RemiseCheque\:\:\$account_id \(int\) does not accept string\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/compta/paiement/cheque/list.php + path: ../../../htdocs/compta/paiement/cheque/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/paiement/cheque/list.php + path: ../../../htdocs/compta/paiement/cheque/list.php - message: '#^Variable \$arrayofselected might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/paiement/cheque/list.php + path: ../../../htdocs/compta/paiement/cheque/list.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property CommonDict\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property CommonDict\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property CommonDict\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property Cpaiement\:\:\$accountancy_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property Cpaiement\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property Cpaiement\:\:\$libelle \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property Cpaiement\:\:\$module \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Property Cpaiement\:\:\$type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/compta/paiement/class/cpaiement.class.php + path: ../../../htdocs/compta/paiement/class/cpaiement.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/paiement/class/paiement.class.php + path: ../../../htdocs/compta/paiement/class/paiement.class.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/paiement/document.php + path: ../../../htdocs/compta/paiement/document.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/paiement/list.php + path: ../../../htdocs/compta/paiement/list.php - message: '#^Left side of \|\| is always false\.$#' identifier: booleanOr.leftAlwaysFalse count: 3 - path: ../../htdocs/compta/paiement/list.php + path: ../../../htdocs/compta/paiement/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/paiement/list.php + path: ../../../htdocs/compta/paiement/list.php - message: '#^Variable \$arrayofselected might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/compta/paiement/list.php + path: ../../../htdocs/compta/paiement/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/paiement/list.php + path: ../../../htdocs/compta/paiement/list.php - message: '#^Comparison operation "\>" between 1 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/compta/paiement_charge.php + path: ../../../htdocs/compta/paiement_charge.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/paiement_charge.php + path: ../../../htdocs/compta/paiement_charge.php - message: '#^Comparison operation "\>" between 1 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/compta/paiement_vat.php + path: ../../../htdocs/compta/paiement_vat.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/compta/paiement_vat.php + path: ../../../htdocs/compta/paiement_vat.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/prelevement/card.php + path: ../../../htdocs/compta/prelevement/card.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/prelevement/card.php + path: ../../../htdocs/compta/prelevement/card.php - message: '#^Call to function method_exists\(\) with \$this\(BonPrelevement\) and ''LibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Call to function method_exists\(\) with \$this\(BonPrelevement\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Call to function property_exists\(\) with \$this\(BonPrelevement\) and ''date_echeance'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Call to function property_exists\(\) with \$this\(BonPrelevement\) and ''total'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Property BonPrelevement\:\:\$amount \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Property BonPrelevement\:\:\$date_trans \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Property BonPrelevement\:\:\$factures has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Property BonPrelevement\:\:\$invoice_in_error has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Property BonPrelevement\:\:\$thirdparty_in_error has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Right side of \|\| is always true\.$#' identifier: booleanOr.rightAlwaysTrue count: 2 - path: ../../htdocs/compta/prelevement/class/bonprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/bonprelevement.class.php - message: '#^Property LignePrelevement\:\:\$labelStatus has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/compta/prelevement/class/ligneprelevement.class.php + path: ../../../htdocs/compta/prelevement/class/ligneprelevement.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/compta/prelevement/create.php + path: ../../../htdocs/compta/prelevement/create.php - message: '#^Variable \$massaction might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/prelevement/demandes.php + path: ../../../htdocs/compta/prelevement/demandes.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/prelevement/list.php + path: ../../../htdocs/compta/prelevement/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/prelevement/orders_list.php + path: ../../../htdocs/compta/prelevement/orders_list.php - message: '#^Offset ''checked'' on array\{label\: ''Date'', checked\: 1\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/compta/recap-compta.php + path: ../../../htdocs/compta/recap-compta.php - message: '#^Parameter \#1 \$array of function dol_sort_array contains unresolvable type\.$#' identifier: argument.unresolvableType count: 2 - path: ../../htdocs/compta/recap-compta.php + path: ../../../htdocs/compta/recap-compta.php - message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#' identifier: function.unresolvableReturnType count: 2 - path: ../../htdocs/compta/recap-compta.php + path: ../../../htdocs/compta/recap-compta.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/resultat/clientfourn.php + path: ../../../htdocs/compta/resultat/clientfourn.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/resultat/clientfourn.php + path: ../../../htdocs/compta/resultat/clientfourn.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/resultat/index.php + path: ../../../htdocs/compta/resultat/index.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/compta/resultat/index.php + path: ../../../htdocs/compta/resultat/index.php - message: '#^Call to function is_array\(\) with non\-empty\-array\\}\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/resultat/result.php + path: ../../../htdocs/compta/resultat/result.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/resultat/result.php + path: ../../../htdocs/compta/resultat/result.php - message: '#^Variable \$code might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/resultat/result.php + path: ../../../htdocs/compta/resultat/result.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/resultat/result.php + path: ../../../htdocs/compta/resultat/result.php - message: '#^Variable \$sommes in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/resultat/result.php + path: ../../../htdocs/compta/resultat/result.php - message: '#^Variable \$totCat in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/resultat/result.php + path: ../../../htdocs/compta/resultat/result.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/compta/sociales/card.php + path: ../../../htdocs/compta/sociales/card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/sociales/card.php + path: ../../../htdocs/compta/sociales/card.php - message: '#^Variable \$resteapayer might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/compta/sociales/card.php + path: ../../../htdocs/compta/sociales/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Property Cchargesociales\:\:\$accountancy_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Property Cchargesociales\:\:\$active \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Property Cchargesociales\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Property Cchargesociales\:\:\$deductible \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Property Cchargesociales\:\:\$fk_pays \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Property Cchargesociales\:\:\$libelle \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Property Cchargesociales\:\:\$module \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/compta/sociales/class/cchargesociales.class.php + path: ../../../htdocs/compta/sociales/class/cchargesociales.class.php - message: '#^Call to function method_exists\(\) with \$this\(ChargeSociales\) and ''LibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/sociales/class/chargesociales.class.php + path: ../../../htdocs/compta/sociales/class/chargesociales.class.php - message: '#^Call to function method_exists\(\) with \$this\(ChargeSociales\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/sociales/class/chargesociales.class.php + path: ../../../htdocs/compta/sociales/class/chargesociales.class.php - message: '#^Call to function property_exists\(\) with \$this\(ChargeSociales\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/sociales/class/chargesociales.class.php + path: ../../../htdocs/compta/sociales/class/chargesociales.class.php - message: '#^Call to function property_exists\(\) with \$this\(ChargeSociales\) and ''date_ech'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/sociales/class/chargesociales.class.php + path: ../../../htdocs/compta/sociales/class/chargesociales.class.php - message: '#^Call to function property_exists\(\) with \$this\(ChargeSociales\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/sociales/class/chargesociales.class.php + path: ../../../htdocs/compta/sociales/class/chargesociales.class.php - message: '#^Property ChargeSociales\:\:\$paye \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/sociales/class/chargesociales.class.php + path: ../../../htdocs/compta/sociales/class/chargesociales.class.php - message: '#^Property PaymentSocialContribution\:\:\$amount \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$datec has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$datep has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$fk_charge \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$fk_typepaiement \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Property PaymentSocialContribution\:\:\$num_payment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php + path: ../../../htdocs/compta/sociales/class/paymentsocialcontribution.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/sociales/list.php + path: ../../../htdocs/compta/sociales/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/sociales/list.php + path: ../../../htdocs/compta/sociales/list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/compta/sociales/payments.php + path: ../../../htdocs/compta/sociales/payments.php - message: '#^Strict comparison using \!\=\= between mixed and null will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 1 - path: ../../htdocs/compta/sociales/payments.php + path: ../../../htdocs/compta/sociales/payments.php - message: '#^Loose comparison using \=\= between \-1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Loose comparison using \=\= between \-1 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Variable \$searchCategorySocieteList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/cabyprodserv.php + path: ../../../htdocs/compta/stats/cabyprodserv.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/stats/cabyuser.php + path: ../../../htdocs/compta/stats/cabyuser.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/cabyuser.php + path: ../../../htdocs/compta/stats/cabyuser.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/cabyuser.php + path: ../../../htdocs/compta/stats/cabyuser.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/stats/casoc.php + path: ../../../htdocs/compta/stats/casoc.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/casoc.php + path: ../../../htdocs/compta/stats/casoc.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/compta/stats/casoc.php + path: ../../../htdocs/compta/stats/casoc.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/stats/index.php + path: ../../../htdocs/compta/stats/index.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/index.php + path: ../../../htdocs/compta/stats/index.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/index.php + path: ../../../htdocs/compta/stats/index.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/stats/supplier_turnover.php + path: ../../../htdocs/compta/stats/supplier_turnover.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/supplier_turnover.php + path: ../../../htdocs/compta/stats/supplier_turnover.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/supplier_turnover.php + path: ../../../htdocs/compta/stats/supplier_turnover.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_prodserv.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_prodserv.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_prodserv.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_prodserv.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_prodserv.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_prodserv.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_prodserv.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_prodserv.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_prodserv.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_prodserv.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_prodserv.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_prodserv.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php + path: ../../../htdocs/compta/stats/supplier_turnover_by_thirdparty.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/compta/tva/card.php + path: ../../../htdocs/compta/tva/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/compta/tva/card.php + path: ../../../htdocs/compta/tva/card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/tva/card.php + path: ../../../htdocs/compta/tva/card.php - message: '#^Property PaymentVAT\:\:\$amount \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Property PaymentVAT\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Property PaymentVAT\:\:\$fk_tva \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Property PaymentVAT\:\:\$fk_typepaiement \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Property PaymentVAT\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Property PaymentVAT\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Property PaymentVAT\:\:\$num_paiement \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Property PaymentVAT\:\:\$num_payment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/compta/tva/class/paymentvat.class.php + path: ../../../htdocs/compta/tva/class/paymentvat.class.php - message: '#^Call to function method_exists\(\) with \$this\(Tva\) and ''LibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/class/tva.class.php + path: ../../../htdocs/compta/tva/class/tva.class.php - message: '#^Call to function method_exists\(\) with \$this\(Tva\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/class/tva.class.php + path: ../../../htdocs/compta/tva/class/tva.class.php - message: '#^Call to function property_exists\(\) with \$this\(Tva\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/class/tva.class.php + path: ../../../htdocs/compta/tva/class/tva.class.php - message: '#^Call to function property_exists\(\) with \$this\(Tva\) and ''datev'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/class/tva.class.php + path: ../../../htdocs/compta/tva/class/tva.class.php - message: '#^Call to function property_exists\(\) with \$this\(Tva\) and ''type_payment'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/class/tva.class.php + path: ../../../htdocs/compta/tva/class/tva.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/compta/tva/class/tva.class.php + path: ../../../htdocs/compta/tva/class/tva.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Comparison operation "\<" between 0 and 4 is always true\.$#' identifier: smaller.alwaysTrue count: 1 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Comparison operation "\>" between 0 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Variable \$date_end might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Variable \$date_start might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Variable \$date_start_year might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Variable \$description might not be defined\.$#' identifier: variable.undefined count: 8 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Variable \$year_current might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/tva/clients.php + path: ../../../htdocs/compta/tva/clients.php - message: '#^Strict comparison using \=\=\= between true and true will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 1 - path: ../../htdocs/compta/tva/index.php + path: ../../../htdocs/compta/tva/index.php - message: '#^Variable \$date_end might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/compta/tva/index.php + path: ../../../htdocs/compta/tva/index.php - message: '#^Variable \$date_start might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/compta/tva/index.php + path: ../../../htdocs/compta/tva/index.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/compta/tva/list.php + path: ../../../htdocs/compta/tva/list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/compta/tva/payments.php + path: ../../../htdocs/compta/tva/payments.php - message: '#^Strict comparison using \!\=\= between mixed and null will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 1 - path: ../../htdocs/compta/tva/payments.php + path: ../../../htdocs/compta/tva/payments.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/compta/tva/payments.php + path: ../../../htdocs/compta/tva/payments.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Comparison operation "\<" between 0 and 4 is always true\.$#' identifier: smaller.alwaysTrue count: 1 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Comparison operation "\>" between 0 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_end might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_end_day might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_end_month might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_end_year might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_start might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_start_day might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_start_month might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$date_start_year might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Variable \$year_current might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/compta/tva/quadri_detail.php + path: ../../../htdocs/compta/tva/quadri_detail.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/contact/ajax/contact.php + path: ../../../htdocs/contact/ajax/contact.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contact/ajax/contact.php + path: ../../../htdocs/contact/ajax/contact.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/contact/card.php + path: ../../../htdocs/contact/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/contact/card.php + path: ../../../htdocs/contact/card.php - message: '#^Property Societe\:\:\$typent_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 6 - path: ../../htdocs/contact/card.php + path: ../../../htdocs/contact/card.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 4 - path: ../../htdocs/contact/card.php + path: ../../../htdocs/contact/card.php - message: '#^Variable \$objsoc in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contact/card.php + path: ../../../htdocs/contact/card.php - message: '#^Variable \$triggermodname in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contact/card.php + path: ../../../htdocs/contact/card.php - message: '#^Call to function method_exists\(\) with \$this\(Contact\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Call to function method_exists\(\) with \$this\(Contact\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Call to function property_exists\(\) with \$this\(Contact\) and ''photo'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Call to function property_exists\(\) with \$this\(Contact\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Property Contact\:\:\$roles \(array\\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Property Contact\:\:\$stcomm_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/contact/class/contact.class.php + path: ../../../htdocs/contact/class/contact.class.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/contact/consumption.php + path: ../../../htdocs/contact/consumption.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contact/consumption.php + path: ../../../htdocs/contact/consumption.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 3 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 3 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 3 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 3 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^Variable \$ref in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contact/list.php + path: ../../../htdocs/contact/list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/contact/perso.php + path: ../../../htdocs/contact/perso.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/contrat/agenda.php + path: ../../../htdocs/contrat/agenda.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contrat/agenda.php + path: ../../../htdocs/contrat/agenda.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/contrat/card.php + path: ../../../htdocs/contrat/card.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/contrat/card.php + path: ../../../htdocs/contrat/card.php - message: '#^Variable \$canchangeproduct in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contrat/card.php + path: ../../../htdocs/contrat/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/contrat/card.php + path: ../../../htdocs/contrat/card.php - message: '#^Variable \$senderissupplier in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contrat/card.php + path: ../../../htdocs/contrat/card.php - message: '#^Variable \$tmpcode might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/card.php + path: ../../../htdocs/contrat/card.php - message: '#^Method Contracts\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:close\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:getLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:postLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:putLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Method Contracts\:\:validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Property Contracts\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/contrat/class/api_contracts.class.php + path: ../../../htdocs/contrat/class/api_contracts.class.php - message: '#^Call to function method_exists\(\) with \$this\(Contrat\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Call to function method_exists\(\) with \$this\(Contrat\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Call to function property_exists\(\) with \$this\(Contrat\) and ''date_contrat'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 6 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Parameter \#1 \$qty of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Parameter \#5 \$uselocaltax1_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Parameter \#6 \$uselocaltax2_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property CommonObject\:\:\$ref_ext \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$fk_commercial_signature \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$fk_commercial_suivi \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$ref_customer \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$ref_supplier \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Property Contrat\:\:\$statut \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/class/contrat.class.php + path: ../../../htdocs/contrat/class/contrat.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/contrat/class/contratligne.class.php + path: ../../../htdocs/contrat/class/contratligne.class.php - message: '#^Offset ''label'' on array\{label\: non\-falsy\-string\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/contrat/class/contratligne.class.php + path: ../../../htdocs/contrat/class/contratligne.class.php - message: '#^Parameter \#4 \$txtva of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/contrat/class/contratligne.class.php + path: ../../../htdocs/contrat/class/contratligne.class.php - message: '#^Variable \$label in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contrat/class/contratligne.class.php + path: ../../../htdocs/contrat/class/contratligne.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/contrat/contact.php + path: ../../../htdocs/contrat/contact.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/contact.php + path: ../../../htdocs/contrat/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/contrat/document.php + path: ../../../htdocs/contrat/document.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/index.php + path: ../../../htdocs/contrat/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/index.php + path: ../../../htdocs/contrat/index.php - message: '#^Variable \$badgeStatus4 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/index.php + path: ../../../htdocs/contrat/index.php - message: '#^Variable \$badgeStatus6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/index.php + path: ../../../htdocs/contrat/index.php - message: '#^Loose comparison using \=\= between \-1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/contrat/list.php + path: ../../../htdocs/contrat/list.php - message: '#^Loose comparison using \=\= between \-1 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/contrat/list.php + path: ../../../htdocs/contrat/list.php - message: '#^Parameter \#2 \$array of static method Form\:\:multiselectarray\(\) expects array\, non\-empty\-array\\|non\-empty\-string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/contrat/list.php + path: ../../../htdocs/contrat/list.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/contrat/list.php + path: ../../../htdocs/contrat/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contrat/list.php + path: ../../../htdocs/contrat/list.php - message: '#^Variable \$searchCategoryProductList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contrat/list.php + path: ../../../htdocs/contrat/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/contrat/messaging.php + path: ../../../htdocs/contrat/messaging.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/contrat/messaging.php + path: ../../../htdocs/contrat/messaging.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/contrat/note.php + path: ../../../htdocs/contrat/note.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/contrat/services_list.php + path: ../../../htdocs/contrat/services_list.php - message: '#^Loose comparison using \=\= between '''' and \-1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/contrat/services_list.php + path: ../../../htdocs/contrat/services_list.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 6 - path: ../../htdocs/contrat/services_list.php + path: ../../../htdocs/contrat/services_list.php - message: '#^Variable \$filter_opcloture in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/contrat/services_list.php + path: ../../../htdocs/contrat/services_list.php - message: '#^Property Ticket\:\:\$progress \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/contrat/ticket.php + path: ../../../htdocs/contrat/ticket.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/contrat/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/contrat/tpl/linkedobjectblock.tpl.php - message: '#^Loose comparison using \=\= between 1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/actions_addupdatedelete.inc.php + path: ../../../htdocs/core/actions_addupdatedelete.inc.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/core/actions_addupdatedelete.inc.php + path: ../../../htdocs/core/actions_addupdatedelete.inc.php - message: '#^Variable \$confirm might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/actions_addupdatedelete.inc.php + path: ../../../htdocs/core/actions_addupdatedelete.inc.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/actions_addupdatedelete.inc.php + path: ../../../htdocs/core/actions_addupdatedelete.inc.php - message: '#^Variable \$lineid might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_addupdatedelete.inc.php + path: ../../../htdocs/core/actions_addupdatedelete.inc.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 4 - path: ../../htdocs/core/actions_addupdatedelete.inc.php + path: ../../../htdocs/core/actions_addupdatedelete.inc.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/actions_builddoc.inc.php + path: ../../../htdocs/core/actions_builddoc.inc.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_comments.inc.php + path: ../../../htdocs/core/actions_comments.inc.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/actions_comments.inc.php + path: ../../../htdocs/core/actions_comments.inc.php - message: '#^Variable \$idcomment might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_comments.inc.php + path: ../../../htdocs/core/actions_comments.inc.php - message: '#^Variable \$withproject might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/actions_comments.inc.php + path: ../../../htdocs/core/actions_comments.inc.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_dellink.inc.php + path: ../../../htdocs/core/actions_dellink.inc.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/actions_fetchobject.inc.php + path: ../../../htdocs/core/actions_fetchobject.inc.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/actions_fetchobject.inc.php + path: ../../../htdocs/core/actions_fetchobject.inc.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 9 - path: ../../htdocs/core/actions_fetchobject.inc.php + path: ../../../htdocs/core/actions_fetchobject.inc.php - message: '#^Variable \$hidedesc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_lineupdown.inc.php + path: ../../../htdocs/core/actions_lineupdown.inc.php - message: '#^Variable \$hidedetails might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_lineupdown.inc.php + path: ../../../htdocs/core/actions_lineupdown.inc.php - message: '#^Variable \$hideref might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_lineupdown.inc.php + path: ../../../htdocs/core/actions_lineupdown.inc.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/actions_lineupdown.inc.php + path: ../../../htdocs/core/actions_lineupdown.inc.php - message: '#^Variable \$permissiontoedit might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_lineupdown.inc.php + path: ../../../htdocs/core/actions_lineupdown.inc.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/actions_linkedfiles.inc.php + path: ../../../htdocs/core/actions_linkedfiles.inc.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/actions_linkedfiles.inc.php + path: ../../../htdocs/core/actions_linkedfiles.inc.php - message: '#^Call to function is_array\(\) with non\-empty\-array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Call to function is_object\(\) with Adherent\|ConferenceOrBoothAttendee\|Contact\|Societe\|User will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Comparison operation "\>" between 0 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 2 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Expression "\<\<\<''EOPHAN''…" on a separate line does not do anything\.$#' identifier: expr.resultUnused count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Parameter \#1 \$array of function sort contains unresolvable type\.$#' identifier: argument.unresolvableType count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$from might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$holiday might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$listofobjectthirdparties in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$obj might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$permissiontoadd might not be defined\.$#' identifier: variable.undefined count: 10 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$search_status might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$triggername in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/actions_massactions.inc.php + path: ../../../htdocs/core/actions_massactions.inc.php - message: '#^Variable \$classfile might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/actions_printing.inc.php + path: ../../../htdocs/core/actions_printing.inc.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Parameter \#1 \$filenb of function dol_remove_file_process expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Variable \$contact might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Variable \$from might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Variable \$paramname2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Variable \$thirdparty might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/core/actions_sendmails.inc.php + path: ../../../htdocs/core/actions_sendmails.inc.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/actions_setmoduleoptions.inc.php + path: ../../../htdocs/core/actions_setmoduleoptions.inc.php - message: '#^Variable \$modulepart might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/actions_setmoduleoptions.inc.php + path: ../../../htdocs/core/actions_setmoduleoptions.inc.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/actions_setnotes.inc.php + path: ../../../htdocs/core/actions_setnotes.inc.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/actions_setnotes.inc.php + path: ../../../htdocs/core/actions_setnotes.inc.php - message: '#^Loose comparison using \=\= between ''directory'' and ''directory'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$dolibarr_main_data_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$module might not be defined\.$#' identifier: variable.undefined count: 34 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$section might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$showonrightsize might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$sortfield might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$sortorder might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/ajaxdirpreview.php + path: ../../../htdocs/core/ajax/ajaxdirpreview.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/ajaxdirtree.php + path: ../../../htdocs/core/ajax/ajaxdirtree.php - message: '#^Variable \$dolibarr_main_data_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/ajax/ajaxdirtree.php + path: ../../../htdocs/core/ajax/ajaxdirtree.php - message: '#^Variable \$module might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/ajaxdirtree.php + path: ../../../htdocs/core/ajax/ajaxdirtree.php - message: '#^Variable \$original_file might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/ajaxdirtree.php + path: ../../../htdocs/core/ajax/ajaxdirtree.php - message: '#^Variable \$section might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/core/ajax/ajaxdirtree.php + path: ../../../htdocs/core/ajax/ajaxdirtree.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/ajax/ajaxtooltip.php + path: ../../../htdocs/core/ajax/ajaxtooltip.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/core/ajax/editinline.php + path: ../../../htdocs/core/ajax/editinline.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/ajax/locationincoterms.php + path: ../../../htdocs/core/ajax/locationincoterms.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/ajax/mailtemplate.php + path: ../../../htdocs/core/ajax/mailtemplate.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/ajax/onlineSign.php + path: ../../../htdocs/core/ajax/onlineSign.php - message: '#^Variable \$tva_tx in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/ajax/price.php + path: ../../../htdocs/core/ajax/price.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/ajax/selectobject.php + path: ../../../htdocs/core/ajax/selectobject.php - message: '#^Parameter \#2 \$replace of function str_replace expects array\\|string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/ajax/selectobject.php + path: ../../../htdocs/core/ajax/selectobject.php - message: '#^Variable \$filter might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/ajax/selectobject.php + path: ../../../htdocs/core/ajax/selectobject.php - message: '#^Constructor of class box_accountancy_last_manual_entries has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_accountancy_last_manual_entries.php + path: ../../../htdocs/core/boxes/box_accountancy_last_manual_entries.php - message: '#^Constructor of class box_accountancy_suspense_account has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_accountancy_suspense_account.php + path: ../../../htdocs/core/boxes/box_accountancy_suspense_account.php - message: '#^Constructor of class box_actions has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_actions.php + path: ../../../htdocs/core/boxes/box_actions.php - message: '#^Constructor of class box_actions_future has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_actions_future.php + path: ../../../htdocs/core/boxes/box_actions_future.php - message: '#^Constructor of class box_activity has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_activity.php + path: ../../../htdocs/core/boxes/box_activity.php - message: '#^Call to function is_array\(\) with array\, mixed\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/boxes/box_birthdays.php + path: ../../../htdocs/core/boxes/box_birthdays.php - message: '#^Constructor of class box_birthdays has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_birthdays.php + path: ../../../htdocs/core/boxes/box_birthdays.php - message: '#^Call to function is_array\(\) with array\, mixed\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/boxes/box_birthdays_members.php + path: ../../../htdocs/core/boxes/box_birthdays_members.php - message: '#^Constructor of class box_birthdays_members has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_birthdays_members.php + path: ../../../htdocs/core/boxes/box_birthdays_members.php - message: '#^Constructor of class box_boms has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_boms.php + path: ../../../htdocs/core/boxes/box_boms.php - message: '#^Constructor of class box_bookmarks has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_bookmarks.php + path: ../../../htdocs/core/boxes/box_bookmarks.php - message: '#^Constructor of class box_clients has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_clients.php + path: ../../../htdocs/core/boxes/box_clients.php - message: '#^Comparison operation "\<" between 0 and 0 is always false\.$#' identifier: smaller.alwaysFalse count: 1 - path: ../../htdocs/core/boxes/box_commandes.php + path: ../../../htdocs/core/boxes/box_commandes.php - message: '#^Constructor of class box_commandes has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_commandes.php + path: ../../../htdocs/core/boxes/box_commandes.php - message: '#^Constructor of class box_comptes has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_comptes.php + path: ../../../htdocs/core/boxes/box_comptes.php - message: '#^Constructor of class box_contacts has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_contacts.php + path: ../../../htdocs/core/boxes/box_contacts.php - message: '#^Constructor of class box_contracts has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_contracts.php + path: ../../../htdocs/core/boxes/box_contracts.php - message: '#^Constructor of class box_customers_outstanding_bill_reached has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_customers_outstanding_bill_reached.php + path: ../../../htdocs/core/boxes/box_customers_outstanding_bill_reached.php - message: '#^Call to function is_array\(\) with array\<''contacts''\|''contracts''\|''customers''\|''dolresource''\|''donations''\|''expensereports''\|''holidays''\|''interventions''\|''invoices''\|''members''\|''orders''\|''products''\|''projects''\|''proposals''\|''prospects''\|''services''\|''supplier_invoices''\|''supplier_orders''\|''supplier_proposals''\|''suppliers''\|''ticket''\|''users'', non\-falsy\-string\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/boxes/box_dolibarr_state_board.php + path: ../../../htdocs/core/boxes/box_dolibarr_state_board.php - message: '#^Call to function method_exists\(\) with Adherent\|Client\|Commande\|CommandeFournisseur\|Contact\|Contrat\|Dolresource\|Don\|ExpenseReport\|Facture\|FactureFournisseur\|Fichinter\|Fournisseur\|Holiday\|Product\|Project\|Propal\|SupplierProposal\|Ticket\|User and ''loadStateBoard'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/boxes/box_dolibarr_state_board.php + path: ../../../htdocs/core/boxes/box_dolibarr_state_board.php - message: '#^Constructor of class box_dolibarr_state_board has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_dolibarr_state_board.php + path: ../../../htdocs/core/boxes/box_dolibarr_state_board.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="nohover"'', td\: ''class\=…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_dolibarr_state_board.php + path: ../../../htdocs/core/boxes/box_dolibarr_state_board.php - message: '#^Constructor of class box_factures has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_factures.php + path: ../../../htdocs/core/boxes/box_factures.php - message: '#^Constructor of class box_factures_fourn has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_factures_fourn.php + path: ../../../htdocs/core/boxes/box_factures_fourn.php - message: '#^Constructor of class box_factures_fourn_imp has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_factures_fourn_imp.php + path: ../../../htdocs/core/boxes/box_factures_fourn_imp.php - message: '#^Constructor of class box_factures_imp has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_factures_imp.php + path: ../../../htdocs/core/boxes/box_factures_imp.php - message: '#^Constructor of class box_ficheinter has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_ficheinter.php + path: ../../../htdocs/core/boxes/box_ficheinter.php - message: '#^Constructor of class box_fournisseurs has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_fournisseurs.php + path: ../../../htdocs/core/boxes/box_fournisseurs.php - message: '#^Constructor of class box_funnel_of_prospection has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_funnel_of_prospection.php + path: ../../../htdocs/core/boxes/box_funnel_of_prospection.php - message: '#^Constructor of class box_goodcustomers has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_goodcustomers.php + path: ../../../htdocs/core/boxes/box_goodcustomers.php - message: '#^Constructor of class box_graph_invoices_permonth has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_permonth.php + path: ../../../htdocs/core/boxes/box_graph_invoices_permonth.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="oddeven…'', td\: ''class\="nohover…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_permonth.php + path: ../../../htdocs/core/boxes/box_graph_invoices_permonth.php - message: '#^Constructor of class box_graph_invoices_peryear has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_peryear.php + path: ../../../htdocs/core/boxes/box_graph_invoices_peryear.php - message: '#^Left side of \|\| is always true\.$#' identifier: booleanOr.leftAlwaysTrue count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_peryear.php + path: ../../../htdocs/core/boxes/box_graph_invoices_peryear.php - message: '#^Loose comparison using \=\= between ''customer'' and ''supplier'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_peryear.php + path: ../../../htdocs/core/boxes/box_graph_invoices_peryear.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="oddeven…'', td\: ''class\="nohover…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_peryear.php + path: ../../../htdocs/core/boxes/box_graph_invoices_peryear.php - message: '#^Constructor of class box_graph_invoices_supplier_permonth has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_supplier_permonth.php + path: ../../../htdocs/core/boxes/box_graph_invoices_supplier_permonth.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="oddeven…'', td\: ''class\="nohover…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_graph_invoices_supplier_permonth.php + path: ../../../htdocs/core/boxes/box_graph_invoices_supplier_permonth.php - message: '#^Constructor of class box_graph_nb_ticket_last_x_days has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_nb_ticket_last_x_days.php + path: ../../../htdocs/core/boxes/box_graph_nb_ticket_last_x_days.php - message: '#^Constructor of class box_graph_nb_tickets_type has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_nb_tickets_type.php + path: ../../../htdocs/core/boxes/box_graph_nb_tickets_type.php - message: '#^Constructor of class box_graph_new_vs_close_ticket has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_new_vs_close_ticket.php + path: ../../../htdocs/core/boxes/box_graph_new_vs_close_ticket.php - message: '#^Constructor of class box_graph_orders_permonth has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_orders_permonth.php + path: ../../../htdocs/core/boxes/box_graph_orders_permonth.php - message: '#^Loose comparison using \=\= between ''customer'' and ''supplier'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/core/boxes/box_graph_orders_permonth.php + path: ../../../htdocs/core/boxes/box_graph_orders_permonth.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="oddeven…'', td\: ''class\="nohover…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_graph_orders_permonth.php + path: ../../../htdocs/core/boxes/box_graph_orders_permonth.php - message: '#^Constructor of class box_graph_orders_supplier_permonth has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_orders_supplier_permonth.php + path: ../../../htdocs/core/boxes/box_graph_orders_supplier_permonth.php - message: '#^Loose comparison using \=\= between ''supplier'' and ''supplier'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/core/boxes/box_graph_orders_supplier_permonth.php + path: ../../../htdocs/core/boxes/box_graph_orders_supplier_permonth.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="oddeven…'', td\: ''class\="nohover…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_graph_orders_supplier_permonth.php + path: ../../../htdocs/core/boxes/box_graph_orders_supplier_permonth.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 3 - path: ../../htdocs/core/boxes/box_graph_product_distribution.php + path: ../../../htdocs/core/boxes/box_graph_product_distribution.php - message: '#^Constructor of class box_graph_product_distribution has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_product_distribution.php + path: ../../../htdocs/core/boxes/box_graph_product_distribution.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="oddeven…'', td\: ''class\="nohover…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_graph_product_distribution.php + path: ../../../htdocs/core/boxes/box_graph_product_distribution.php - message: '#^Constructor of class box_graph_propales_permonth has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_propales_permonth.php + path: ../../../htdocs/core/boxes/box_graph_propales_permonth.php - message: '#^Property ModeleBoxes\:\:\$info_box_contents \(array\, maxlength\?\: int\}\|int\|string\>\>\) does not accept non\-empty\-array\, maxlength\?\: int\}\|array\{tr\: ''class\="oddeven…'', td\: ''class\="nohover…'', textnoformat\: non\-falsy\-string\}\|int\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/boxes/box_graph_propales_permonth.php + path: ../../../htdocs/core/boxes/box_graph_propales_permonth.php - message: '#^Constructor of class box_graph_ticket_by_severity has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_graph_ticket_by_severity.php + path: ../../../htdocs/core/boxes/box_graph_ticket_by_severity.php - message: '#^Constructor of class box_last_knowledgerecord has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_last_knowledgerecord.php + path: ../../../htdocs/core/boxes/box_last_knowledgerecord.php - message: '#^Constructor of class box_last_modified_knowledgerecord has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_last_modified_knowledgerecord.php + path: ../../../htdocs/core/boxes/box_last_modified_knowledgerecord.php - message: '#^Constructor of class box_last_modified_ticket has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_last_modified_ticket.php + path: ../../../htdocs/core/boxes/box_last_modified_ticket.php - message: '#^Constructor of class box_last_ticket has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_last_ticket.php + path: ../../../htdocs/core/boxes/box_last_ticket.php - message: '#^Constructor of class box_lastlogin has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_lastlogin.php + path: ../../../htdocs/core/boxes/box_lastlogin.php - message: '#^Constructor of class box_members_by_tags has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_members_by_tags.php + path: ../../../htdocs/core/boxes/box_members_by_tags.php - message: '#^Constructor of class box_members_by_type has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_members_by_type.php + path: ../../../htdocs/core/boxes/box_members_by_type.php - message: '#^Constructor of class box_members_last_modified has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_members_last_modified.php + path: ../../../htdocs/core/boxes/box_members_last_modified.php - message: '#^Constructor of class box_members_last_subscriptions has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_members_last_subscriptions.php + path: ../../../htdocs/core/boxes/box_members_last_subscriptions.php - message: '#^Comparison operation "\>\=" between 0 and 8 is always false\.$#' identifier: greaterOrEqual.alwaysFalse count: 1 - path: ../../htdocs/core/boxes/box_members_subscriptions_by_year.php + path: ../../../htdocs/core/boxes/box_members_subscriptions_by_year.php - message: '#^Constructor of class box_members_subscriptions_by_year has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_members_subscriptions_by_year.php + path: ../../../htdocs/core/boxes/box_members_subscriptions_by_year.php - message: '#^Constructor of class box_mos has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_mos.php + path: ../../../htdocs/core/boxes/box_mos.php - message: '#^Constructor of class box_produits has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_produits.php + path: ../../../htdocs/core/boxes/box_produits.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''product\|service''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/boxes/box_produits.php + path: ../../../htdocs/core/boxes/box_produits.php - message: '#^Constructor of class box_produits_alerte_stock has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_produits_alerte_stock.php + path: ../../../htdocs/core/boxes/box_produits_alerte_stock.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: mixed, module\: ''product\|service…''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/boxes/box_produits_alerte_stock.php + path: ../../../htdocs/core/boxes/box_produits_alerte_stock.php - message: '#^Constructor of class box_project has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_project.php + path: ../../../htdocs/core/boxes/box_project.php - message: '#^Constructor of class box_project_opportunities has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_project_opportunities.php + path: ../../../htdocs/core/boxes/box_project_opportunities.php - message: '#^Constructor of class box_propales has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_propales.php + path: ../../../htdocs/core/boxes/box_propales.php - message: '#^Constructor of class box_prospect has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_prospect.php + path: ../../../htdocs/core/boxes/box_prospect.php - message: '#^Constructor of class box_scheduled_jobs has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_scheduled_jobs.php + path: ../../../htdocs/core/boxes/box_scheduled_jobs.php - message: '#^Constructor of class box_services_contracts has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_services_contracts.php + path: ../../../htdocs/core/boxes/box_services_contracts.php - message: '#^Constructor of class box_services_expired has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_services_expired.php + path: ../../../htdocs/core/boxes/box_services_expired.php - message: '#^Constructor of class box_shipments has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_shipments.php + path: ../../../htdocs/core/boxes/box_shipments.php - message: '#^Constructor of class box_supplier_orders has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_supplier_orders.php + path: ../../../htdocs/core/boxes/box_supplier_orders.php - message: '#^Constructor of class box_supplier_orders_awaiting_reception has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_supplier_orders_awaiting_reception.php + path: ../../../htdocs/core/boxes/box_supplier_orders_awaiting_reception.php - message: '#^Constructor of class box_task has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_task.php + path: ../../../htdocs/core/boxes/box_task.php - message: '#^Constructor of class box_validated_projects has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/box_validated_projects.php + path: ../../../htdocs/core/boxes/box_validated_projects.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/boxes/modules_boxes.php + path: ../../../htdocs/core/boxes/modules_boxes.php - message: '#^Comparison operation "\>" between 0 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/core/boxes/modules_boxes.php + path: ../../../htdocs/core/boxes/modules_boxes.php - message: '#^Constructor of class ModeleBoxes has an unused parameter \$param\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/boxes/modules_boxes.php + path: ../../../htdocs/core/boxes/modules_boxes.php - message: '#^Loose comparison using \=\= between 0 and 2 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/boxes/modules_boxes.php + path: ../../../htdocs/core/boxes/modules_boxes.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 1 - path: ../../htdocs/core/boxes/modules_boxes.php + path: ../../../htdocs/core/boxes/modules_boxes.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Method CMailFile\:\:getValidAddress\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Method CMailFile\:\:getValidAddress\(\) has parameter \$encode with no type specified\.$#' identifier: missingType.parameter count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Method CMailFile\:\:getValidAddress\(\) has parameter \$maxnumberofemail with no type specified\.$#' identifier: missingType.parameter count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$addr_bcc \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$addr_cc \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$deliveryreceipt \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$eol has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$eol2 has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$errors_to \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$image_types has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property CMailFile\:\:\$reply_to \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/class/CMailFile.class.php + path: ../../../htdocs/core/class/CMailFile.class.php - message: '#^Property Ccountry\:\:\$code_iso \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ccountry.class.php + path: ../../../htdocs/core/class/ccountry.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ccountry.class.php + path: ../../../htdocs/core/class/ccountry.class.php - message: '#^Property CommonDict\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ccountry.class.php + path: ../../../htdocs/core/class/ccountry.class.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ccountry.class.php + path: ../../../htdocs/core/class/ccountry.class.php - message: '#^Method CGenericDic\:\:fetchAll\(\) has parameter \$filter with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/class/cgenericdic.class.php + path: ../../../htdocs/core/class/cgenericdic.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/class/cgenericdic.class.php + path: ../../../htdocs/core/class/cgenericdic.class.php - message: '#^Property CGenericDic\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cgenericdic.class.php + path: ../../../htdocs/core/class/cgenericdic.class.php - message: '#^Property CGenericDic\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cgenericdic.class.php + path: ../../../htdocs/core/class/cgenericdic.class.php - message: '#^Property CGenericDic\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cgenericdic.class.php + path: ../../../htdocs/core/class/cgenericdic.class.php - message: '#^Method CLeadStatus\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/class/cleadstatus.class.php + path: ../../../htdocs/core/class/cleadstatus.class.php - message: '#^Property CLeadStatus\:\:\$percent \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/cleadstatus.class.php + path: ../../../htdocs/core/class/cleadstatus.class.php - message: '#^Property CLeadStatus\:\:\$position \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cleadstatus.class.php + path: ../../../htdocs/core/class/cleadstatus.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cleadstatus.class.php + path: ../../../htdocs/core/class/cleadstatus.class.php - message: '#^Property CommonDict\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cleadstatus.class.php + path: ../../../htdocs/core/class/cleadstatus.class.php - message: '#^Property CommonDict\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/cleadstatus.class.php + path: ../../../htdocs/core/class/cleadstatus.class.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/class/cleadstatus.class.php + path: ../../../htdocs/core/class/cleadstatus.class.php - message: '#^Property Comment\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/comment.class.php + path: ../../../htdocs/core/class/comment.class.php - message: '#^Property Comment\:\:\$fk_element \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/class/comment.class.php + path: ../../../htdocs/core/class/comment.class.php - message: '#^Property Comment\:\:\$fk_user_author \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/comment.class.php + path: ../../../htdocs/core/class/comment.class.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, CommonObject given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commondocgenerator.class.php + path: ../../../htdocs/core/class/commondocgenerator.class.php - message: '#^Parameter \#2 \$array_to_fill of method CommonDocGenerator\:\:fill_substitutionarray_with_extrafields\(\) expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commondocgenerator.class.php + path: ../../../htdocs/core/class/commondocgenerator.class.php - message: '#^Property CommonObject\:\:\$element \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/commondocgenerator.class.php + path: ../../../htdocs/core/class/commondocgenerator.class.php - message: '#^Property CommonObjectLine\:\:\$fk_product \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/commondocgenerator.class.php + path: ../../../htdocs/core/class/commondocgenerator.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 3 - path: ../../htdocs/core/class/commoninvoice.class.php + path: ../../../htdocs/core/class/commoninvoice.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/class/commoninvoice.class.php + path: ../../../htdocs/core/class/commoninvoice.class.php - message: '#^Variable \$charge in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/core/class/commoninvoice.class.php + path: ../../../htdocs/core/class/commoninvoice.class.php - message: '#^Variable \$field4 in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/commoninvoice.class.php + path: ../../../htdocs/core/class/commoninvoice.class.php - message: '#^Variable \$stripearrayofkeys might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/class/commoninvoice.class.php + path: ../../../htdocs/core/class/commoninvoice.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 4 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 9 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(CommonObject\) and ''fields'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(CommonObject\) and ''statut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Expression in empty\(\) is always falsy\.$#' identifier: empty.expr count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 5 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Method CommonObject\:\:getAllItemsLinkedByObjectID\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Method CommonObject\:\:getCountOfItemsLinkedByObjectID\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 7 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^PHPDoc tag @var with type Commande is not subtype of native type \$this\(CommonObject\)\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^PHPDoc tag @var with type CommandeFournisseur is not subtype of native type \$this\(CommonObject\)\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^PHPDoc tag @var with type Facture is not subtype of native type \$this\(CommonObject\)\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^PHPDoc tag @var with type FactureFournisseur is not subtype of native type \$this\(CommonObject\)\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^PHPDoc tag @var with type Propal is not subtype of native type \$this\(CommonObject\)\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^PHPDoc tag @var with type SupplierProposal is not subtype of native type \$this\(CommonObject\)\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Parameter \#1 \$line of method CommonObject\:\:printOriginLine\(\) expects CommonObjectLine, CommonObject\|stdClass given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Parameter \#17 \$pa_ht of method Commande\:\:updateline\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Parameter \#2 \$line of method CommonObject\:\:printObjectLine\(\) expects CommonObjectLine, CommonObject\|stdClass given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Parameter \#20 \$fk_unit of method SupplierProposal\:\:updateline\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Parameter \#21 \$situation_percent of method Facture\:\:updateline\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Property CommonObject\:\:\$childtables \(array\\|string\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Property CommonObject\:\:\$cond_reglement \(int\|string\) is never assigned string so it can be removed from the property type\.$#' identifier: property.unusedType count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Property CommonObject\:\:\$fields \(array\\|int\|string\>\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Property CommonObject\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 9 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Property CommonObject\:\:\$lines \(array\\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Variable \$minSize in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Variable \$newProperty in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Variable \$validationClass in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/commonobject.class.php + path: ../../../htdocs/core/class/commonobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(CommonOrder\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/commonorder.class.php + path: ../../../htdocs/core/class/commonorder.class.php - message: '#^Call to function property_exists\(\) with \$this\(CommonOrder\) and ''total_ht'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/commonorder.class.php + path: ../../../htdocs/core/class/commonorder.class.php - message: '#^Parameter \#2 \$pt of method CommonStickerGenerator\:\:Set_Char_Size\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Avery_Code has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Avery_Name has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_COUNTX has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_COUNTY has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Char_Size has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_First has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Height has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Line_Height has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Margin_Left has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Margin_Top has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Metric has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Metric_Doc has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Width has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_X_Number has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_X_Space has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Y_Number has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Property CommonStickerGenerator\:\:\$_Y_Space has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/commonstickergenerator.class.php + path: ../../../htdocs/core/class/commonstickergenerator.class.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$adherent \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$agenda \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$commande \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$contrat \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$delivery_note has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$expedition_bon has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$expensereport \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$facture \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_hour_sec_short has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_hour_short has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_hour_text has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_hour_text_short has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_short has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_short_java has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_text has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_date_text_short has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_hour_short has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$format_hour_short_duration has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$main_checkbox_left_column \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$member \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$modules_parts type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$mycompany has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$product \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$project \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$projet has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property Conf\:\:\$propal \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/class/conf.class.php + path: ../../../htdocs/core/class/conf.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cproductnature.class.php + path: ../../../htdocs/core/class/cproductnature.class.php - message: '#^Property CommonDict\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cproductnature.class.php + path: ../../../htdocs/core/class/cproductnature.class.php - message: '#^Property CommonDict\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/cproductnature.class.php + path: ../../../htdocs/core/class/cproductnature.class.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cproductnature.class.php + path: ../../../htdocs/core/class/cproductnature.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cregion.class.php + path: ../../../htdocs/core/class/cregion.class.php - message: '#^Property CommonDict\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/cregion.class.php + path: ../../../htdocs/core/class/cregion.class.php - message: '#^Property Cregion\:\:\$cheflieu \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cregion.class.php + path: ../../../htdocs/core/class/cregion.class.php - message: '#^Property Cregion\:\:\$code_region \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cregion.class.php + path: ../../../htdocs/core/class/cregion.class.php - message: '#^Property Cregion\:\:\$fk_pays \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cregion.class.php + path: ../../../htdocs/core/class/cregion.class.php - message: '#^Property Cregion\:\:\$name \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cregion.class.php + path: ../../../htdocs/core/class/cregion.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cstate.class.php + path: ../../../htdocs/core/class/cstate.class.php - message: '#^Property Cstate\:\:\$code_departement \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cstate.class.php + path: ../../../htdocs/core/class/cstate.class.php - message: '#^Property Cstate\:\:\$name \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cstate.class.php + path: ../../../htdocs/core/class/cstate.class.php - message: '#^Property Cstate\:\:\$nom \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cstate.class.php + path: ../../../htdocs/core/class/cstate.class.php - message: '#^Property Cstate\:\:\$rowid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/cstate.class.php + path: ../../../htdocs/core/class/cstate.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ctypent.class.php + path: ../../../htdocs/core/class/ctypent.class.php - message: '#^Property CommonDict\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ctypent.class.php + path: ../../../htdocs/core/class/ctypent.class.php - message: '#^Property CommonDict\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/ctypent.class.php + path: ../../../htdocs/core/class/ctypent.class.php - message: '#^Property Ctypent\:\:\$libelle \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ctypent.class.php + path: ../../../htdocs/core/class/ctypent.class.php - message: '#^Property Ctypent\:\:\$module \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ctypent.class.php + path: ../../../htdocs/core/class/ctypent.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/class/ctyperesource.class.php + path: ../../../htdocs/core/class/ctyperesource.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ctyperesource.class.php + path: ../../../htdocs/core/class/ctyperesource.class.php - message: '#^Property CommonDict\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ctyperesource.class.php + path: ../../../htdocs/core/class/ctyperesource.class.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/ctyperesource.class.php + path: ../../../htdocs/core/class/ctyperesource.class.php - message: '#^Property CUnits\:\:\$short_label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cunits.class.php + path: ../../../htdocs/core/class/cunits.class.php - message: '#^Property CUnits\:\:\$sortorder \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cunits.class.php + path: ../../../htdocs/core/class/cunits.class.php - message: '#^Property CUnits\:\:\$unit_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cunits.class.php + path: ../../../htdocs/core/class/cunits.class.php - message: '#^Property CommonDict\:\:\$active \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/class/cunits.class.php + path: ../../../htdocs/core/class/cunits.class.php - message: '#^Property CommonDict\:\:\$code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cunits.class.php + path: ../../../htdocs/core/class/cunits.class.php - message: '#^Property CommonDict\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/cunits.class.php + path: ../../../htdocs/core/class/cunits.class.php - message: '#^Property CommonDict\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/core/class/cunits.class.php + path: ../../../htdocs/core/class/cunits.class.php - message: '#^Constructor of class DolEditor has an unused parameter \$toolbarlocation\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/class/doleditor.class.php + path: ../../../htdocs/core/class/doleditor.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/class/doleditor.class.php + path: ../../../htdocs/core/class/doleditor.class.php - message: '#^Variable \$type in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/dolgeoip.class.php + path: ../../../htdocs/core/class/dolgeoip.class.php - message: '#^Call to function is_array\(\) with array\{stacknum\: int, legend\: mixed, legendwithgroup\: non\-falsy\-string\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 3 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Loose comparison using \=\= between ''line'' and ''horizontalBar'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Loose comparison using \=\= between 1 and 3 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Offset 0 on array\{array\{stacknum\: int, legend\: mixed, legendwithgroup\: non\-falsy\-string\}\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Variable \$legendMaxLines in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/class/dolgraph.class.php + path: ../../../htdocs/core/class/dolgraph.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/core/class/extrafields.class.php + path: ../../../htdocs/core/class/extrafields.class.php - message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/extrafields.class.php + path: ../../../htdocs/core/class/extrafields.class.php - message: '#^Call to function is_array\(\) with list\<\(int\|string\)\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/extrafields.class.php + path: ../../../htdocs/core/class/extrafields.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 11 - path: ../../htdocs/core/class/extrafields.class.php + path: ../../../htdocs/core/class/extrafields.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/class/extrafields.class.php + path: ../../../htdocs/core/class/extrafields.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/class/extrafields.class.php + path: ../../../htdocs/core/class/extrafields.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/core/class/extrafields.class.php + path: ../../../htdocs/core/class/extrafields.class.php - message: '#^Call to function is_numeric\(\) with int\<0, max\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/fileupload.class.php + path: ../../../htdocs/core/class/fileupload.class.php - message: '#^Strict comparison using \!\=\= between array\|string and null will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 1 - path: ../../htdocs/core/class/fileupload.class.php + path: ../../../htdocs/core/class/fileupload.class.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/class/fileupload.class.php + path: ../../../htdocs/core/class/fileupload.class.php - message: '#^Property Fiscalyear\:\:\$date_start \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/class/fiscalyear.class.php + path: ../../../htdocs/core/class/fiscalyear.class.php - message: '#^Property Fiscalyear\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/fiscalyear.class.php + path: ../../../htdocs/core/class/fiscalyear.class.php - message: '#^Call to function is_array\(\) with non\-empty\-array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/hookmanager.class.php + path: ../../../htdocs/core/class/hookmanager.class.php - message: '#^Property HookManager\:\:\$hooks has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/hookmanager.class.php + path: ../../../htdocs/core/class/hookmanager.class.php - message: '#^Property HookManager\:\:\$hooksSorted has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/hookmanager.class.php + path: ../../../htdocs/core/class/hookmanager.class.php - message: '#^Call to function is_array\(\) with array\{\}\|array\{mixed\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Loose comparison using \=\= between ''GET'' and ''GET'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Parameter \#1 \$array of function dol_sort_array contains unresolvable type\.$#' identifier: argument.unresolvableType count: 4 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Parameter \#1 \$selected of method Form\:\:getSelectConditionsPaiements\(\) expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Parameter \#15 \$excludeids of method Form\:\:select_company\(\) expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Parameter \#2 \$array of method Form\:\:multiselectarray\(\) expects array\, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Parameter \#3 \$optJson of method Form\:\:constructProjectListOption\(\) expects array\{key\: string, value\: string, type\: string\}, array\{\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Parameter \#3 \$selected of method Form\:\:multiselectarray\(\) expects array\, list\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Parameter \#7 \$ajaxoptions of function ajax_autocompleter expects array\\|string\>, array\\|string\>\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Property CommonObject\:\:\$next_prev_filter \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Property Form\:\:\$cache_availability has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/html.form.class.php + 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 + 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 + 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 + 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 + 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 + 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 + 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 + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#' identifier: function.unresolvableReturnType count: 4 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 8 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 2 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Variable \$more in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Variable \$pageyes in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/html.form.class.php + path: ../../../htdocs/core/class/html.form.class.php - message: '#^Variable \$select_encoder might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/class/html.formbarcode.class.php + path: ../../../htdocs/core/class/html.formbarcode.class.php - message: '#^Call to function is_array\(\) with non\-empty\-array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/html.formcategory.class.php + path: ../../../htdocs/core/class/html.formcategory.class.php - message: '#^Parameter \#2 \$array of static method Form\:\:multiselectarray\(\) expects array\, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.formcategory.class.php + path: ../../../htdocs/core/class/html.formcategory.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/html.formcompany.class.php + path: ../../../htdocs/core/class/html.formcompany.class.php - message: '#^Call to function is_numeric\(\) with float\|int\\|int\<1, max\>\|\(non\-falsy\-string&numeric\-string\) will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/html.formcompany.class.php + path: ../../../htdocs/core/class/html.formcompany.class.php - message: '#^Parameter \#1 \$array of function dol_sort_array contains unresolvable type\.$#' identifier: argument.unresolvableType count: 1 - path: ../../htdocs/core/class/html.formcompany.class.php + path: ../../../htdocs/core/class/html.formcompany.class.php - message: '#^Parameter \#1 \$selected of method FormCompany\:\:select_state\(\) expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.formcompany.class.php + path: ../../../htdocs/core/class/html.formcompany.class.php - message: '#^Parameter \#3 \$selected of method Form\:\:multiselectarray\(\) expects array\, array\\|int\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.formcompany.class.php + path: ../../../htdocs/core/class/html.formcompany.class.php - message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#' identifier: function.unresolvableReturnType count: 1 - path: ../../htdocs/core/class/html.formcompany.class.php + path: ../../../htdocs/core/class/html.formcompany.class.php - message: '#^Variable \$idprof might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/class/html.formcompany.class.php + path: ../../../htdocs/core/class/html.formcompany.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^Comparison operation "\>" between 1 and 0 is always true\.$#' identifier: greater.alwaysTrue count: 1 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 3 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^Property CommonObject\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 3 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^Variable \$fileinfo might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/class/html.formfile.class.php + path: ../../../htdocs/core/class/html.formfile.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/core/class/html.formintervention.class.php + path: ../../../htdocs/core/class/html.formintervention.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/class/html.formmail.class.php + path: ../../../htdocs/core/class/html.formmail.class.php - message: '#^Parameter \#2 \$array of static method Form\:\:multiselectarray\(\) expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.formmail.class.php + path: ../../../htdocs/core/class/html.formmail.class.php - message: '#^Property FormMail\:\:\$ckeditortoolbar \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/html.formmail.class.php + path: ../../../htdocs/core/class/html.formmail.class.php - message: '#^Parameter \#2 \$array of static method Form\:\:multiselectarray\(\) expects array\, non\-empty\-array\<\-1\|0\|1\|2\|3, string\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.formorder.class.php + path: ../../../htdocs/core/class/html.formorder.class.php - message: '#^Parameter \#3 \$zone of static method InfoBox\:\:listBoxes\(\) expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.formother.class.php + path: ../../../htdocs/core/class/html.formother.class.php - message: '#^Property CommonObjectLine\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/html.formother.class.php + path: ../../../htdocs/core/class/html.formother.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/class/html.formother.class.php + path: ../../../htdocs/core/class/html.formother.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/class/html.formprojet.class.php + path: ../../../htdocs/core/class/html.formprojet.class.php - message: '#^Parameter \#2 \$array of static method Form\:\:multiselectarray\(\) expects array\, non\-empty\-array\<0\|1\|2, string\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/html.formprojet.class.php + path: ../../../htdocs/core/class/html.formprojet.class.php - message: '#^Variable \$labeltoshow might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/class/html.formprojet.class.php + path: ../../../htdocs/core/class/html.formprojet.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/core/class/html.formsetup.class.php + path: ../../../htdocs/core/class/html.formsetup.class.php - message: '#^Property FormSetupItem\:\:\$rank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/html.formsetup.class.php + path: ../../../htdocs/core/class/html.formsetup.class.php - message: '#^Property FormSetupItem\:\:\$saveCallBack \(callable\) in empty\(\) is not falsy\.$#' identifier: empty.property count: 1 - path: ../../htdocs/core/class/html.formsetup.class.php + path: ../../../htdocs/core/class/html.formsetup.class.php - message: '#^Property FormSetupItem\:\:\$setValueFromPostCallBack \(callable\) in empty\(\) is not falsy\.$#' identifier: empty.property count: 1 - path: ../../htdocs/core/class/html.formsetup.class.php + path: ../../../htdocs/core/class/html.formsetup.class.php - message: '#^Loose comparison using \!\= between 1 and ''1'' will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/core/class/html.formsms.class.php + path: ../../../htdocs/core/class/html.formsms.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/core/class/html.formsms.class.php + path: ../../../htdocs/core/class/html.formsms.class.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/html.formticket.class.php + path: ../../../htdocs/core/class/html.formticket.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/core/class/html.formticket.class.php + path: ../../../htdocs/core/class/html.formticket.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/html.formticket.class.php + path: ../../../htdocs/core/class/html.formticket.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/class/html.formticket.class.php + path: ../../../htdocs/core/class/html.formticket.class.php - message: '#^Property FormTicket\:\:\$withreadid \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/class/html.formticket.class.php + path: ../../../htdocs/core/class/html.formticket.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/class/html.formticket.class.php + path: ../../../htdocs/core/class/html.formticket.class.php - message: '#^Call to function is_object\(\) with mixed will always evaluate to false\.$#' identifier: function.impossibleType count: 2 - path: ../../htdocs/core/class/interfaces.class.php + path: ../../../htdocs/core/class/interfaces.class.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 4 - path: ../../htdocs/core/class/interfaces.class.php + path: ../../../htdocs/core/class/interfaces.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/class/interfaces.class.php + path: ../../../htdocs/core/class/interfaces.class.php - message: '#^Variable \$modName in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/class/interfaces.class.php + path: ../../../htdocs/core/class/interfaces.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_add expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_bind expects LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_delete expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_errno expects LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 9 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_errno expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_error expects LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 9 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_error expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 8 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_first_entry expects LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_first_entry expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_get_attributes expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_get_entries expects LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_get_option expects LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_get_values_len expects LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_mod_add expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_mod_del expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_mod_replace expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_rename expects LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_search expects array\|LDAP\\Connection, bool\|resource given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_search expects array\|LDAP\\Connection, resource\|true given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_set_option expects LDAP\\Connection\|null, bool\|resource given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#1 \$ldap of function ldap_unbind expects LDAP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/ldap.class.php + path: ../../../htdocs/core/class/ldap.class.php - message: '#^Parameter \#2 \$pere of method Menubase\:\:recur\(\) expects int, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/class/menubase.class.php + path: ../../../htdocs/core/class/menubase.class.php - message: '#^Property Menubase\:\:\$enabled \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/menubase.class.php + path: ../../../htdocs/core/class/menubase.class.php - message: '#^Property Menubase\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/menubase.class.php + path: ../../../htdocs/core/class/menubase.class.php - message: '#^Variable \$menutopid in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/class/menubase.class.php + path: ../../../htdocs/core/class/menubase.class.php - message: '#^Method Notify\:\:getNotificationsArray\(\) has parameter \$scope with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/class/notify.class.php + path: ../../../htdocs/core/class/notify.class.php - message: '#^Method Notify\:\:getNotificationsArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/class/notify.class.php + path: ../../../htdocs/core/class/notify.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/core/class/notify.class.php + path: ../../../htdocs/core/class/notify.class.php - message: '#^Property Notify\:\:\$arrayofnotifsupported has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/notify.class.php + path: ../../../htdocs/core/class/notify.class.php - message: '#^Call to function is_array\(\) with non\-empty\-array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/openid.class.php + path: ../../../htdocs/core/class/openid.class.php - message: '#^Parameter \#1 \$content of method SimpleOpenID\:\:HTML2OpenIDServer\(\) expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/openid.class.php + path: ../../../htdocs/core/class/openid.class.php - message: '#^Call to function is_object\(\) with XMLParser will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/rssparser.class.php + path: ../../../htdocs/core/class/rssparser.class.php - message: '#^Parameter \#1 \$str1 of method RssParser\:\:concat\(\) expects string, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/class/rssparser.class.php + path: ../../../htdocs/core/class/rssparser.class.php - message: '#^Property RssParser\:\:\$items has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/class/rssparser.class.php + path: ../../../htdocs/core/class/rssparser.class.php - message: '#^Comparison operation "\>\=" between int\<2, 4\> and 1 is always true\.$#' identifier: greaterOrEqual.alwaysTrue count: 1 - path: ../../htdocs/core/class/smtps.class.php + path: ../../../htdocs/core/class/smtps.class.php - message: '#^Property SMTPs\:\:\$_arySensitivity \(array\\) does not accept default value of type array\\.$#' identifier: property.defaultValue count: 1 - path: ../../htdocs/core/class/smtps.class.php + path: ../../../htdocs/core/class/smtps.class.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 1 - path: ../../htdocs/core/class/smtps.class.php + path: ../../../htdocs/core/class/smtps.class.php - message: '#^Call to function method_exists\(\) with \$this\(TimeSpent\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Call to function method_exists\(\) with \$this\(TimeSpent\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Call to function property_exists\(\) with TimeSpent and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Call to function property_exists\(\) with TimeSpent and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Call to function property_exists\(\) with TimeSpent and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Call to function property_exists\(\) with TimeSpent and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/class/timespent.class.php + path: ../../../htdocs/core/class/timespent.class.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 2 - path: ../../htdocs/core/class/translate.class.php + path: ../../../htdocs/core/class/translate.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 2 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^Comparison operation "\<" between 0\|1 and 0 is always false\.$#' identifier: smaller.alwaysFalse count: 2 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^PHPDoc tag @var with type DoliDB is not subtype of native type mixed\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 3 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^Variable \$moduleobj might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/class/utils.class.php + path: ../../../htdocs/core/class/utils.class.php - message: '#^Parameter \#1 \$table of static method Diff\:\:generatePartialDiff\(\) expects array\\}\>, array\\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/class/utils_diff.class.php + path: ../../../htdocs/core/class/utils_diff.class.php - message: '#^Cannot access property \$db on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/commonfieldsinexport.inc.php + path: ../../../htdocs/core/commonfieldsinexport.inc.php - message: '#^Cannot access property \$export_TypeFields_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinexport.inc.php + path: ../../../htdocs/core/commonfieldsinexport.inc.php - message: '#^Cannot access property \$export_entities_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinexport.inc.php + path: ../../../htdocs/core/commonfieldsinexport.inc.php - message: '#^Cannot access property \$export_fields_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinexport.inc.php + path: ../../../htdocs/core/commonfieldsinexport.inc.php - message: '#^Cannot access property \$export_help_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinexport.inc.php + path: ../../../htdocs/core/commonfieldsinexport.inc.php - message: '#^Variable \$r might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/commonfieldsinexport.inc.php + path: ../../../htdocs/core/commonfieldsinexport.inc.php - message: '#^Variable \$this might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/commonfieldsinexport.inc.php + path: ../../../htdocs/core/commonfieldsinexport.inc.php - message: '#^Cannot access property \$db on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/commonfieldsinimport.inc.php + path: ../../../htdocs/core/commonfieldsinimport.inc.php - message: '#^Cannot access property \$import_TypeFields_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinimport.inc.php + path: ../../../htdocs/core/commonfieldsinimport.inc.php - message: '#^Cannot access property \$import_entities_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinimport.inc.php + path: ../../../htdocs/core/commonfieldsinimport.inc.php - message: '#^Cannot access property \$import_fields_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinimport.inc.php + path: ../../../htdocs/core/commonfieldsinimport.inc.php - message: '#^Cannot access property \$import_help_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/commonfieldsinimport.inc.php + path: ../../../htdocs/core/commonfieldsinimport.inc.php - message: '#^Variable \$r might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/commonfieldsinimport.inc.php + path: ../../../htdocs/core/commonfieldsinimport.inc.php - message: '#^Variable \$this might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/commonfieldsinimport.inc.php + path: ../../../htdocs/core/commonfieldsinimport.inc.php - message: '#^Call to function is_array\(\) with non\-empty\-array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Comparison operation "\>" between 1 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 2 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$gval might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$page might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$search_graph might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$search_groupby might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$search_xaxis might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$search_yaxis might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$sortfield might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$sortorder might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Variable \$tabfamily might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/customreports.php + path: ../../../htdocs/core/customreports.php - message: '#^Constructor of class DoliDBMysqli has an unused parameter \$type\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/db/mysqli.class.php + path: ../../../htdocs/core/db/mysqli.class.php - message: '#^Parameter \#2 \$value of method mysqli\:\:options\(\) expects int\|string, false given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/db/mysqli.class.php + path: ../../../htdocs/core/db/mysqli.class.php - message: '#^Property DoliDBMysqli\:\:\$db \(mysqli\) in empty\(\) is not falsy\.$#' identifier: empty.property count: 1 - path: ../../htdocs/core/db/mysqli.class.php + path: ../../../htdocs/core/db/mysqli.class.php - message: '#^Variable \$disableforcecharset in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/db/mysqli.class.php + path: ../../../htdocs/core/db/mysqli.class.php - message: '#^Constructor of class DoliDBPgsql has an unused parameter \$type\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Parameter \#1 \$result of function pg_affected_rows expects PgSql\\Result, bool\|resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Parameter \#1 \$result of function pg_fetch_array expects PgSql\\Result, bool\|resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Parameter \#1 \$result of function pg_fetch_object expects PgSql\\Result, bool\|resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Parameter \#1 \$result of function pg_fetch_row expects PgSql\\Result, bool\|resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Parameter \#1 \$result of function pg_free_result expects PgSql\\Result, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Parameter \#1 \$result of function pg_num_rows expects PgSql\\Result, bool\|resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Parameter \#1 \$resultset of method DoliDBPgsql\:\:fetch_row\(\) expects resource, PgSql\\Result given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/db/pgsql.class.php + path: ../../../htdocs/core/db/pgsql.class.php - message: '#^Constructor of class DoliDBSqlite3 has an unused parameter \$type\.$#' identifier: constructor.unusedParameter count: 1 - path: ../../htdocs/core/db/sqlite3.class.php + path: ../../../htdocs/core/db/sqlite3.class.php - message: '#^Method DoliDBSqlite3\:\:getListOfCollation\(\) should return array\\|null but returns array\{array\{charset\: ''UTF\-8'', description\: ''UTF\-8''\}\}\.$#' identifier: return.type count: 1 - path: ../../htdocs/core/db/sqlite3.class.php + path: ../../../htdocs/core/db/sqlite3.class.php - message: '#^Cannot access property \$db on mixed\.$#' identifier: property.nonObject count: 3 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Cannot access property \$export_TypeFields_array on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Cannot access property \$export_entities_array on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Cannot access property \$export_fields_array on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Cannot access property \$export_special_array on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Variable \$r might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Variable \$this might not be defined\.$#' identifier: variable.undefined count: 10 - path: ../../htdocs/core/extrafieldsinexport.inc.php + path: ../../../htdocs/core/extrafieldsinexport.inc.php - message: '#^Cannot access property \$db on mixed\.$#' identifier: property.nonObject count: 3 - path: ../../htdocs/core/extrafieldsinimport.inc.php + path: ../../../htdocs/core/extrafieldsinimport.inc.php - message: '#^Cannot access property \$import_TypeFields_array on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/extrafieldsinimport.inc.php + path: ../../../htdocs/core/extrafieldsinimport.inc.php - message: '#^Cannot access property \$import_entities_array on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/extrafieldsinimport.inc.php + path: ../../../htdocs/core/extrafieldsinimport.inc.php - message: '#^Cannot access property \$import_fields_array on mixed\.$#' identifier: property.nonObject count: 2 - path: ../../htdocs/core/extrafieldsinimport.inc.php + path: ../../../htdocs/core/extrafieldsinimport.inc.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/extrafieldsinimport.inc.php + path: ../../../htdocs/core/extrafieldsinimport.inc.php - message: '#^Variable \$r might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/extrafieldsinimport.inc.php + path: ../../../htdocs/core/extrafieldsinimport.inc.php - message: '#^Variable \$this might not be defined\.$#' identifier: variable.undefined count: 9 - path: ../../htdocs/core/extrafieldsinimport.inc.php + path: ../../../htdocs/core/extrafieldsinimport.inc.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/filemanagerdol/browser/default/browser.php + path: ../../../htdocs/core/filemanagerdol/browser/default/browser.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/filemanagerdol/browser/default/browser.php + path: ../../../htdocs/core/filemanagerdol/browser/default/browser.php - message: '#^Variable \$_FILES in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/filemanagerdol/connectors/php/connector.lib.php + path: ../../../htdocs/core/filemanagerdol/connectors/php/connector.lib.php - message: '#^Variable \$_SERVER in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/filemanagerdol/connectors/php/connector.lib.php + path: ../../../htdocs/core/filemanagerdol/connectors/php/connector.lib.php - message: '#^Variable \$isImageValid in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/filemanagerdol/connectors/php/connector.lib.php + path: ../../../htdocs/core/filemanagerdol/connectors/php/connector.lib.php - message: '#^Variable \$Config might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/filemanagerdol/connectors/php/connector.php + path: ../../../htdocs/core/filemanagerdol/connectors/php/connector.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 1 - path: ../../htdocs/core/get_info.php + path: ../../../htdocs/core/get_info.php - message: '#^Variable \$var in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/lib/accounting.lib.php + path: ../../../htdocs/core/lib/accounting.lib.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/admin.lib.php + path: ../../../htdocs/core/lib/admin.lib.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 1 - path: ../../htdocs/core/lib/admin.lib.php + path: ../../../htdocs/core/lib/admin.lib.php - message: '#^Loose comparison using \!\= between ''llx_'' and ''llx_'' will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/core/lib/admin.lib.php + path: ../../../htdocs/core/lib/admin.lib.php - message: '#^Offset 1 on array\{string, non\-falsy\-string, string\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/core/lib/admin.lib.php + path: ../../../htdocs/core/lib/admin.lib.php - message: '#^Variable \$resarray might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/lib/admin.lib.php + path: ../../../htdocs/core/lib/admin.lib.php - message: '#^Variable \$strictw3c in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 13 - path: ../../htdocs/core/lib/admin.lib.php + path: ../../../htdocs/core/lib/admin.lib.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/core/lib/agenda.lib.php + path: ../../../htdocs/core/lib/agenda.lib.php - message: '#^Function ajax_constantonoff\(\) has parameter \$entity with no type specified\.$#' identifier: missingType.parameter count: 1 - path: ../../htdocs/core/lib/ajax.lib.php + path: ../../../htdocs/core/lib/ajax.lib.php - message: '#^Function ajax_constantonoff\(\) has parameter \$revertonoff with no type specified\.$#' identifier: missingType.parameter count: 1 - path: ../../htdocs/core/lib/ajax.lib.php + path: ../../../htdocs/core/lib/ajax.lib.php - message: '#^Function ajax_constantonoff\(\) has parameter \$strict with no type specified\.$#' identifier: missingType.parameter count: 1 - path: ../../htdocs/core/lib/ajax.lib.php + path: ../../../htdocs/core/lib/ajax.lib.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/lib/company.lib.php + path: ../../../htdocs/core/lib/company.lib.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/core/lib/company.lib.php + path: ../../../htdocs/core/lib/company.lib.php - message: '#^Loose comparison using \!\= between ''view'' and ''kanban'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/core/lib/company.lib.php + path: ../../../htdocs/core/lib/company.lib.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 4 - path: ../../htdocs/core/lib/company.lib.php + path: ../../../htdocs/core/lib/company.lib.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/lib/company.lib.php + path: ../../../htdocs/core/lib/company.lib.php - message: '#^Variable \$sql in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/company.lib.php + path: ../../../htdocs/core/lib/company.lib.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/core/lib/contact.lib.php + path: ../../../htdocs/core/lib/contact.lib.php - message: '#^Call to function method_exists\(\) with ''DateTimeZone'' and ''getOffset'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/date.lib.php + path: ../../../htdocs/core/lib/date.lib.php - message: '#^Function get_tz_array\(\) should return array\, string\> but returns array\{\-11\: ''Pacific/Pago_Pago'', \-10\: ''Pacific/Honolulu'', \-9\: ''America/Anchorage'', \-8\: ''America/Los_Angeles'', \-7\: ''America/Dawson_Creek'', \-6\: ''America/Chicago'', \-5\: ''America/Bogota'', \-4\: ''America/Asuncion'', \.\.\.\}\.$#' identifier: return.type count: 1 - path: ../../htdocs/core/lib/date.lib.php + path: ../../../htdocs/core/lib/date.lib.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/lib/emailing.lib.php + path: ../../../htdocs/core/lib/emailing.lib.php - message: '#^Parameter \#4 \$head of function complete_head_from_modules expects array\, array\{0\: array\{''//admin/confexped…'', mixed\}, 1\: array\{''//admin/expedition…'', mixed\}, 2\?\: array\{''//admin/delivery\.php'', mixed\}\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/expedition.lib.php + path: ../../../htdocs/core/lib/expedition.lib.php - message: '#^Call to function is_array\(\) with array\{file\: string, timestamp\: int\|false\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/files.lib.php + path: ../../../htdocs/core/lib/files.lib.php - message: '#^Call to function is_array\(\) with non\-empty\-list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/files.lib.php + path: ../../../htdocs/core/lib/files.lib.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/lib/files.lib.php + path: ../../../htdocs/core/lib/files.lib.php - message: '#^Loose comparison using \=\= between ''zst'' and ''zst'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/core/lib/files.lib.php + path: ../../../htdocs/core/lib/files.lib.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/core/lib/files.lib.php + path: ../../../htdocs/core/lib/files.lib.php - message: '#^PHPDoc tag @var with type array\ is not subtype of native type RecursiveIteratorIterator\\.$#' identifier: varTag.nativeType count: 2 - path: ../../htdocs/core/lib/files.lib.php + path: ../../../htdocs/core/lib/files.lib.php - message: '#^Strict comparison using \!\=\= between array\{file\: string, timestamp\: int\|false\} and null will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 1 - path: ../../htdocs/core/lib/files.lib.php + path: ../../../htdocs/core/lib/files.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_cdup expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_chdir expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_close expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_delete expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_get expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_mkdir expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_put expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Parameter \#1 \$ftp of function ftp_rmdir expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/ftp.lib.php + path: ../../../htdocs/core/lib/ftp.lib.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Call to function is_numeric\(\) with float will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Call to function is_object\(\) with User will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 24 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Comparison operation "\>" between int\<1, max\> and 0 is always true\.$#' identifier: greater.alwaysTrue count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Function dol_escape_js\(\) has no return type specified\.$#' identifier: missingType.return count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Function dol_escape_js\(\) has parameter \$noescapebackslashn with no type specified\.$#' identifier: missingType.parameter count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Instanceof between DOMDocument and DOMDocument will always evaluate to true\.$#' identifier: instanceof.alwaysTrue count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Instanceof between User and User will always evaluate to true\.$#' identifier: instanceof.alwaysTrue count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Offset ''list'' on array\{list\: array\{\}\}\|array\{list\: non\-empty\-array\\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Offset 1 on array\{string, non\-falsy\-string\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Offset 1 on array\{string, non\-falsy\-string\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Property CommonObject\:\:\$country \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Property CommonObject\:\:\$firstname \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Property CommonObject\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Property CommonObject\:\:\$lastname \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Property CommonObject\:\:\$multicurrency_code \(array\\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Property CommonObject\:\:\$multicurrency_total_ttc \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Property CommonObject\:\:\$state \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 8 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Variable \$TCompiledAttr in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^Variable \$paramname in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/functions.lib.php + path: ../../../htdocs/core/lib/functions.lib.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/lib/functions2.lib.php + path: ../../../htdocs/core/lib/functions2.lib.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/lib/functions2.lib.php + path: ../../../htdocs/core/lib/functions2.lib.php - message: '#^Function getURLContent\(\) should return array\{http_code\: int, content\: string, curl_error_no\: int, curl_error_msg\: string\} but returns array\{content\: bool\|string, curl_error_no\: int\\|int\<1, max\>, curl_error_msg\: string\}\|array\{http_code\?\: 400, content\?\: non\-falsy\-string\|true, curl_error_no\: '''', curl_error_msg\: ''''\}\|array\{url\: string, content_type\: string\|null, http_code\: int, header_size\: int, request_size\: int, filetime\: int, ssl_verify_result\: int, redirect_count\: int, \.\.\.\}\.$#' identifier: return.type count: 1 - path: ../../htdocs/core/lib/geturl.lib.php + path: ../../../htdocs/core/lib/geturl.lib.php - message: '#^Parameter \#3 \$value of function curl_setopt expects 0\|2, bool given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/lib/geturl.lib.php + path: ../../../htdocs/core/lib/geturl.lib.php - message: '#^Parameter \#3 \$value of function curl_setopt expects bool, int given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/core/lib/geturl.lib.php + path: ../../../htdocs/core/lib/geturl.lib.php - message: '#^Call to function function_exists\(\) with ''imagecreatefromgif''\|''imagecreatefromjpeg''\|''imagecreatefrompng''\|''imagecreatefromwbmp''\|''imagecreatefromwebp'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 3 - path: ../../htdocs/core/lib/images.lib.php + path: ../../../htdocs/core/lib/images.lib.php - message: '#^Variable \$extImg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/lib/images.lib.php + path: ../../../htdocs/core/lib/images.lib.php - message: '#^Loose comparison using \=\= between ''suppliers'' and ''fourn'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 3 - path: ../../htdocs/core/lib/invoice.lib.php + path: ../../../htdocs/core/lib/invoice.lib.php - message: '#^Loose comparison using \=\= between ''suppliers'' and ''suppliers'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 3 - path: ../../htdocs/core/lib/invoice.lib.php + path: ../../../htdocs/core/lib/invoice.lib.php - message: '#^Parameter \#1 \$array \(array\{mixed, mixed, mixed, mixed, mixed, non\-falsy\-string\}\) of array_values is already a list, call has no effect\.$#' identifier: arrayValues.list count: 1 - path: ../../htdocs/core/lib/invoice.lib.php + path: ../../../htdocs/core/lib/invoice.lib.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 3 - path: ../../htdocs/core/lib/invoice.lib.php + path: ../../../htdocs/core/lib/invoice.lib.php - message: '#^Variable \$sqlwhere in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/invoice2.lib.php + path: ../../../htdocs/core/lib/invoice2.lib.php - message: '#^Variable \$array in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/json.lib.php + path: ../../../htdocs/core/lib/json.lib.php - message: '#^Call to function array_key_exists\(\) with ''code'' and array\{rowid\: array\{type\: ''integer'', value\: 11, extra\: ''AUTO_INCREMENT''\}, code\: array\{type\: ''varchar'', value\: 255, null\: ''NOT NULL''\}, label\: array\{type\: ''varchar'', value\: 255, null\: ''NOT NULL''\}, position\: array\{type\: ''integer'', value\: 11, null\: ''NULL''\}, use_default\: array\{type\: ''varchar'', value\: 11, default\: ''1''\}, active\: array\{type\: ''integer'', value\: 3\}\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 4 - path: ../../htdocs/core/lib/modulebuilder.lib.php + path: ../../../htdocs/core/lib/modulebuilder.lib.php - message: '#^Call to function array_key_exists\(\) with ''label'' and array\{rowid\: array\{type\: ''integer'', value\: 11, extra\: ''AUTO_INCREMENT''\}, code\: array\{type\: ''varchar'', value\: 255, null\: ''NOT NULL''\}, label\: array\{type\: ''varchar'', value\: 255, null\: ''NOT NULL''\}, position\: array\{type\: ''integer'', value\: 11, null\: ''NULL''\}, use_default\: array\{type\: ''varchar'', value\: 11, default\: ''1''\}, active\: array\{type\: ''integer'', value\: 3\}\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 4 - path: ../../htdocs/core/lib/modulebuilder.lib.php + path: ../../../htdocs/core/lib/modulebuilder.lib.php - message: '#^Call to function array_key_exists\(\) with ''rowid'' and array\{rowid\: array\{type\: ''integer'', value\: 11, extra\: ''AUTO_INCREMENT''\}, code\: array\{type\: ''varchar'', value\: 255, null\: ''NOT NULL''\}, label\: array\{type\: ''varchar'', value\: 255, null\: ''NOT NULL''\}, position\: array\{type\: ''integer'', value\: 11, null\: ''NULL''\}, use_default\: array\{type\: ''varchar'', value\: 11, default\: ''1''\}, active\: array\{type\: ''integer'', value\: 3\}\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/modulebuilder.lib.php + path: ../../../htdocs/core/lib/modulebuilder.lib.php - message: '#^Call to function is_array\(\) with array\{\}\|array\{name\: string, key\: string, type\: string, label\: string, picot\?\: string, enabled\: int\<0, 1\>, notnull\: int\<0, 1\>, position\: int, \.\.\.\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/modulebuilder.lib.php + path: ../../../htdocs/core/lib/modulebuilder.lib.php - message: '#^Strict comparison using \!\=\= between string and false will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 2 - path: ../../htdocs/core/lib/modulebuilder.lib.php + path: ../../../htdocs/core/lib/modulebuilder.lib.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/core/lib/modulebuilder.lib.php + path: ../../../htdocs/core/lib/modulebuilder.lib.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 4 - path: ../../htdocs/core/lib/order.lib.php + path: ../../../htdocs/core/lib/order.lib.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/lib/order.lib.php + path: ../../../htdocs/core/lib/order.lib.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/lib/pdf.lib.php + path: ../../../htdocs/core/lib/pdf.lib.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 4 - path: ../../htdocs/core/lib/pdf.lib.php + path: ../../../htdocs/core/lib/pdf.lib.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 18 - path: ../../htdocs/core/lib/pdf.lib.php + path: ../../../htdocs/core/lib/pdf.lib.php - message: '#^Variable \$refListsTxt in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/pdf.lib.php + path: ../../../htdocs/core/lib/pdf.lib.php - message: '#^Call to function is_array\(\) with list\<\(int\|string\)\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/project.lib.php + path: ../../../htdocs/core/lib/project.lib.php - message: '#^Property Task\:\:\$progress \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/lib/project.lib.php + path: ../../../htdocs/core/lib/project.lib.php - message: '#^Variable \$progressCalculated in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/lib/project.lib.php + path: ../../../htdocs/core/lib/project.lib.php - message: '#^Call to function is_string\(\) with string will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/security.lib.php + path: ../../../htdocs/core/lib/security.lib.php - message: '#^Variable \$login in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/security2.lib.php + path: ../../../htdocs/core/lib/security2.lib.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/sendings.lib.php + path: ../../../htdocs/core/lib/sendings.lib.php - message: '#^Variable \$out in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/signature.lib.php + path: ../../../htdocs/core/lib/signature.lib.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 6 - path: ../../htdocs/core/lib/tax.lib.php + path: ../../../htdocs/core/lib/tax.lib.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/lib/ticket.lib.php + path: ../../../htdocs/core/lib/ticket.lib.php - message: '#^Variable \$butactionbg in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colorbackhmenu1 in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colorbacklineimpair1 in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colorbacklinepair1 in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colorbacklinepairchecked in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colorbacklinepairhover in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colorbacktitle1 in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colorbackvmenu1 in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colortextlink in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colortexttitle in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colortexttitlelink in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$colortexttitlenotab in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Variable \$textbutaction in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/lib/usergroups.lib.php + path: ../../../htdocs/core/lib/usergroups.lib.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/website.lib.php + path: ../../../htdocs/core/lib/website.lib.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/core/lib/website.lib.php + path: ../../../htdocs/core/lib/website.lib.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/lib/website.lib.php + path: ../../../htdocs/core/lib/website.lib.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/lib/website.lib.php + path: ../../../htdocs/core/lib/website.lib.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/lib/website.lib.php + path: ../../../htdocs/core/lib/website.lib.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/lib/website2.lib.php + path: ../../../htdocs/core/lib/website2.lib.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/lib/website2.lib.php + path: ../../../htdocs/core/lib/website2.lib.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/lib/xcal.lib.php + path: ../../../htdocs/core/lib/xcal.lib.php - message: '#^Loose comparison using \=\= between ''auto'' and ''auto'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/core/login/functions_dolibarr.php + path: ../../../htdocs/core/login/functions_dolibarr.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/login/functions_ldap.php + path: ../../../htdocs/core/login/functions_ldap.php - message: '#^Parameter \#1 \$ldap of function ldap_errno expects LDAP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/login/functions_ldap.php + path: ../../../htdocs/core/login/functions_ldap.php - message: '#^Parameter \#1 \$ldap of function ldap_error expects LDAP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/login/functions_ldap.php + path: ../../../htdocs/core/login/functions_ldap.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/auguria.lib.php + path: ../../../htdocs/core/menus/standard/auguria.lib.php - message: '#^Offset ''level'' on array\{url\: mixed\} in empty\(\) does not exist\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/core/menus/standard/auguria.lib.php + path: ../../../htdocs/core/menus/standard/auguria.lib.php - message: '#^Offset ''mainmenu'' on array\{url\: mixed\} in empty\(\) does not exist\.$#' identifier: empty.offset count: 2 - path: ../../htdocs/core/menus/standard/auguria.lib.php + path: ../../../htdocs/core/menus/standard/auguria.lib.php - message: '#^Offset ''prefix'' on array\{url\: mixed\} in empty\(\) does not exist\.$#' identifier: empty.offset count: 2 - path: ../../htdocs/core/menus/standard/auguria.lib.php + path: ../../../htdocs/core/menus/standard/auguria.lib.php - message: '#^Parameter \#8 \$menuval of function print_text_menu_entry_auguria expects array\{\}\|array\{rowid\: string, fk_menu\: string, langs\: string, enabled\: int\<0, 2\>, type\: string, fk_mainmenu\: string, fk_leftmenu\: string, url\: string, \.\.\.\}, array\{url\: string, titre\: string, enabled\: int\<0, 2\>, target\: string, mainmenu\: string, leftmenu\: string, position\: int, level\?\: int, \.\.\.\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/auguria.lib.php + path: ../../../htdocs/core/menus/standard/auguria.lib.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/core/menus/standard/auguria.lib.php + path: ../../../htdocs/core/menus/standard/auguria.lib.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/auguria.lib.php + path: ../../../htdocs/core/menus/standard/auguria.lib.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 4 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 6 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Left side of \|\| is always true\.$#' identifier: booleanOr.leftAlwaysTrue count: 4 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Loose comparison using \=\= between ''accountancy'' and ''accountancy'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 4 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Offset ''level'' on array\{url\: mixed\} in empty\(\) does not exist\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Offset ''mainmenu'' on array\{url\: mixed\} in empty\(\) does not exist\.$#' identifier: empty.offset count: 2 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Offset ''prefix'' on array\{url\: mixed\} in empty\(\) does not exist\.$#' identifier: empty.offset count: 2 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: 0\|1, perms\: 0\|1, module\: ''projet''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: 0\|1, perms\: bool, module\: ''facture\|supplier…''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: 0\|1, perms\: bool, module\: ''propal\|commande…''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: 1, perms\: 1, module\: ''''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''banque\|prelevement…''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''bom\|mrp''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''comptabilite…''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''hrm\|holiday…''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''product\|service''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''societe\|fournisseur''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: bool, module\: ''ticket…''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: bool, perms\: mixed, module\: ''adherent''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#2 \$menuentry of function isVisibleToUserType expects array\{enabled\: int\<0, 1\>, module\: string, perms\: string\}, array\{enabled\: true, perms\: mixed, module\: ''projet''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Parameter \#8 \$menuval of function print_text_menu_entry expects array\{\}\|array\{rowid\: string, fk_menu\: string, langs\: string, enabled\: int\<0, 2\>, type\: string, fk_mainmenu\: string, fk_leftmenu\: string, url\: string, \.\.\.\}, array\{url\: string, titre\: string, enabled\: int\<0, 2\>, target\: string, mainmenu\: string, leftmenu\: string, position\: int, level\?\: int, \.\.\.\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/eldy.lib.php + path: ../../../htdocs/core/menus/standard/eldy.lib.php - message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Loose comparison using \!\= between ''top'' and ''jmobile'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Loose comparison using \!\= between ''top'' and ''topnb'' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Loose comparison using \=\= between ''left'' and ''jmobile'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Loose comparison using \=\= between ''top'' and ''jmobile'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Variable \$noout in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 8 - path: ../../htdocs/core/menus/standard/empty.php + path: ../../../htdocs/core/menus/standard/empty.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/core/modules/DolibarrModules.class.php + path: ../../../htdocs/core/modules/DolibarrModules.class.php - message: '#^Offset ''entity'' on array\{data\: string, entity\: int\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/core/modules/DolibarrModules.class.php + path: ../../../htdocs/core/modules/DolibarrModules.class.php - message: '#^Property DolibarrModules\:\:\$dirs \(array\\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/DolibarrModules.class.php + path: ../../../htdocs/core/modules/DolibarrModules.class.php - message: '#^Property Menubase\:\:\$fk_mainmenu \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/DolibarrModules.class.php + path: ../../../htdocs/core/modules/DolibarrModules.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/core/modules/DolibarrModules.class.php + path: ../../../htdocs/core/modules/DolibarrModules.class.php - message: '#^Variable \$fulldir in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/modules/DolibarrModules.class.php + path: ../../../htdocs/core/modules/DolibarrModules.class.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/action/doc/pdf_standard_actions.class.php + path: ../../../htdocs/core/modules/action/doc/pdf_standard_actions.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/modules/action/doc/pdf_standard_actions.class.php + path: ../../../htdocs/core/modules/action/doc/pdf_standard_actions.class.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Asset given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php + path: ../../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php + path: ../../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php + path: ../../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php + path: ../../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php + path: ../../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php + path: ../../../htdocs/core/modules/asset/doc/doc_generic_asset_odt.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property pdf_standard_asset\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Variable \$carac_client_name might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php + path: ../../../htdocs/core/modules/asset/doc/pdf_standard_asset.modules.php - message: '#^Property mod_asset_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/asset/mod_asset_standard.php + path: ../../../htdocs/core/modules/asset/mod_asset_standard.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/bank/doc/pdf_ban.modules.php + path: ../../../htdocs/core/modules/bank/doc/pdf_ban.modules.php - message: '#^Loose comparison using \=\= between 1 and 1 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/core/modules/bank/doc/pdf_ban.modules.php + path: ../../../htdocs/core/modules/bank/doc/pdf_ban.modules.php - message: '#^Parameter \#3 \$tab_height of method pdf_ban\:\:_tableau\(\) expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/bank/doc/pdf_ban.modules.php + path: ../../../htdocs/core/modules/bank/doc/pdf_ban.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php + path: ../../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php - message: '#^Loose comparison using \=\= between 1 and 1 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php + path: ../../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php - message: '#^Parameter \#3 \$posy of method pdf_sepamandate\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php + path: ../../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php - message: '#^Parameter \#3 \$tab_height of method pdf_sepamandate\:\:_tableau\(\) expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php + path: ../../../htdocs/core/modules/bank/doc/pdf_sepamandate.modules.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/barcode/doc/phpbarcode.modules.php + path: ../../../htdocs/core/modules/barcode/doc/phpbarcode.modules.php - message: '#^Property modTcpdfbarcode\:\:\$is2d has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php + path: ../../../htdocs/core/modules/barcode/doc/tcpdfbarcode.modules.php - message: '#^Parameter \#2 \$type of method mod_barcode_product_standard\:\:literalBarcodeType\(\) expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/barcode/mod_barcode_product_standard.php + path: ../../../htdocs/core/modules/barcode/mod_barcode_product_standard.php - message: '#^Property mod_barcode_product_standard\:\:\$numbitcounter has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/barcode/mod_barcode_product_standard.php + path: ../../../htdocs/core/modules/barcode/mod_barcode_product_standard.php - message: '#^Property mod_barcode_product_standard\:\:\$searchcode has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/barcode/mod_barcode_product_standard.php + path: ../../../htdocs/core/modules/barcode/mod_barcode_product_standard.php - message: '#^Parameter \#2 \$type of method mod_barcode_thirdparty_standard\:\:literalBarcodeType\(\) expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/barcode/mod_barcode_thirdparty_standard.php + path: ../../../htdocs/core/modules/barcode/mod_barcode_thirdparty_standard.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, BOM given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php + path: ../../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php + path: ../../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php + path: ../../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php + path: ../../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php + path: ../../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php + path: ../../../htdocs/core/modules/bom/doc/doc_generic_bom_odt.modules.php - message: '#^Property mod_bom_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/bom/mod_bom_standard.php + path: ../../../htdocs/core/modules/bom/mod_bom_standard.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/cheque/doc/pdf_blochet.class.php + path: ../../../htdocs/core/modules/cheque/doc/pdf_blochet.class.php - message: '#^Property mod_chequereceipt_mint\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/cheque/mod_chequereceipt_mint.php + path: ../../../htdocs/core/modules/cheque/mod_chequereceipt_mint.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Commande given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php + path: ../../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php + path: ../../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php + path: ../../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php + path: ../../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php + path: ../../../htdocs/core/modules/commande/doc/doc_generic_order_odt.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php - message: '#^Parameter \#3 \$posy of method pdf_einstein\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php - message: '#^Parameter \#4 \$posy of method pdf_einstein\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php - message: '#^Property Commande\:\:\$availability \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_einstein.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Parameter \#3 \$posy of method pdf_eratosthene\:\:drawInfoTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Parameter \#4 \$posy of method pdf_eratosthene\:\:drawTotalTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property Commande\:\:\$availability \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\|int\<1, max\>, status\: false, title\: array\{textkey\: ''Photo'', label\: '' ''\}, content\: array\{padding\: array\{0, 0, 0, 0\}\}, border\-left\: false\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\|int\<1, max\>, status\: true, title\: array\{textkey\: ''Photo'', label\: '' ''\}, content\: array\{padding\: array\{0, 0, 0, 0\}\}, border\-left\: false\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\, status\: true, title\: array\{textkey\: ''PriceUHT''\}, border\-left\: true\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property pdf_eratosthene\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Variable \$carac_client_name might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Variable \$realpath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php + path: ../../../htdocs/core/modules/commande/doc/pdf_eratosthene.modules.php - message: '#^Property mod_commande_marbre\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/commande/mod_commande_marbre.php + path: ../../../htdocs/core/modules/commande/mod_commande_marbre.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Contrat given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php + path: ../../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php + path: ../../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php + path: ../../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php + path: ../../../htdocs/core/modules/contract/doc/doc_generic_contract_odt.modules.php - message: '#^Parameter \#3 \$tab_height of method pdf_strato\:\:tabSignature\(\) expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/contract/doc/pdf_strato.modules.php + path: ../../../htdocs/core/modules/contract/doc/pdf_strato.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/contract/doc/pdf_strato.modules.php + path: ../../../htdocs/core/modules/contract/doc/pdf_strato.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Parameter \#3 \$posy of method pdf_storm\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Parameter \#4 \$columnText of method CommonDocGenerator\:\:printStdColumnContent\(\) expects string, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Variable \$realpath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_storm.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php - message: '#^Parameter \#3 \$posy of method pdf_typhon\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php - message: '#^Property pdf_typhon\:\:\$posxcomm has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php - message: '#^Property pdf_typhon\:\:\$posxremainingqty has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php - message: '#^Property pdf_typhon\:\:\$posxweightvol has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php + path: ../../../htdocs/core/modules/delivery/doc/pdf_typhon.modules.php - message: '#^Property mod_delivery_jade\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/delivery/mod_delivery_jade.php + path: ../../../htdocs/core/modules/delivery/mod_delivery_jade.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/dons/html_cerfafr.modules.php + path: ../../../htdocs/core/modules/dons/html_cerfafr.modules.php - message: '#^Loose comparison using \!\= between 0 and '''' will always evaluate to true\.$#' identifier: notEqual.alwaysTrue count: 2 - path: ../../htdocs/core/modules/dons/html_cerfafr.modules.php + path: ../../../htdocs/core/modules/dons/html_cerfafr.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/dons/html_generic.modules.php + path: ../../../htdocs/core/modules/dons/html_generic.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php + path: ../../../htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php + path: ../../../htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php + path: ../../../htdocs/core/modules/expedition/doc/doc_generic_shipment_odt.modules.php - message: '#^Parameter \#4 \$columnText of method CommonDocGenerator\:\:printStdColumnContent\(\) expects string, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Parameter \#4 \$columnText of method CommonDocGenerator\:\:printStdColumnContent\(\) expects string, float\|int\\|int\<1, max\> given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Parameter \#4 \$posy of method pdf_espadon\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_espadon.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php - message: '#^Property pdf_merou\:\:\$destinataire has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php - message: '#^Property pdf_merou\:\:\$expediteur has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php - message: '#^Property pdf_merou\:\:\$livreur has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_merou.modules.php - message: '#^Parameter \#4 \$posy of method pdf_rouget\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_rouget.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_rouget.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/expedition/doc/pdf_rouget.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_rouget.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/expedition/doc/pdf_rouget.modules.php + path: ../../../htdocs/core/modules/expedition/doc/pdf_rouget.modules.php - message: '#^Property mod_expedition_safor\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expedition/mod_expedition_safor.php + path: ../../../htdocs/core/modules/expedition/mod_expedition_safor.php - message: '#^Parameter \#3 \$posy of method pdf_standard_expensereport\:\:tablePayments\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Parameter \#3 \$tab_height of method pdf_standard_expensereport\:\:_tableau\(\) expects int, float given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Property pdf_standard_expensereport\:\:\$postotalttc has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Property pdf_standard_expensereport\:\:\$posxcomment has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Property pdf_standard_expensereport\:\:\$posxpiece has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Property pdf_standard_expensereport\:\:\$posxprojet has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Property pdf_standard_expensereport\:\:\$posxtype has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 6 - path: ../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php + path: ../../../htdocs/core/modules/expensereport/doc/pdf_standard_expensereport.modules.php - message: '#^Property mod_expensereport_jade\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/expensereport/mod_expensereport_jade.php + path: ../../../htdocs/core/modules/expensereport/mod_expensereport_jade.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Facture given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php + path: ../../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php + path: ../../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php + path: ../../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php + path: ../../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php + path: ../../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php - message: '#^Variable \$array_propal_object in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php + path: ../../../htdocs/core/modules/facture/doc/doc_generic_invoice_odt.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 6 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Parameter \#3 \$posy of method pdf_crabe\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Parameter \#4 \$posy of method pdf_crabe\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Parameter \#5 \$heightforfooter of method pdf_crabe\:\:_tableau_versements\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Property CommonInvoice\:\:\$type \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_crabe.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 13 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Parameter \#1 \$a of method pdf_octopus\:\:sumSituation\(\) expects array\\|float\|int\>, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 7 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Parameter \#2 \$current_line of method pdf_octopus\:\:getInfosLineLastSituation\(\) expects FactureLigne, CommonInvoiceLine given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Parameter \#3 \$posy of method pdf_octopus\:\:drawInfoTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Parameter \#3 \$tab_height of method pdf_octopus\:\:_tableFirstPage\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Parameter \#3 \$tab_height of method pdf_octopus\:\:_tableau\(\) expects int, float given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Parameter \#4 \$posy of method pdf_octopus\:\:drawTotalTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property CommonInvoice\:\:\$type \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\, status\: true, title\: array\{textkey\: ''PriceUHT''\}, border\-left\: true\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Property pdf_octopus\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Variable \$hidetop in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Variable \$realpath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_octopus.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 14 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Comparison operation "\>" between int\<2, max\> and 1 is always true\.$#' identifier: greater.alwaysTrue count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Parameter \#3 \$posy of method pdf_sponge\:\:drawInfoTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Parameter \#4 \$posy of method pdf_sponge\:\:drawTotalTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property CommonInvoice\:\:\$type \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\, status\: true, title\: array\{textkey\: ''PriceUHT''\}, border\-left\: true\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property pdf_sponge\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Variable \$realpath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php + path: ../../../htdocs/core/modules/facture/doc/pdf_sponge.modules.php - message: '#^Property mod_facture_mars\:\:\$prefixcreditnote has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/facture/mod_facture_mars.php + path: ../../../htdocs/core/modules/facture/mod_facture_mars.php - message: '#^Property mod_facture_mars\:\:\$prefixdeposit has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/facture/mod_facture_mars.php + path: ../../../htdocs/core/modules/facture/mod_facture_mars.php - message: '#^Property mod_facture_mars\:\:\$prefixinvoice has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/facture/mod_facture_mars.php + path: ../../../htdocs/core/modules/facture/mod_facture_mars.php - message: '#^Property mod_facture_mars\:\:\$prefixreplacement has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/facture/mod_facture_mars.php + path: ../../../htdocs/core/modules/facture/mod_facture_mars.php - message: '#^Access to constant TYPE_NON on an unknown class Sprain\\SwissQrBill\\DataGroup\\Element\\PaymentReference\.$#' identifier: class.notFound count: 1 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Call to static method create\(\) on an unknown class Sprain\\SwissQrBill\\DataGroup\\Element\\AdditionalInformation\.$#' identifier: class.notFound count: 1 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Call to static method create\(\) on an unknown class Sprain\\SwissQrBill\\DataGroup\\Element\\CombinedAddress\.$#' identifier: class.notFound count: 2 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Call to static method create\(\) on an unknown class Sprain\\SwissQrBill\\DataGroup\\Element\\CreditorInformation\.$#' identifier: class.notFound count: 1 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Call to static method create\(\) on an unknown class Sprain\\SwissQrBill\\DataGroup\\Element\\PaymentAmountInformation\.$#' identifier: class.notFound count: 1 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Call to static method create\(\) on an unknown class Sprain\\SwissQrBill\\DataGroup\\Element\\PaymentReference\.$#' identifier: class.notFound count: 1 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Call to static method create\(\) on an unknown class Sprain\\SwissQrBill\\QrBill\.$#' identifier: class.notFound count: 1 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Instantiated class Sprain\\SwissQrBill\\PaymentPart\\Output\\TcPdfOutput\\TcPdfOutput not found\.$#' identifier: class.notFound count: 1 - path: ../../htdocs/core/modules/facture/modules_facture.php + path: ../../../htdocs/core/modules/facture/modules_facture.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php + path: ../../../htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php - message: '#^Property mod_pacific\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/fichinter/mod_pacific.php + path: ../../../htdocs/core/modules/fichinter/mod_pacific.php - message: '#^Variable \$max might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/fichinter/mod_pacific.php + path: ../../../htdocs/core/modules/fichinter/mod_pacific.php - message: '#^Parameter \#3 \$tab_height of method pdf_standard_evaluation\:\:_tableau\(\) expects int, float given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property pdf_standard_evaluation\:\:\$posxnotes has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property pdf_standard_evaluation\:\:\$posxpiece has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property pdf_standard_evaluation\:\:\$posxrankemp has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property pdf_standard_evaluation\:\:\$posxrequiredrank has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property pdf_standard_evaluation\:\:\$posxresult has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property pdf_standard_evaluation\:\:\$posxskill has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php + path: ../../../htdocs/core/modules/hrm/doc/pdf_standard_evaluation.modules.php - message: '#^Property mod_evaluation_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/hrm/mod_evaluation_standard.php + path: ../../../htdocs/core/modules/hrm/mod_evaluation_standard.php - message: '#^Call to function is_array\(\) with non\-empty\-list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Method ImportCsv\:\:import_read_record\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Property ImportCsv\:\:\$cacheconvert has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Property ImportCsv\:\:\$cachefieldtable has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Property ImportCsv\:\:\$nbinsert has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Property ImportCsv\:\:\$nbupdate has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Property ModeleImports\:\:\$errors \(array\\) does not accept array\\|string\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Property ModeleImports\:\:\$errors \(array\\) does not accept array\\|string\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Property ModeleImports\:\:\$warnings \(array\\) does not accept array\\|string\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Variable \$key might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^Variable \$where might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/import/import_csv.modules.php + path: ../../../htdocs/core/modules/import/import_csv.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Method ImportXlsx\:\:import_read_record\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property ImportXlsx\:\:\$cacheconvert has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property ImportXlsx\:\:\$cachefieldtable has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property ImportXlsx\:\:\$nbinsert has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property ImportXlsx\:\:\$nbupdate has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property ModeleImports\:\:\$errors \(array\\) does not accept array\\|string\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property ModeleImports\:\:\$errors \(array\\) does not accept array\\|string\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property ModeleImports\:\:\$warnings \(array\\) does not accept array\\|string\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Variable \$where might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/import/import_xlsx.modules.php + path: ../../../htdocs/core/modules/import/import_xlsx.modules.php - message: '#^Property mailing_contacts1\:\:\$require_admin has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/contacts1.modules.php + path: ../../../htdocs/core/modules/mailings/contacts1.modules.php - message: '#^Property mailing_contacts1\:\:\$require_module has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/contacts1.modules.php + path: ../../../htdocs/core/modules/mailings/contacts1.modules.php - message: '#^Property mailing_fraise\:\:\$require_admin has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/fraise.modules.php + path: ../../../htdocs/core/modules/mailings/fraise.modules.php - message: '#^Property mailing_fraise\:\:\$require_module has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/fraise.modules.php + path: ../../../htdocs/core/modules/mailings/fraise.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/mailings/modules_mailings.php + path: ../../../htdocs/core/modules/mailings/modules_mailings.php - message: '#^Comparison operation "\>" between 0 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/core/modules/mailings/modules_mailings.php + path: ../../../htdocs/core/modules/mailings/modules_mailings.php - message: '#^Loose comparison using \=\= between 0 and 2 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/modules/mailings/modules_mailings.php + path: ../../../htdocs/core/modules/mailings/modules_mailings.php - message: '#^Variable \$modName in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/modules/mailings/modules_mailings.php + path: ../../../htdocs/core/modules/mailings/modules_mailings.php - message: '#^Property mailing_xinputfile\:\:\$require_admin has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/xinputfile.modules.php + path: ../../../htdocs/core/modules/mailings/xinputfile.modules.php - message: '#^Property mailing_xinputfile\:\:\$require_module has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/xinputfile.modules.php + path: ../../../htdocs/core/modules/mailings/xinputfile.modules.php - message: '#^Property mailing_xinputuser\:\:\$require_admin has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/xinputuser.modules.php + path: ../../../htdocs/core/modules/mailings/xinputuser.modules.php - message: '#^Property mailing_xinputuser\:\:\$require_module has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mailings/xinputuser.modules.php + path: ../../../htdocs/core/modules/mailings/xinputuser.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/member/doc/doc_generic_member_odt.class.php + path: ../../../htdocs/core/modules/member/doc/doc_generic_member_odt.class.php - message: '#^Comparison operation "\>" between 1 and 0 is always true\.$#' identifier: greater.alwaysTrue count: 2 - path: ../../htdocs/core/modules/member/doc/pdf_standard_member.class.php + path: ../../../htdocs/core/modules/member/doc/pdf_standard_member.class.php - message: '#^Parameter \#6 \$epaisseur of method CommonStickerGenerator\:\:_Croix\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/member/doc/pdf_standard_member.class.php + path: ../../../htdocs/core/modules/member/doc/pdf_standard_member.class.php - message: '#^Property Adherent\:\:\$photo \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/member/doc/pdf_standard_member.class.php + path: ../../../htdocs/core/modules/member/doc/pdf_standard_member.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAccounting.class.php + path: ../../../htdocs/core/modules/modAccounting.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAccounting.class.php + path: ../../../htdocs/core/modules/modAccounting.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAccounting.class.php + path: ../../../htdocs/core/modules/modAccounting.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 4 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 15 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modAdherent.class.php + path: ../../../htdocs/core/modules/modAdherent.class.php - message: '#^Variable \$user in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/modules/modAgenda.class.php + path: ../../../htdocs/core/modules/modAgenda.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modCategorie.class.php + path: ../../../htdocs/core/modules/modCategorie.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modCategorie.class.php + path: ../../../htdocs/core/modules/modCategorie.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modCategorie.class.php + path: ../../../htdocs/core/modules/modCategorie.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modCategorie.class.php + path: ../../../htdocs/core/modules/modCategorie.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/modCategorie.class.php + path: ../../../htdocs/core/modules/modCategorie.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modCommande.class.php + path: ../../../htdocs/core/modules/modCommande.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modCommande.class.php + path: ../../../htdocs/core/modules/modCommande.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modCommande.class.php + path: ../../../htdocs/core/modules/modCommande.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/modCommande.class.php + path: ../../../htdocs/core/modules/modCommande.class.php - message: '#^Variable \$user in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/modules/modCommande.class.php + path: ../../../htdocs/core/modules/modCommande.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modContrat.class.php + path: ../../../htdocs/core/modules/modContrat.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modContrat.class.php + path: ../../../htdocs/core/modules/modContrat.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modContrat.class.php + path: ../../../htdocs/core/modules/modContrat.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/modContrat.class.php + path: ../../../htdocs/core/modules/modContrat.class.php - message: '#^Variable \$user in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/modules/modDeplacement.class.php + path: ../../../htdocs/core/modules/modDeplacement.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modDon.class.php + path: ../../../htdocs/core/modules/modDon.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modDon.class.php + path: ../../../htdocs/core/modules/modDon.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modDon.class.php + path: ../../../htdocs/core/modules/modDon.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modDon.class.php + path: ../../../htdocs/core/modules/modDon.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modDon.class.php + path: ../../../htdocs/core/modules/modDon.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modDon.class.php + path: ../../../htdocs/core/modules/modDon.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 6 - path: ../../htdocs/core/modules/modDon.class.php + path: ../../../htdocs/core/modules/modDon.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/modules/modEventOrganization.class.php + path: ../../../htdocs/core/modules/modEventOrganization.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 7 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Variable \$user in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/modules/modExpedition.class.php + path: ../../../htdocs/core/modules/modExpedition.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modExpenseReport.class.php + path: ../../../htdocs/core/modules/modExpenseReport.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modExpenseReport.class.php + path: ../../../htdocs/core/modules/modExpenseReport.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modExpenseReport.class.php + path: ../../../htdocs/core/modules/modExpenseReport.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 4 - path: ../../htdocs/core/modules/modExpenseReport.class.php + path: ../../../htdocs/core/modules/modExpenseReport.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFacture.class.php + path: ../../../htdocs/core/modules/modFacture.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFacture.class.php + path: ../../../htdocs/core/modules/modFacture.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFacture.class.php + path: ../../../htdocs/core/modules/modFacture.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/modFacture.class.php + path: ../../../htdocs/core/modules/modFacture.class.php - message: '#^Variable \$user in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/core/modules/modFacture.class.php + path: ../../../htdocs/core/modules/modFacture.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFicheinter.class.php + path: ../../../htdocs/core/modules/modFicheinter.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFicheinter.class.php + path: ../../../htdocs/core/modules/modFicheinter.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modFicheinter.class.php + path: ../../../htdocs/core/modules/modFicheinter.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modFournisseur.class.php + path: ../../../htdocs/core/modules/modFournisseur.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFournisseur.class.php + path: ../../../htdocs/core/modules/modFournisseur.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFournisseur.class.php + path: ../../../htdocs/core/modules/modFournisseur.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modFournisseur.class.php + path: ../../../htdocs/core/modules/modFournisseur.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 5 - path: ../../htdocs/core/modules/modFournisseur.class.php + path: ../../../htdocs/core/modules/modFournisseur.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modHoliday.class.php + path: ../../../htdocs/core/modules/modHoliday.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modHoliday.class.php + path: ../../../htdocs/core/modules/modHoliday.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modHoliday.class.php + path: ../../../htdocs/core/modules/modHoliday.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/modHoliday.class.php + path: ../../../htdocs/core/modules/modHoliday.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/modules/modKnowledgeManagement.class.php + path: ../../../htdocs/core/modules/modKnowledgeManagement.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/modLoan.class.php + path: ../../../htdocs/core/modules/modLoan.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modMailing.class.php + path: ../../../htdocs/core/modules/modMailing.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modMailing.class.php + path: ../../../htdocs/core/modules/modMailing.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/modules/modPartnership.class.php + path: ../../../htdocs/core/modules/modPartnership.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modPrelevement.class.php + path: ../../../htdocs/core/modules/modPrelevement.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modPrelevement.class.php + path: ../../../htdocs/core/modules/modPrelevement.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProduct.class.php + path: ../../../htdocs/core/modules/modProduct.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProduct.class.php + path: ../../../htdocs/core/modules/modProduct.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modProduct.class.php + path: ../../../htdocs/core/modules/modProduct.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProduct.class.php + path: ../../../htdocs/core/modules/modProduct.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProduct.class.php + path: ../../../htdocs/core/modules/modProduct.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProduct.class.php + path: ../../../htdocs/core/modules/modProduct.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProduct.class.php + path: ../../../htdocs/core/modules/modProduct.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProductBatch.class.php + path: ../../../htdocs/core/modules/modProductBatch.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProductBatch.class.php + path: ../../../htdocs/core/modules/modProductBatch.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modProductBatch.class.php + path: ../../../htdocs/core/modules/modProductBatch.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 7 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modProjet.class.php + path: ../../../htdocs/core/modules/modProjet.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modPropale.class.php + path: ../../../htdocs/core/modules/modPropale.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modPropale.class.php + path: ../../../htdocs/core/modules/modPropale.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modPropale.class.php + path: ../../../htdocs/core/modules/modPropale.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modPropale.class.php + path: ../../../htdocs/core/modules/modPropale.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modPropale.class.php + path: ../../../htdocs/core/modules/modPropale.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 5 - path: ../../htdocs/core/modules/modPropale.class.php + path: ../../../htdocs/core/modules/modPropale.class.php - message: '#^Variable \$user in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/modules/modPropale.class.php + path: ../../../htdocs/core/modules/modPropale.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modReception.class.php + path: ../../../htdocs/core/modules/modReception.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modReception.class.php + path: ../../../htdocs/core/modules/modReception.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modReception.class.php + path: ../../../htdocs/core/modules/modReception.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modReception.class.php + path: ../../../htdocs/core/modules/modReception.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 4 - path: ../../htdocs/core/modules/modReception.class.php + path: ../../../htdocs/core/modules/modReception.class.php - message: '#^Variable \$user in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/modules/modReception.class.php + path: ../../../htdocs/core/modules/modReception.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/modRecruitment.class.php + path: ../../../htdocs/core/modules/modRecruitment.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modResource.class.php + path: ../../../htdocs/core/modules/modResource.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/core/modules/modSalaries.class.php + path: ../../../htdocs/core/modules/modSalaries.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modService.class.php + path: ../../../htdocs/core/modules/modService.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modService.class.php + path: ../../../htdocs/core/modules/modService.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modService.class.php + path: ../../../htdocs/core/modules/modService.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modService.class.php + path: ../../../htdocs/core/modules/modService.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 5 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modSociete.class.php + path: ../../../htdocs/core/modules/modSociete.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 4 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$export_special_array \(array\\}\|string\>\>\) does not accept non\-empty\-array\\}\|string\>\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modStock.class.php + path: ../../../htdocs/core/modules/modStock.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/modSupplierProposal.class.php + path: ../../../htdocs/core/modules/modSupplierProposal.class.php - message: '#^Property DolibarrModules\:\:\$const \(array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\) does not accept non\-empty\-array\, 5\?\: string, 6\?\: int\<0, 1\>\}\>\.$#' identifier: assign.propertyType count: 3 - path: ../../htdocs/core/modules/modSupplierProposal.class.php + path: ../../../htdocs/core/modules/modSupplierProposal.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modTax.class.php + path: ../../../htdocs/core/modules/modTax.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modTax.class.php + path: ../../../htdocs/core/modules/modTax.class.php - message: '#^Property DolibarrModules\:\:\$export_permission \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modUser.class.php + path: ../../../htdocs/core/modules/modUser.class.php - message: '#^Property DolibarrModules\:\:\$import_convertvalue_array \(array\\>\) does not accept non\-empty\-array\\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/modUser.class.php + path: ../../../htdocs/core/modules/modUser.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/core/modules/modWebsite.class.php + path: ../../../htdocs/core/modules/modWebsite.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/modules/modWorkstation.class.php + path: ../../../htdocs/core/modules/modWorkstation.class.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php + path: ../../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php + path: ../../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php - message: '#^Property pdf_standard_movementstock\:\:\$posxdatemouv has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php + path: ../../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php - message: '#^Property pdf_standard_movementstock\:\:\$posxidref has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php + path: ../../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php - message: '#^Property pdf_standard_movementstock\:\:\$wref has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php + path: ../../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php - message: '#^Variable \$lastmovementdate might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php + path: ../../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php + path: ../../../htdocs/core/modules/movement/doc/pdf_standard_movementstock.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Mo given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php + path: ../../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php + path: ../../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php + path: ../../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php + path: ../../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php + path: ../../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php - message: '#^Property Mo\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php + path: ../../../htdocs/core/modules/mrp/doc/doc_generic_mo_odt.modules.php - message: '#^Left side of \|\| is always false\.$#' identifier: booleanOr.leftAlwaysFalse count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Parameter \#3 \$posy of method pdf_vinci\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Parameter \#4 \$columnText of method CommonDocGenerator\:\:printStdColumnContent\(\) expects string, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property Mo\:\:\$lines \(array\\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php + path: ../../../htdocs/core/modules/mrp/doc/pdf_vinci.modules.php - message: '#^Property mod_mo_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/mrp/mod_mo_standard.php + path: ../../../htdocs/core/modules/mrp/mod_mo_standard.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/modules/oauth/generic_oauthcallback.php + path: ../../../htdocs/core/modules/oauth/generic_oauthcallback.php - message: '#^Variable \$state might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/oauth/github_oauthcallback.php + path: ../../../htdocs/core/modules/oauth/github_oauthcallback.php - message: '#^Strict comparison using \=\=\= between null and null will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 2 - path: ../../htdocs/core/modules/oauth/stripelive_oauthcallback.php + path: ../../../htdocs/core/modules/oauth/stripelive_oauthcallback.php - message: '#^Property mod_payment_cicada\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/payment/mod_payment_cicada.php + path: ../../../htdocs/core/modules/payment/mod_payment_cicada.php - message: '#^Variable \$response might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/modules/printing/printgcp.modules.php + path: ../../../htdocs/core/modules/printing/printgcp.modules.php - message: '#^Variable \$token might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/modules/printing/printgcp.modules.php + path: ../../../htdocs/core/modules/printing/printgcp.modules.php - message: '#^Comparison operation "\>" between 1 and 0 is always true\.$#' identifier: greater.alwaysTrue count: 2 - path: ../../htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php - message: '#^Parameter \#6 \$epaisseur of method CommonStickerGenerator\:\:_Croix\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_standardlabel.class.php - message: '#^Comparison operation "\>" between 1 and 0 is always true\.$#' identifier: greater.alwaysTrue count: 2 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Parameter \#5 \$x of method pdf_tcpdflabel\:\:writeBarcode\(\) expects int, float given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Parameter \#7 \$w of method pdf_tcpdflabel\:\:writeBarcode\(\) expects int, float given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Parameter \#8 \$h of method pdf_tcpdflabel\:\:writeBarcode\(\) expects int, float given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Property pdf_tcpdflabel\:\:\$_align2d has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Property pdf_tcpdflabel\:\:\$_style1d has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Property pdf_tcpdflabel\:\:\$_style2d has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Property pdf_tcpdflabel\:\:\$_xres has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php + path: ../../../htdocs/core/modules/printsheet/doc/pdf_tcpdflabel.class.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Product given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php + path: ../../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php + path: ../../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php + path: ../../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php + path: ../../../htdocs/core/modules/product/doc/doc_generic_product_odt.modules.php - message: '#^Property Product\:\:\$weight_units \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/product/doc/pdf_standard.modules.php + path: ../../../htdocs/core/modules/product/doc/pdf_standard.modules.php - message: '#^Method ModeleProductCode\:\:liste_modeles\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/core/modules/product/modules_product.class.php + path: ../../../htdocs/core/modules/product/modules_product.class.php - message: '#^Property mod_lot_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/product_batch/mod_lot_standard.php + path: ../../../htdocs/core/modules/product_batch/mod_lot_standard.php - message: '#^Property mod_sn_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/product_batch/mod_sn_standard.php + path: ../../../htdocs/core/modules/product_batch/mod_sn_standard.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php + path: ../../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Project given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php + path: ../../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php - message: '#^Parameter \#1 \$object of method doc_generic_project_odt\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php + path: ../../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php - message: '#^Parameter \#2 \$array_to_fill of method CommonDocGenerator\:\:fill_substitutionarray_with_extrafields\(\) expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php + path: ../../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php + path: ../../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php + path: ../../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php - message: '#^Variable \$objectdetail might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php + path: ../../../htdocs/core/modules/project/doc/doc_generic_project_odt.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/project/doc/pdf_baleine.modules.php + path: ../../../htdocs/core/modules/project/doc/pdf_baleine.modules.php - message: '#^Comparison operation "\>\=" between int\<0, max\> and 0 is always true\.$#' identifier: greaterOrEqual.alwaysTrue count: 1 - path: ../../htdocs/core/modules/project/doc/pdf_beluga.modules.php + path: ../../../htdocs/core/modules/project/doc/pdf_beluga.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/project/doc/pdf_beluga.modules.php + path: ../../../htdocs/core/modules/project/doc/pdf_beluga.modules.php - message: '#^Loose comparison using \=\= between ''L'' and ''L'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/core/modules/project/doc/pdf_beluga.modules.php + path: ../../../htdocs/core/modules/project/doc/pdf_beluga.modules.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 2 - path: ../../htdocs/core/modules/project/doc/pdf_beluga.modules.php + path: ../../../htdocs/core/modules/project/doc/pdf_beluga.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/core/modules/project/doc/pdf_timespent.modules.php + path: ../../../htdocs/core/modules/project/doc/pdf_timespent.modules.php - message: '#^Property mod_project_simple\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/project/mod_project_simple.php + path: ../../../htdocs/core/modules/project/mod_project_simple.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Project\|Task given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Parameter \#1 \$task of method doc_generic_task_odt\:\:get_substitutionarray_tasks\(\) expects Task, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Parameter \#2 \$array_to_fill of method CommonDocGenerator\:\:fill_substitutionarray_with_extrafields\(\) expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Variable \$listlines might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Variable \$objectdetail might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php + path: ../../../htdocs/core/modules/project/task/doc/doc_generic_task_odt.modules.php - message: '#^Property mod_task_simple\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/project/task/mod_task_simple.php + path: ../../../htdocs/core/modules/project/task/mod_task_simple.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Propal given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php + path: ../../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php + path: ../../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php + path: ../../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php + path: ../../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php + path: ../../../htdocs/core/modules/propale/doc/doc_generic_proposal_odt.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Parameter \#3 \$posy of method pdf_azur\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Parameter \#4 \$posy of method pdf_azur\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Variable \$filetomerge_dir might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/modules/propale/doc/pdf_azur.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_azur.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 5 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Parameter \#3 \$posy of method pdf_cyan\:\:drawInfoTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Parameter \#4 \$posy of method pdf_cyan\:\:drawTotalTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\, status\: true, title\: array\{textkey\: ''PriceUHT''\}, border\-left\: true\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property pdf_cyan\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Variable \$filetomerge_dir might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php + path: ../../../htdocs/core/modules/propale/doc/pdf_cyan.modules.php - message: '#^Property mod_propale_marbre\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/propale/mod_propale_marbre.php + path: ../../../htdocs/core/modules/propale/mod_propale_marbre.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/rapport/pdf_paiement.class.php + path: ../../../htdocs/core/modules/rapport/pdf_paiement.class.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Reception given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php + path: ../../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php + path: ../../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php + path: ../../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php + path: ../../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php + path: ../../../htdocs/core/modules/reception/doc/doc_generic_reception_odt.modules.php - message: '#^Parameter \#4 \$posy of method pdf_squille\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/reception/doc/pdf_squille.modules.php + path: ../../../htdocs/core/modules/reception/doc/pdf_squille.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/reception/doc/pdf_squille.modules.php + path: ../../../htdocs/core/modules/reception/doc/pdf_squille.modules.php - message: '#^Property Reception\:\:\$trueWeight \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/reception/doc/pdf_squille.modules.php + path: ../../../htdocs/core/modules/reception/doc/pdf_squille.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/reception/doc/pdf_squille.modules.php + path: ../../../htdocs/core/modules/reception/doc/pdf_squille.modules.php - message: '#^Call to function is_array\(\) with array\, mixed\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/modules/societe/doc/doc_generic_odt.modules.php + path: ../../../htdocs/core/modules/societe/doc/doc_generic_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/societe/doc/doc_generic_odt.modules.php + path: ../../../htdocs/core/modules/societe/doc/doc_generic_odt.modules.php - message: '#^Variable \$contactstatic might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/modules/societe/doc/doc_generic_odt.modules.php + path: ../../../htdocs/core/modules/societe/doc/doc_generic_odt.modules.php - message: '#^Property mod_codeclient_monkey\:\:\$prefixcustomer has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codeclient_monkey.php + path: ../../../htdocs/core/modules/societe/mod_codeclient_monkey.php - message: '#^Property mod_codeclient_monkey\:\:\$prefixsupplier has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codeclient_monkey.php + path: ../../../htdocs/core/modules/societe/mod_codeclient_monkey.php - message: '#^Property mod_codecompta_aquarium\:\:\$position has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_aquarium.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_aquarium.php - message: '#^Property mod_codecompta_aquarium\:\:\$prefixcustomeraccountancycode has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_aquarium.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_aquarium.php - message: '#^Property mod_codecompta_aquarium\:\:\$prefixsupplieraccountancycode has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_aquarium.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_aquarium.php - message: '#^Comparison operation "\<\=" between int\<100, 999\> and 999 is always true\.$#' identifier: smallerOrEqual.alwaysTrue count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_digitaria.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_digitaria.php - message: '#^Property mod_codecompta_digitaria\:\:\$customeraccountancycodecharacternumber has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_digitaria.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_digitaria.php - message: '#^Property mod_codecompta_digitaria\:\:\$position has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_digitaria.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_digitaria.php - message: '#^Property mod_codecompta_digitaria\:\:\$supplieraccountancycodecharacternumber has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_digitaria.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_digitaria.php - message: '#^Variable \$a might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/modules/societe/mod_codecompta_digitaria.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_digitaria.php - message: '#^Variable \$thirdpartylabelexample might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/modules/societe/mod_codecompta_digitaria.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_digitaria.php - message: '#^Property mod_codecompta_panicum\:\:\$position has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/societe/mod_codecompta_panicum.php + path: ../../../htdocs/core/modules/societe/mod_codecompta_panicum.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, Entrepot given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php + path: ../../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php + path: ../../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php + path: ../../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php + path: ../../../htdocs/core/modules/stock/doc/doc_generic_stock_odt.modules.php - message: '#^Property pdf_standard_stock\:\:\$wref has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/stock/doc/pdf_standard_stock.modules.php + path: ../../../htdocs/core/modules/stock/doc/pdf_standard_stock.modules.php - message: '#^Variable \$lastmovementdate might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/stock/doc/pdf_standard_stock.modules.php + path: ../../../htdocs/core/modules/stock/doc/pdf_standard_stock.modules.php - message: '#^Variable \$pricemin might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/stock/doc/pdf_standard_stock.modules.php + path: ../../../htdocs/core/modules/stock/doc/pdf_standard_stock.modules.php - message: '#^Parameter \#4 \$posy of method pdf_eagle\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php - message: '#^Variable \$carac_emetteur_name might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle.modules.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Parameter \#4 \$posy of method pdf_eagle_proforma\:\:drawTotalTable\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\, status\: true, title\: array\{textkey\: ''PMPValueShort''\}, border\-left\: true\}\|array\{rank\: int, width\: float\|int, status\: bool, title\: array\{textkey\: string, label\: string, align\: string, padding\: array\{float, float, float, float\}\}, content\: array\{align\: string, padding\: array\{float, float, float, float\}\}\}\>\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Variable \$carac_emetteur_name might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Variable \$pmp might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Variable \$realpath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php + path: ../../../htdocs/core/modules/stocktransfer/doc/pdf_eagle_proforma.modules.php - message: '#^Property mod_stocktransfer_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php + path: ../../../htdocs/core/modules/stocktransfer/mod_stocktransfer_standard.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, FactureFournisseur given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php - message: '#^Variable \$objectref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/doc_generic_supplier_invoice_odt.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php - message: '#^Parameter \#4 \$posy of method pdf_canelle\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php - message: '#^Parameter \#5 \$heightforfooter of method pdf_canelle\:\:_tableau_versements\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php - message: '#^Property CommonObject\:\:\$multicurrency_tx \(array\\|float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php + path: ../../../htdocs/core/modules/supplier_invoice/doc/pdf_canelle.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, CommandeFournisseur given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php - message: '#^Variable \$objectref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/doc_generic_supplier_order_odt.modules.php - message: '#^Left side of \|\| is always false\.$#' identifier: booleanOr.leftAlwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Parameter \#3 \$posy of method pdf_cornas\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Parameter \#4 \$posy of method pdf_cornas\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommandeFournisseur\:\:\$multicurrency_tx \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_cornas.modules.php - message: '#^Left side of \|\| is always false\.$#' identifier: booleanOr.leftAlwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Parameter \#3 \$posy of method pdf_muscadet\:\:_tableau_info\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Parameter \#4 \$posy of method pdf_muscadet\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Property CommandeFournisseur\:\:\$multicurrency_tx \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php + path: ../../../htdocs/core/modules/supplier_order/doc/pdf_muscadet.modules.php - message: '#^Property mod_commande_fournisseur_muguet\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php + path: ../../../htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php - message: '#^Variable \$max might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php + path: ../../../htdocs/core/modules/supplier_order/mod_commande_fournisseur_muguet.php - message: '#^Parameter \#3 \$posy of method pdf_standard_supplierpayment\:\:_tableau_cheque\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php + path: ../../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php - message: '#^Parameter \#3 \$tab_height of method pdf_standard_supplierpayment\:\:_tableau\(\) expects int, float given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php + path: ../../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php - message: '#^Property pdf_standard_supplierpayment\:\:\$posxdate has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php + path: ../../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php - message: '#^Property pdf_standard_supplierpayment\:\:\$posxreffacture has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php + path: ../../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php - message: '#^Property pdf_standard_supplierpayment\:\:\$posxreffacturefourn has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php + path: ../../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php - message: '#^Property pdf_standard_supplierpayment\:\:\$posxtotalttc has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php + path: ../../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php - message: '#^Property pdf_standard_supplierpayment\:\:\$posxtype has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php + path: ../../../htdocs/core/modules/supplier_payment/doc/pdf_standard_supplierpayment.modules.php - message: '#^Property mod_supplier_payment_bronan\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php + path: ../../../htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php - message: '#^Parameter \#1 \$line of method CommonDocGenerator\:\:get_substitutionarray_lines\(\) expects CommonObjectLine, CommonObject\|stdClass given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/doc_generic_supplier_proposal_odt.modules.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 5 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php - message: '#^Parameter \#5 \$w of function pdf_writelinedesc expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php - message: '#^Property SupplierProposal\:\:\$multicurrency_tx \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_aurore.modules.php - message: '#^Left side of \|\| is always false\.$#' identifier: booleanOr.leftAlwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Parameter \#4 \$posy of method pdf_zenith\:\:_tableau_tot\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property CommonDocGenerator\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property SupplierProposal\:\:\$multicurrency_tx \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php + path: ../../../htdocs/core/modules/supplier_proposal/doc/pdf_zenith.modules.php - message: '#^Property mod_supplier_proposal_marbre\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php + path: ../../../htdocs/core/modules/supplier_proposal/mod_supplier_proposal_marbre.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php + path: ../../../htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php - message: '#^Variable \$contactobject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php + path: ../../../htdocs/core/modules/ticket/doc/doc_generic_ticket_odt.modules.php - message: '#^Property mod_ticket_simple\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/ticket/mod_ticket_simple.php + path: ../../../htdocs/core/modules/ticket/mod_ticket_simple.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php + path: ../../../htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php - message: '#^Variable \$contactobject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php + path: ../../../htdocs/core/modules/user/doc/doc_generic_user_odt.modules.php - message: '#^Call to function is_array\(\) with string will always evaluate to false\.$#' identifier: function.impossibleType count: 1 - path: ../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php + path: ../../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, UserGroup given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php + path: ../../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php + path: ../../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php + path: ../../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php + path: ../../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php - message: '#^Variable \$contactobject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php + path: ../../../htdocs/core/modules/usergroup/doc/doc_generic_usergroup_odt.modules.php - message: '#^Property mod_workstation_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/core/modules/workstation/mod_workstation_standard.php + path: ../../../htdocs/core/modules/workstation/mod_workstation_standard.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/core/multicompany_page.php + path: ../../../htdocs/core/multicompany_page.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/multicompany_page.php + path: ../../../htdocs/core/multicompany_page.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/multicompany_page.php + path: ../../../htdocs/core/multicompany_page.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/core/photos_resize.php + path: ../../../htdocs/core/photos_resize.php - message: '#^Variable \$dolibarr_main_data_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/photos_resize.php + path: ../../../htdocs/core/photos_resize.php - message: '#^Variable \$modulepart in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/photos_resize.php + path: ../../../htdocs/core/photos_resize.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/photos_resize.php + path: ../../../htdocs/core/photos_resize.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/core/search_page.php + path: ../../../htdocs/core/search_page.php - message: '#^Loose comparison using \=\= between 1 and 2 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/core/search_page.php + path: ../../../htdocs/core/search_page.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/core/search_page.php + path: ../../../htdocs/core/search_page.php - message: '#^Variable \$type2label might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/admin_extrafields_edit.tpl.php + path: ../../../htdocs/core/tpl/admin_extrafields_edit.tpl.php - message: '#^Variable \$type2label might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/admin_extrafields_view.tpl.php + path: ../../../htdocs/core/tpl/admin_extrafields_view.tpl.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/advtarget.tpl.php + path: ../../../htdocs/core/tpl/advtarget.tpl.php - message: '#^Property CommonObject\:\:\$lines \(array\\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/tpl/ajaxrow.tpl.php + path: ../../../htdocs/core/tpl/ajaxrow.tpl.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/bloc_comment.tpl.php + path: ../../../htdocs/core/tpl/bloc_comment.tpl.php - message: '#^Variable \$idcomment might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/tpl/bloc_comment.tpl.php + path: ../../../htdocs/core/tpl/bloc_comment.tpl.php - message: '#^Variable \$title might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/bloc_showhide.tpl.php + path: ../../../htdocs/core/tpl/bloc_showhide.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 12 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$defaulttopic might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$diroutput might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$file might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$hidedesc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$hidedetails might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$hideref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$hookmanager might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$modelmail might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 36 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/card_presend.tpl.php + path: ../../../htdocs/core/tpl/card_presend.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/commonfields_edit.tpl.php + path: ../../../htdocs/core/tpl/commonfields_edit.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/commonfields_view.tpl.php + path: ../../../htdocs/core/tpl/commonfields_view.tpl.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/tpl/contacts.tpl.php + path: ../../../htdocs/core/tpl/contacts.tpl.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/tpl/contacts.tpl.php + path: ../../../htdocs/core/tpl/contacts.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/contacts.tpl.php + path: ../../../htdocs/core/tpl/contacts.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/contacts.tpl.php + path: ../../../htdocs/core/tpl/contacts.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/contacts.tpl.php + path: ../../../htdocs/core/tpl/contacts.tpl.php - message: '#^Variable \$hookmanager might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/contacts.tpl.php + path: ../../../htdocs/core/tpl/contacts.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$filearray might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$modulepart might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$permissiontoadd might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$sortfield might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$sortorder might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/document_actions_post_headers.tpl.php + path: ../../../htdocs/core/tpl/document_actions_post_headers.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_array_fields.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_array_fields.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php - message: '#^Variable \$obj might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php - message: '#^Variable \$totalarray might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_print_fields.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_input.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_input.tpl.php - message: '#^Variable \$extrafields might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/extrafields_list_search_param.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_param.tpl.php - message: '#^Variable \$extrafieldsobjectkey might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/extrafields_list_search_param.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_param.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_param.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_param.tpl.php - message: '#^Variable \$param might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/core/tpl/extrafields_list_search_param.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_param.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 8 - path: ../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php - message: '#^Variable \$extrafields might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_sql.tpl.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_title.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_title.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_title.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_title.tpl.php - message: '#^Variable \$param might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_title.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_title.tpl.php - message: '#^Variable \$sortfield might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_title.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_title.tpl.php - message: '#^Variable \$sortorder might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/extrafields_list_search_title.tpl.php + path: ../../../htdocs/core/tpl/extrafields_list_search_title.tpl.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/core/tpl/extrafields_view.tpl.php + path: ../../../htdocs/core/tpl/extrafields_view.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/extrafields_view.tpl.php + path: ../../../htdocs/core/tpl/extrafields_view.tpl.php - message: '#^Variable \$hookmanager might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/extrafields_view.tpl.php + path: ../../../htdocs/core/tpl/extrafields_view.tpl.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/core/tpl/filemanager.tpl.php + path: ../../../htdocs/core/tpl/filemanager.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/tpl/filemanager.tpl.php + path: ../../../htdocs/core/tpl/filemanager.tpl.php - message: '#^Variable \$ecmdir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/filemanager.tpl.php + path: ../../../htdocs/core/tpl/filemanager.tpl.php - message: '#^Variable \$filepathnoext might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/filemanager.tpl.php + path: ../../../htdocs/core/tpl/filemanager.tpl.php - message: '#^Variable \$module in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/core/tpl/filemanager.tpl.php + path: ../../../htdocs/core/tpl/filemanager.tpl.php - message: '#^Variable \$pageid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/filemanager.tpl.php + path: ../../../htdocs/core/tpl/filemanager.tpl.php - message: '#^Variable \$websitekey might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/filemanager.tpl.php + path: ../../../htdocs/core/tpl/filemanager.tpl.php - message: '#^Variable \$showlinktoai might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/formlayoutai.tpl.php + path: ../../../htdocs/core/tpl/formlayoutai.tpl.php - message: '#^Variable \$showlinktoailabel might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/formlayoutai.tpl.php + path: ../../../htdocs/core/tpl/formlayoutai.tpl.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/list_print_subtotal.tpl.php + path: ../../../htdocs/core/tpl/list_print_subtotal.tpl.php - message: '#^Variable \$limit might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/list_print_total.tpl.php + path: ../../../htdocs/core/tpl/list_print_total.tpl.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/list_print_total.tpl.php + path: ../../../htdocs/core/tpl/list_print_total.tpl.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/list_print_total.tpl.php + path: ../../../htdocs/core/tpl/list_print_total.tpl.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Variable \$backtopage might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Variable \$filterabsolutediscount might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Variable \$filtercreditnote might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Variable \$resteapayer might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Variable \$thirdparty might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/core/tpl/object_discounts.tpl.php + path: ../../../htdocs/core/tpl/object_discounts.tpl.php - message: '#^Left side of \|\| is always true\.$#' identifier: booleanOr.leftAlwaysTrue count: 1 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$buyer might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$date_end_prefill might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$date_start_prefill might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$seller might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$type_tva might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$usehm might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/objectline_create.tpl.php + path: ../../../htdocs/core/tpl/objectline_create.tpl.php - message: '#^Variable \$buyer might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/objectline_edit.tpl.php + path: ../../../htdocs/core/tpl/objectline_edit.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/tpl/objectline_edit.tpl.php + path: ../../../htdocs/core/tpl/objectline_edit.tpl.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/objectline_edit.tpl.php + path: ../../../htdocs/core/tpl/objectline_edit.tpl.php - message: '#^Variable \$seller might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/objectline_edit.tpl.php + path: ../../../htdocs/core/tpl/objectline_edit.tpl.php - message: '#^Variable \$var might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/objectline_edit.tpl.php + path: ../../../htdocs/core/tpl/objectline_edit.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/objectline_title.tpl.php + path: ../../../htdocs/core/tpl/objectline_title.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/objectline_title.tpl.php + path: ../../../htdocs/core/tpl/objectline_title.tpl.php - message: '#^Variable \$outputalsopricetotalwithtax might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/objectline_title.tpl.php + path: ../../../htdocs/core/tpl/objectline_title.tpl.php - message: '#^Variable \$usemargins might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/objectline_title.tpl.php + path: ../../../htdocs/core/tpl/objectline_title.tpl.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/core/tpl/objectline_view.tpl.php - message: '#^Variable \$objp might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/core/tpl/objectline_view.tpl.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/core/tpl/objectlinked_lineimport.tpl.php + path: ../../../htdocs/core/tpl/objectlinked_lineimport.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/tpl/objectlinked_lineimport.tpl.php + path: ../../../htdocs/core/tpl/objectlinked_lineimport.tpl.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/tpl/originproductline.tpl.php + path: ../../../htdocs/core/tpl/originproductline.tpl.php - message: '#^Variable \$shippingline might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php + path: ../../../htdocs/core/triggers/interface_20_modWorkflow_WorkflowManager.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php + path: ../../../htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php - message: '#^Property CommonObject\:\:\$sendtoid \(array\\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php + path: ../../../htdocs/core/triggers/interface_50_modAgenda_ActionsAuto.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/triggers/interface_50_modEventOrganization_EventOrganization.class.php + path: ../../../htdocs/core/triggers/interface_50_modEventOrganization_EventOrganization.class.php - message: '#^Property Conf\:\:\$notification \(stdClass\) in empty\(\) is not falsy\.$#' identifier: empty.property count: 1 - path: ../../htdocs/core/triggers/interface_50_modNotification_Notification.class.php + path: ../../../htdocs/core/triggers/interface_50_modNotification_Notification.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php + path: ../../../htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php - message: '#^Variable \$old_MAIN_MAIL_AUTOCOPY_TO might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php + path: ../../../htdocs/core/triggers/interface_50_modTicket_TicketEmail.class.php - message: '#^Call to function method_exists\(\) with Contact and ''getContactRoles'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php + path: ../../../htdocs/core/triggers/interface_90_modSociete_ContactRoles.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/triggers/interface_95_modWebhook_WebhookTriggers.class.php + path: ../../../htdocs/core/triggers/interface_95_modWebhook_WebhookTriggers.class.php - message: '#^Call to function is_null\(\) with null will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 4 - path: ../../htdocs/core/website.inc.php + path: ../../../htdocs/core/website.inc.php - message: '#^Call to function is_object\(\) with WebsitePage will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/core/website.inc.php + path: ../../../htdocs/core/website.inc.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/core/website.inc.php + path: ../../../htdocs/core/website.inc.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/core/website.inc.php + path: ../../../htdocs/core/website.inc.php - message: '#^Variable \$dolibarr_main_db_type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/core/website.inc.php + path: ../../../htdocs/core/website.inc.php - message: '#^Variable \$hookmanager might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/website.inc.php + path: ../../../htdocs/core/website.inc.php - message: '#^Variable \$websitekey might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/core/website.inc.php + path: ../../../htdocs/core/website.inc.php - message: '#^Loose comparison using \=\= between 1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/cron/card.php + path: ../../../htdocs/cron/card.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/cron/card.php + path: ../../../htdocs/cron/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/cron/card.php + path: ../../../htdocs/cron/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 5 - path: ../../htdocs/cron/card.php + path: ../../../htdocs/cron/card.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/cron/card.php + path: ../../../htdocs/cron/card.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$command \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$dateend \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$datenextrun \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$datestart \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$email_alert \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$frequency \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$jobtype \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$lastoutput \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$lastresult \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$libname \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$maxrun \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$nbrun \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$processing \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$test \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Property Cronjob\:\:\$unitfrequency \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/cron/class/cronjob.class.php + path: ../../../htdocs/cron/class/cronjob.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 10 - path: ../../htdocs/cron/list.php + path: ../../../htdocs/cron/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/cron/list.php + path: ../../../htdocs/cron/list.php - message: '#^Variable \$filter might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/cron/list.php + path: ../../../htdocs/cron/list.php - message: '#^Variable \$texttoshow might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/cron/list.php + path: ../../../htdocs/cron/list.php - message: '#^Offset ''css'' on array\{css\: ''minwidth200'', picto\: mixed\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/datapolicy/admin/setup.php + path: ../../../htdocs/datapolicy/admin/setup.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 3 - path: ../../htdocs/datapolicy/class/datapolicy.class.php + path: ../../../htdocs/datapolicy/class/datapolicy.class.php - message: '#^Loose comparison using \=\= between ''anonymize'' and ''anonymize'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/datapolicy/class/datapolicycron.class.php + path: ../../../htdocs/datapolicy/class/datapolicycron.class.php - message: '#^Loose comparison using \=\= between ''anonymize'' and ''delete'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/datapolicy/class/datapolicycron.class.php + path: ../../../htdocs/datapolicy/class/datapolicycron.class.php - message: '#^Method CdavLib\:\:getFullCalendarObjects\(\) should return array\\> but returns list\\>\.$#' identifier: return.type count: 1 - path: ../../htdocs/dav/dav.class.php + path: ../../../htdocs/dav/dav.class.php - message: '#^Variable \$baseUri in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/dav/fileserver.php + path: ../../../htdocs/dav/fileserver.php - message: '#^Parameter \#1 \$callback of function set_error_handler expects \(callable\(int, string, string, int\)\: bool\)\|null, array\{\$this\(PhpCollector\), ''errorHandler''\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/debugbar/class/DataCollector/DolPhpCollector.php + path: ../../../htdocs/debugbar/class/DataCollector/DolPhpCollector.php - message: '#^Parameter \#2 \$resql of method TraceableDB\:\:endTracing\(\) expects string, bool\|mysqli_result\|resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/debugbar/class/TraceableDB.php + path: ../../../htdocs/debugbar/class/TraceableDB.php - message: '#^Parameter \#1 \$callback of function spl_autoload_register expects \(callable\(string\)\: void\)\|null, Closure\(mixed\)\: bool given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/debugbar/class/autoloader.php + path: ../../../htdocs/debugbar/class/autoloader.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/delivery/card.php + path: ../../../htdocs/delivery/card.php - message: '#^Variable \$arrayoptions might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/delivery/card.php + path: ../../../htdocs/delivery/card.php - message: '#^Variable \$hidedesc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/delivery/card.php + path: ../../../htdocs/delivery/card.php - message: '#^Variable \$hidedetails might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/delivery/card.php + path: ../../../htdocs/delivery/card.php - message: '#^Variable \$hideref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/delivery/card.php + path: ../../../htdocs/delivery/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/delivery/card.php + path: ../../../htdocs/delivery/card.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/delivery/card.php + path: ../../../htdocs/delivery/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/delivery/class/delivery.class.php + path: ../../../htdocs/delivery/class/delivery.class.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/delivery/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/delivery/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/delivery/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/delivery/tpl/linkedobjectblock.tpl.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/document.php + path: ../../../htdocs/document.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/document.php + path: ../../../htdocs/document.php - message: '#^Method Donations\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Method Donations\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Method Donations\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Method Donations\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Method Donations\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Method Donations\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Property Donations\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/don/class/api_donations.class.php + path: ../../../htdocs/don/class/api_donations.class.php - message: '#^Call to function property_exists\(\) with \$this\(Don\) and ''societe'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/don/class/don.class.php + path: ../../../htdocs/don/class/don.class.php - message: '#^Property Don\:\:\$societe \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/don/class/don.class.php + path: ../../../htdocs/don/class/don.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 5 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Property PaymentDonation\:\:\$amount \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Property PaymentDonation\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Property PaymentDonation\:\:\$fk_donation \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Property PaymentDonation\:\:\$fk_typepayment \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Property PaymentDonation\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Property PaymentDonation\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Property PaymentDonation\:\:\$num_payment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 2 - path: ../../htdocs/don/class/paymentdonation.class.php + path: ../../../htdocs/don/class/paymentdonation.class.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/document.php + path: ../../../htdocs/don/document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/document.php + path: ../../../htdocs/don/document.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/index.php + path: ../../../htdocs/don/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/index.php + path: ../../../htdocs/don/index.php - message: '#^Variable \$badgeStatus6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/index.php + path: ../../../htdocs/don/index.php - message: '#^Variable \$badgeStatus9 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/index.php + path: ../../../htdocs/don/index.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/info.php + path: ../../../htdocs/don/info.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/don/list.php + path: ../../../htdocs/don/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/don/list.php + path: ../../../htdocs/don/list.php - message: '#^Variable \$projectstatic might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/don/list.php + path: ../../../htdocs/don/list.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/note.php + path: ../../../htdocs/don/note.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/don/paiement/list.php + path: ../../../htdocs/don/paiement/list.php - message: '#^Left side of \|\| is always false\.$#' identifier: booleanOr.leftAlwaysFalse count: 1 - path: ../../htdocs/don/paiement/list.php + path: ../../../htdocs/don/paiement/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/don/paiement/list.php + path: ../../../htdocs/don/paiement/list.php - message: '#^Variable \$arrayofselected might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/paiement/list.php + path: ../../../htdocs/don/paiement/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/don/paiement/list.php + path: ../../../htdocs/don/paiement/list.php - message: '#^Variable \$morecss might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/paiement/list.php + path: ../../../htdocs/don/paiement/list.php - message: '#^Variable \$morejs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/paiement/list.php + path: ../../../htdocs/don/paiement/list.php - message: '#^Variable \$outputlangs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/payment/card.php + path: ../../../htdocs/don/payment/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/don/payment/payment.php + path: ../../../htdocs/don/payment/payment.php - message: '#^Variable \$sumpaid might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/don/payment/payment.php + path: ../../../htdocs/don/payment/payment.php - message: '#^Variable \$objectlink might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/don/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/don/tpl/linkedobjectblock.tpl.php - message: '#^Property EcmFiles\:\:\$acl \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$cover \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$date_c \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$date_m \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$extraparams \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$filename \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$filepath \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$fk_user_c \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$fk_user_m \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$fullpath_orig \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$gen_or_uploaded \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$keywords \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$position \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$share \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$src_object_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Property EcmFiles\:\:\$src_object_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ecm/class/ecmfiles.class.php + path: ../../../htdocs/ecm/class/ecmfiles.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/ecm/dir_add_card.php + path: ../../../htdocs/ecm/dir_add_card.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ecm/dir_add_card.php + path: ../../../htdocs/ecm/dir_add_card.php - message: '#^Variable \$extrafields might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ecm/dir_card.php + path: ../../../htdocs/ecm/dir_card.php - message: '#^Variable \$oldlabel might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ecm/dir_card.php + path: ../../../htdocs/ecm/dir_card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/ecm/file_card.php + path: ../../../htdocs/ecm/file_card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/ecm/file_card.php + path: ../../../htdocs/ecm/file_card.php - message: '#^Parameter \#1 \$object of function ecm_file_prepare_head expects EcmFiles, CommonObject given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/ecm/file_card.php + path: ../../../htdocs/ecm/file_card.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/ecm/file_card.php + path: ../../../htdocs/ecm/file_card.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/ecm/file_card.php + path: ../../../htdocs/ecm/file_card.php - message: '#^Variable \$module might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ecm/file_card.php + path: ../../../htdocs/ecm/file_card.php - message: '#^Variable \$relativepath might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ecm/index.php + path: ../../../htdocs/ecm/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/ecm/index_medias.php + path: ../../../htdocs/ecm/index_medias.php - message: '#^Variable \$bc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ecm/search.php + path: ../../../htdocs/ecm/search.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ecm/tpl/enablefiletreeajax.tpl.php + path: ../../../htdocs/ecm/tpl/enablefiletreeajax.tpl.php - message: '#^Variable \$param might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ecm/tpl/enablefiletreeajax.tpl.php + path: ../../../htdocs/ecm/tpl/enablefiletreeajax.tpl.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Call to function is_null\(\) with null will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Comparison operation "\>" between 0 and 1000 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Parameter \#2 \$message_num of function imap_body expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Parameter \#2 \$message_num of function imap_fetchbody expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Parameter \#2 \$message_num of function imap_fetchstructure expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Parameter \#4 \$partno of method EmailCollector\:\:getpart\(\) expects string, \(float\|int\) given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Strict comparison using \!\=\= between IMAP\\Connection\|true and false will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 16 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/emailcollector/class/emailcollector.class.php + path: ../../../htdocs/emailcollector/class/emailcollector.class.php - message: '#^Call to function method_exists\(\) with \$this\(ConferenceOrBooth\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Call to function method_exists\(\) with \$this\(ConferenceOrBooth\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Call to function property_exists\(\) with \$this\(ConferenceOrBooth\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Call to function property_exists\(\) with \$this\(ConferenceOrBooth\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Method ConferenceOrBooth\:\:fetchAll\(\) has parameter \$filter with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Method ConferenceOrBooth\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Property ConferenceOrBooth\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/class/conferenceorbooth.class.php + path: ../../../htdocs/eventorganization/class/conferenceorbooth.class.php - message: '#^Call to function property_exists\(\) with \$this\(ConferenceOrBoothAttendee\) and ''fk_soc'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Call to function property_exists\(\) with ConferenceOrBoothAttendee and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Call to function property_exists\(\) with ConferenceOrBoothAttendee and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Call to function property_exists\(\) with ConferenceOrBoothAttendee and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Call to function property_exists\(\) with ConferenceOrBoothAttendee and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Property ConferenceOrBoothAttendee\:\:\$lastname \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Property ConferenceOrBoothAttendee\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/class/conferenceorboothattendee.class.php + path: ../../../htdocs/eventorganization/class/conferenceorboothattendee.class.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_card.php + path: ../../../htdocs/eventorganization/conferenceorbooth_card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_card.php + path: ../../../htdocs/eventorganization/conferenceorbooth_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_card.php + path: ../../../htdocs/eventorganization/conferenceorbooth_card.php - message: '#^Property ConferenceOrBooth\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_card.php + path: ../../../htdocs/eventorganization/conferenceorbooth_card.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_card.php + path: ../../../htdocs/eventorganization/conferenceorbooth_card.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_contact.php + path: ../../../htdocs/eventorganization/conferenceorbooth_contact.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_contact.php + path: ../../../htdocs/eventorganization/conferenceorbooth_contact.php - message: '#^Property ConferenceOrBooth\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_contact.php + path: ../../../htdocs/eventorganization/conferenceorbooth_contact.php - message: '#^Variable \$mode might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_contact.php + path: ../../../htdocs/eventorganization/conferenceorbooth_contact.php - message: '#^Variable \$permission might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/eventorganization/conferenceorbooth_contact.php + path: ../../../htdocs/eventorganization/conferenceorbooth_contact.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_document.php + path: ../../../htdocs/eventorganization/conferenceorbooth_document.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_document.php + path: ../../../htdocs/eventorganization/conferenceorbooth_document.php - message: '#^Property ConferenceOrBooth\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_document.php + path: ../../../htdocs/eventorganization/conferenceorbooth_document.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_list.php + path: ../../../htdocs/eventorganization/conferenceorbooth_list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_list.php + path: ../../../htdocs/eventorganization/conferenceorbooth_list.php - message: '#^Right side of \|\| is always true\.$#' identifier: booleanOr.rightAlwaysTrue count: 1 - path: ../../htdocs/eventorganization/conferenceorbooth_list.php + path: ../../../htdocs/eventorganization/conferenceorbooth_list.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^Property ConferenceOrBoothAttendee\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^Variable \$confOrBooth might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^Variable \$withproject in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/eventorganization/conferenceorboothattendee_card.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_card.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_list.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_list.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_list.php - message: '#^Right side of \|\| is always true\.$#' identifier: booleanOr.rightAlwaysTrue count: 1 - path: ../../htdocs/eventorganization/conferenceorboothattendee_list.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_list.php - message: '#^Variable \$projectref might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/eventorganization/conferenceorboothattendee_list.php + path: ../../../htdocs/eventorganization/conferenceorboothattendee_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$deliveryreceipt might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$from might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$hookmanager might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$listofobjectref in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$triggername in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/eventorganization/core/actions_massactions_mail.inc.php + path: ../../../htdocs/eventorganization/core/actions_massactions_mail.inc.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/eventorganization/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/eventorganization/tpl/linkedobjectblock.tpl.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Variable \$extrafields in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Variable \$originid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Variable \$rowEnd might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Variable \$rowExtrafieldsView might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/card.php + path: ../../../htdocs/expedition/card.php - message: '#^Method Shipments\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Method Shipments\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Method Shipments\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Method Shipments\:\:deleteLine\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Method Shipments\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Method Shipments\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Method Shipments\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Property Shipments\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expedition/class/api_shipments.class.php + path: ../../../htdocs/expedition/class/api_shipments.class.php - message: '#^Call to function method_exists\(\) with \$this\(Expedition\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Call to function method_exists\(\) with \$this\(Expedition\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Call to function property_exists\(\) with \$this\(Expedition\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Call to function property_exists\(\) with \$this\(Expedition\) and ''total_ht'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 7 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property CommonObject\:\:\$fk_delivery_address \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property CommonObject\:\:\$ref_ext \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property CommonObject\:\:\$shipping_method_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$fk_user_author \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$ref_customer \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$size_units \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$tracking_number \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$trueDepth \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$trueHeight \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$trueWeight \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$trueWidth \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property Expedition\:\:\$weight_units \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Property ExpeditionLigne\:\:\$detail_batch \(array\\|stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Variable \$line might not be defined\.$#' identifier: variable.undefined count: 77 - path: ../../htdocs/expedition/class/expedition.class.php + path: ../../../htdocs/expedition/class/expedition.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/expedition/class/expeditionligne.class.php + path: ../../../htdocs/expedition/class/expeditionligne.class.php - message: '#^Property CommonObject\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expeditionligne.class.php + path: ../../../htdocs/expedition/class/expeditionligne.class.php - message: '#^Property CommonObjectLine\:\:\$id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expeditionligne.class.php + path: ../../../htdocs/expedition/class/expeditionligne.class.php - message: '#^Property ExpeditionLigne\:\:\$entrepot_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expeditionligne.class.php + path: ../../../htdocs/expedition/class/expeditionligne.class.php - message: '#^Result of \|\| is always false\.$#' identifier: booleanOr.alwaysFalse count: 1 - path: ../../htdocs/expedition/class/expeditionligne.class.php + path: ../../../htdocs/expedition/class/expeditionligne.class.php - message: '#^Property ExpeditionLineBatch\:\:\$qty \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expedition/class/expeditionlinebatch.class.php + path: ../../../htdocs/expedition/class/expeditionlinebatch.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/expedition/contact.php + path: ../../../htdocs/expedition/contact.php - message: '#^Variable \$mesgs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/contact.php + path: ../../../htdocs/expedition/contact.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 8 - path: ../../htdocs/expedition/contact.php + path: ../../../htdocs/expedition/contact.php - message: '#^Variable \$typeobject might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/expedition/contact.php + path: ../../../htdocs/expedition/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/expedition/dispatch.php + path: ../../../htdocs/expedition/dispatch.php - message: '#^Variable \$modebatch might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/expedition/dispatch.php + path: ../../../htdocs/expedition/dispatch.php - message: '#^Variable \$nbproduct might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/dispatch.php + path: ../../../htdocs/expedition/dispatch.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/expedition/dispatch.php + path: ../../../htdocs/expedition/dispatch.php - message: '#^Variable \$objsearchdet might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/dispatch.php + path: ../../../htdocs/expedition/dispatch.php - message: '#^Variable \$typeobject might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/expedition/dispatch.php + path: ../../../htdocs/expedition/dispatch.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/expedition/document.php + path: ../../../htdocs/expedition/document.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expedition/document.php + path: ../../../htdocs/expedition/document.php - message: '#^Variable \$typeobject might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expedition/document.php + path: ../../../htdocs/expedition/document.php - message: '#^Call to function method_exists\(\) with Expedition and ''fetch_lines'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^Loose comparison using \=\= between \-1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^Loose comparison using \=\= between \-1 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^Variable \$searchCategoryCustomerList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^Variable \$searchCategoryProductList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^Variable \$search_shipping_method_id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/list.php + path: ../../../htdocs/expedition/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/expedition/note.php + path: ../../../htdocs/expedition/note.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expedition/note.php + path: ../../../htdocs/expedition/note.php - message: '#^Variable \$typeobject might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expedition/note.php + path: ../../../htdocs/expedition/note.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/expedition/shipment.php + path: ../../../htdocs/expedition/shipment.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/expedition/shipment.php + path: ../../../htdocs/expedition/shipment.php - message: '#^Variable \$bc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/shipment.php + path: ../../../htdocs/expedition/shipment.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/expedition/shipment.php + path: ../../../htdocs/expedition/shipment.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expedition/shipment.php + path: ../../../htdocs/expedition/shipment.php - message: '#^Variable \$product might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/expedition/shipment.php + path: ../../../htdocs/expedition/shipment.php - message: '#^Variable \$toBeShippedTotal might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expedition/shipment.php + path: ../../../htdocs/expedition/shipment.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expedition/stats/month.php + path: ../../../htdocs/expedition/stats/month.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expedition/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/expedition/tpl/linkedobjectblock.tpl.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 6 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Loose comparison using \=\= between 1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 3 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Variable \$date might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Variable \$fk_project might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 10 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Variable \$remaintopay might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Variable \$userauthor might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expensereport/card.php + path: ../../../htdocs/expensereport/card.php - message: '#^Method ExpenseReports\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:_validatepayment\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:_validatepayment\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:addPayment\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:getAllPayments\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Method ExpenseReports\:\:updatePayment\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Property ExpenseReports\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Property ExpenseReports\:\:\$FIELDSPAYMENT has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/expensereport/class/api_expensereports.class.php + path: ../../../htdocs/expensereport/class/api_expensereports.class.php - message: '#^Call to function method_exists\(\) with \$this\(ExpenseReport\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Call to function method_exists\(\) with \$this\(ExpenseReport\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Call to function property_exists\(\) with \$this\(ExpenseReport\) and ''date_debut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Call to function property_exists\(\) with \$this\(ExpenseReport\) and ''date_fin'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Parameter \#1 \$vatrate of function getLocalTaxesFromRate expects int\|string, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Parameter \#2 \$pu of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Property ExpenseReport\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/expensereport/class/expensereport.class.php + path: ../../../htdocs/expensereport/class/expensereport.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/expensereport/class/expensereportline.class.php + path: ../../../htdocs/expensereport/class/expensereportline.class.php - message: '#^Call to function method_exists\(\) with \$this\(PaymentExpenseReport\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Call to function method_exists\(\) with \$this\(PaymentExpenseReport\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentExpenseReport\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentExpenseReport\) and ''datep'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentExpenseReport\) and ''fk_bank'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentExpenseReport\) and ''fk_typepayment'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Property PaymentExpenseReport\:\:\$amount \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Property PaymentExpenseReport\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Property PaymentExpenseReport\:\:\$fk_expensereport \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Property PaymentExpenseReport\:\:\$fk_typepayment \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Property PaymentExpenseReport\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Property PaymentExpenseReport\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Property PaymentExpenseReport\:\:\$num_payment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/expensereport/class/paymentexpensereport.class.php + path: ../../../htdocs/expensereport/class/paymentexpensereport.class.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/expensereport/list.php + path: ../../../htdocs/expensereport/list.php - message: '#^Variable \$outputlangs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/payment/card.php + path: ../../../htdocs/expensereport/payment/card.php - message: '#^Variable \$title_button might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/payment/card.php + path: ../../../htdocs/expensereport/payment/card.php - message: '#^Variable \$linkback might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/payment/info.php + path: ../../../htdocs/expensereport/payment/info.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/expensereport/payment/list.php + path: ../../../htdocs/expensereport/payment/list.php - message: '#^Variable \$toselect might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/payment/list.php + path: ../../../htdocs/expensereport/payment/list.php - message: '#^Comparison operation "\>" between 1 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/expensereport/payment/payment.php + path: ../../../htdocs/expensereport/payment/payment.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/expensereport/payment/payment.php + path: ../../../htdocs/expensereport/payment/payment.php - message: '#^Variable \$sumpaid might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/expensereport/payment/payment.php + path: ../../../htdocs/expensereport/payment/payment.php - message: '#^Variable \$fileurl_avg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/stats/index.php + path: ../../../htdocs/expensereport/stats/index.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php - message: '#^Variable \$colspan might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php - message: '#^Variable \$formfile might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_addfile.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php - message: '#^Variable \$colspan might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php - message: '#^Variable \$minifile might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php + path: ../../../htdocs/expensereport/tpl/expensereport_linktofile.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/expensereport/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/expensereport/tpl/linkedobjectblock.tpl.php - message: '#^Property Export\:\:\$fk_user \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/exports/class/export.class.php + path: ../../../htdocs/exports/class/export.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 3 - path: ../../htdocs/exports/export.php + path: ../../../htdocs/exports/export.php - message: '#^Variable \$heightforframes might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/externalsite/frames.php + path: ../../../htdocs/externalsite/frames.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fichinter/agenda.php + path: ../../../htdocs/fichinter/agenda.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/fichinter/card-rec.php + path: ../../../htdocs/fichinter/card-rec.php - message: '#^Property CommonObjectLine\:\:\$product_type \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fichinter/card-rec.php + path: ../../../htdocs/fichinter/card-rec.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fichinter/card-rec.php + path: ../../../htdocs/fichinter/card-rec.php - message: '#^Call to function is_object\(\) with FichinterLigne will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Loose comparison using \=\= between ''2'' and ''2'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 1 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Variable \$classname might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Variable \$extrafields in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Variable \$line might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 11 - path: ../../htdocs/fichinter/card.php + path: ../../../htdocs/fichinter/card.php - message: '#^Method Interventions\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Method Interventions\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Method Interventions\:\:_validateLine\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Method Interventions\:\:_validateLine\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Method Interventions\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Method Interventions\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Method Interventions\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Method Interventions\:\:postLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Property Interventions\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Property Interventions\:\:\$FIELDSLINE has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/fichinter/class/api_interventions.class.php + path: ../../../htdocs/fichinter/class/api_interventions.class.php - message: '#^Call to function method_exists\(\) with \$this\(Fichinter\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fichinter/class/fichinter.class.php + path: ../../../htdocs/fichinter/class/fichinter.class.php - message: '#^Call to function method_exists\(\) with \$this\(Fichinter\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fichinter/class/fichinter.class.php + path: ../../../htdocs/fichinter/class/fichinter.class.php - message: '#^Call to function property_exists\(\) with \$this\(Fichinter\) and ''duration'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fichinter/class/fichinter.class.php + path: ../../../htdocs/fichinter/class/fichinter.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 7 - path: ../../htdocs/fichinter/class/fichinter.class.php + path: ../../../htdocs/fichinter/class/fichinter.class.php - message: '#^Property Fichinter\:\:\$ref_client \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fichinter/class/fichinter.class.php + path: ../../../htdocs/fichinter/class/fichinter.class.php - message: '#^Property Fichinter\:\:\$statut \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fichinter/class/fichinter.class.php + path: ../../../htdocs/fichinter/class/fichinter.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/fichinter/class/fichinter.class.php + path: ../../../htdocs/fichinter/class/fichinter.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/fichinter/class/fichinterligne.class.php + path: ../../../htdocs/fichinter/class/fichinterligne.class.php - message: '#^Parameter \#17 \$fk_unit of method FichinterRec\:\:addLineRec\(\) expects string\|null, int\|null given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fichinter/class/fichinterrec.class.php + path: ../../../htdocs/fichinter/class/fichinterrec.class.php - message: '#^Parameter \#2 \$pu of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fichinter/class/fichinterrec.class.php + path: ../../../htdocs/fichinter/class/fichinterrec.class.php - message: '#^Parameter \#3 \$remise_percent_ligne of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fichinter/class/fichinterrec.class.php + path: ../../../htdocs/fichinter/class/fichinterrec.class.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/fichinter/contact.php + path: ../../../htdocs/fichinter/contact.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/fichinter/document.php + path: ../../../htdocs/fichinter/document.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fichinter/index.php + path: ../../../htdocs/fichinter/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fichinter/index.php + path: ../../../htdocs/fichinter/index.php - message: '#^Variable \$badgeStatus4 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fichinter/index.php + path: ../../../htdocs/fichinter/index.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/fichinter/list.php + path: ../../../htdocs/fichinter/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/fichinter/list.php + path: ../../../htdocs/fichinter/list.php - message: '#^Variable \$contratstatic might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/fichinter/list.php + path: ../../../htdocs/fichinter/list.php - message: '#^Variable \$projetstatic might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/fichinter/list.php + path: ../../../htdocs/fichinter/list.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/fichinter/note.php + path: ../../../htdocs/fichinter/note.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/fichinter/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/fichinter/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fichinter/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/fichinter/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$dolibarr_main_db_encrypted_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/filefunc.inc.php + path: ../../../htdocs/filefunc.inc.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 10 - path: ../../htdocs/fourn/card.php + path: ../../../htdocs/fourn/card.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/card.php + path: ../../../htdocs/fourn/card.php - message: '#^Method SupplierInvoices\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:deleteLine\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:getLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:getPayments\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:postLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:putLine\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierInvoices\:\:validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_invoices.class.php + path: ../../../htdocs/fourn/class/api_supplier_invoices.class.php - message: '#^Method SupplierOrders\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:approve\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:deleteContact\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:makeOrder\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:postContact\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:receiveOrder\(\) has parameter \$lines with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:receiveOrder\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Method SupplierOrders\:\:validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Parameter \#1 \$object of method SupplierOrders\:\:_cleanObjectDatas\(\) expects object, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Property SupplierOrders\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Variable \$contact might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/class/api_supplier_orders.class.php + path: ../../../htdocs/fourn/class/api_supplier_orders.class.php - message: '#^Call to function method_exists\(\) with \$this\(CommandeFournisseur\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Call to function method_exists\(\) with \$this\(CommandeFournisseur\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Call to function property_exists\(\) with \$this\(CommandeFournisseur\) and ''billed'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Call to function property_exists\(\) with \$this\(CommandeFournisseur\) and ''socid'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Call to function property_exists\(\) with \$this\(CommandeFournisseur\) and ''total_tva'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Parameter \#1 \$exclspec of method CommonObject\:\:update_price\(\) expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Parameter \#15 \$pu_devise of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Parameter \#2 \$pu of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Parameter \#3 \$remise_percent_ligne of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Parameter \#5 \$uselocaltax1_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Parameter \#6 \$uselocaltax2_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$cond_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$mode_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$ref_supplier \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$total_ht \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$total_localtax1 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$total_localtax2 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$total_ttc \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$total_tva \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommandeFournisseur\:\:\$user_author_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Property CommonObject\:\:\$ref_ext \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/fourn/class/fournisseur.commande.class.php + path: ../../../htdocs/fourn/class/fournisseur.commande.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#1 \$qty of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#1 \$vatrate of function getLocalTaxesFromRate expects int\|string, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#10 \$txlocaltax1 of method FactureFournisseurRec\:\:addline\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#11 \$txlocaltax2 of method FactureFournisseurRec\:\:addline\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#15 \$pu_devise of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#19 \$fk_unit of method FactureFournisseurRec\:\:addline\(\) expects string\|null, int\|null given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#2 \$pu of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Parameter \#8 \$remise_percent of method FactureFournisseurRec\:\:addline\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Property CommonInvoice\:\:\$subtype \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture-rec.ligne.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture-rec.ligne.class.php - message: '#^Call to function method_exists\(\) with \$this\(FactureFournisseur\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Call to function method_exists\(\) with \$this\(FactureFournisseur\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Call to function property_exists\(\) with \$this\(FactureFournisseur\) and ''date'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Call to function property_exists\(\) with \$this\(FactureFournisseur\) and ''total_ht'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 6 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#1 \$exclspec of method CommonObject\:\:update_price\(\) expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#1 \$qty of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#15 \$pu_devise of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#2 \$alreadypaid of method CommonInvoice\:\:getLibStatut\(\) expects int, float given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#2 \$pu of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#3 \$remise_percent_ligne of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#3 \$txtva of method FactureFournisseur\:\:addline\(\) expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#4 \$vatrate of method FactureFournisseur\:\:updateline\(\) expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#5 \$uselocaltax1_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Parameter \#6 \$uselocaltax2_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonInvoice\:\:\$close_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonInvoice\:\:\$close_note \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonInvoice\:\:\$cond_reglement_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonInvoice\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonInvoice\:\:\$subtype \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonInvoice\:\:\$totalpaid \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonInvoiceLine\:\:\$info_bits \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property CommonObject\:\:\$ref_ext \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$author \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$fk_fac_rec_source \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$fk_facture_source \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$fk_user_valid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$libelle \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$note_private \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$note_public \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$paid \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$paye \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$ref_supplier \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$statut \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$total_ht \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$total_localtax1 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$total_localtax2 \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$total_ttc \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$total_tva \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Property FactureFournisseur\:\:\$type \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/fourn/class/fournisseur.facture.ligne.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.ligne.class.php - message: '#^Property SupplierInvoiceLine\:\:\$situation_percent \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.facture.ligne.class.php + path: ../../../htdocs/fourn/class/fournisseur.facture.ligne.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/fourn/class/fournisseur.orderline.class.php + path: ../../../htdocs/fourn/class/fournisseur.orderline.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/fourn/class/fournisseur.product.class.php + path: ../../../htdocs/fourn/class/fournisseur.product.class.php - message: '#^Property Product\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.product.class.php + path: ../../../htdocs/fourn/class/fournisseur.product.class.php - message: '#^Property Product\:\:\$status_buy \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.product.class.php + path: ../../../htdocs/fourn/class/fournisseur.product.class.php - message: '#^Property ProductFournisseur\:\:\$fourn_unitprice \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/fourn/class/fournisseur.product.class.php + path: ../../../htdocs/fourn/class/fournisseur.product.class.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/fourn/class/fournisseur.product.class.php + path: ../../../htdocs/fourn/class/fournisseur.product.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/fourn/class/fournisseur.product.class.php + path: ../../../htdocs/fourn/class/fournisseur.product.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/fourn/class/fournisseur.product.class.php + path: ../../../htdocs/fourn/class/fournisseur.product.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/fourn/class/paiementfourn.class.php + path: ../../../htdocs/fourn/class/paiementfourn.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/fourn/class/paiementfourn.class.php + path: ../../../htdocs/fourn/class/paiementfourn.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Loose comparison using \=\= between 1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Variable \$array_option might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Variable \$classname might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Variable \$fk_account might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Variable \$line might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 7 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/card.php + path: ../../../htdocs/fourn/commande/card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/contact.php + path: ../../../htdocs/fourn/commande/contact.php - message: '#^Variable \$caneditproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/contact.php + path: ../../../htdocs/fourn/commande/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Variable \$comment might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Variable \$product might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^Variable \$reception might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/dispatch.php + path: ../../../htdocs/fourn/commande/dispatch.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/document.php + path: ../../../htdocs/fourn/commande/document.php - message: '#^Variable \$caneditproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/document.php + path: ../../../htdocs/fourn/commande/document.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/info.php + path: ../../../htdocs/fourn/commande/info.php - message: '#^Variable \$caneditproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/info.php + path: ../../../htdocs/fourn/commande/info.php - message: '#^Call to function method_exists\(\) with CommandeFournisseur and ''fetch_lines'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/commande/list.php + path: ../../../htdocs/fourn/commande/list.php - message: '#^Loose comparison using \=\= between \-1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/list.php + path: ../../../htdocs/fourn/commande/list.php - message: '#^Loose comparison using \=\= between \-1 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/list.php + path: ../../../htdocs/fourn/commande/list.php - message: '#^Variable \$billed might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/list.php + path: ../../../htdocs/fourn/commande/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/fourn/commande/list.php + path: ../../../htdocs/fourn/commande/list.php - message: '#^Variable \$searchCategoryProductList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/fourn/commande/list.php + path: ../../../htdocs/fourn/commande/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/commande/note.php + path: ../../../htdocs/fourn/commande/note.php - message: '#^Variable \$caneditproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/note.php + path: ../../../htdocs/fourn/commande/note.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/fourn/commande/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$begin might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/fourn/contact.php + path: ../../../htdocs/fourn/contact.php - message: '#^Variable \$contactname might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/contact.php + path: ../../../htdocs/fourn/contact.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/fourn/contact.php + path: ../../../htdocs/fourn/contact.php - message: '#^Variable \$stcomm might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/contact.php + path: ../../../htdocs/fourn/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/agenda.php + path: ../../../htdocs/fourn/facture/agenda.php - message: '#^Parameter \#1 \$hour of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Parameter \#2 \$minute of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Parameter \#3 \$second of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Variable \$label might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Variable \$predef might not be defined\.$#' identifier: variable.undefined count: 20 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Variable \$price_min might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Variable \$ref_fournisseur might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/card-rec.php + path: ../../../htdocs/fourn/facture/card-rec.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Parameter \#1 \$hour of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Parameter \#2 \$minute of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Parameter \#3 \$second of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 6 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Property CommonObject\:\:\$cond_reglement_id \(int\) does not accept array\\|string\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) does not accept null\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Property CommonObject\:\:\$mode_reglement_id \(int\) does not accept array\\|string\.$#' identifier: assign.propertyType count: 2 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Variable \$backtopageforcancel in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Variable \$classname might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^Variable \$vat_reverse_charge might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/card.php + path: ../../../htdocs/fourn/facture/card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/contact.php + path: ../../../htdocs/fourn/facture/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/document.php + path: ../../../htdocs/fourn/facture/document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/document.php + path: ../../../htdocs/fourn/facture/document.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/info.php + path: ../../../htdocs/fourn/facture/info.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/facture/info.php + path: ../../../htdocs/fourn/facture/info.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/fourn/facture/list-rec.php + path: ../../../htdocs/fourn/facture/list-rec.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^Offset ''totalam'' on array\{f\.total_ht\: \(float\|int\), f\.total_vat\: \(float\|int\), f\.total_localtax1\: \(float\|int\), f\.total_ttc\: \(float\|int\), totalam\: 0, rtp\: \(float\|int\), f\.total_localtax2\?\: \(array\|float\|int\)\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^Variable \$numprlv might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/list.php + path: ../../../htdocs/fourn/facture/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/messaging.php + path: ../../../htdocs/fourn/facture/messaging.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/note-rec.php + path: ../../../htdocs/fourn/facture/note-rec.php - message: '#^Variable \$title might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/facture/note-rec.php + path: ../../../htdocs/fourn/facture/note-rec.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/fourn/facture/note.php + path: ../../../htdocs/fourn/facture/note.php - message: '#^Call to function is_numeric\(\) with float will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/fourn/facture/paiement.php + path: ../../../htdocs/fourn/facture/paiement.php - message: '#^Variable \$moreforfilter might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/paiement.php + path: ../../../htdocs/fourn/facture/paiement.php - message: '#^Variable \$obj might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/facture/rapport.php + path: ../../../htdocs/fourn/facture/rapport.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/fourn/facture/tpl/linkedobjectblock.tpl.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/fourn/paiement/card.php + path: ../../../htdocs/fourn/paiement/card.php - message: '#^Variable \$title_button might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/paiement/card.php + path: ../../../htdocs/fourn/paiement/card.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/fourn/paiement/document.php + path: ../../../htdocs/fourn/paiement/document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/fourn/paiement/document.php + path: ../../../htdocs/fourn/paiement/document.php - message: '#^Variable \$arrayofselected might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/fourn/paiement/list.php + path: ../../../htdocs/fourn/paiement/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/fourn/paiement/list.php + path: ../../../htdocs/fourn/paiement/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/fourn/product/list.php + path: ../../../htdocs/fourn/product/list.php - message: '#^Variable \$result2 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ftp/admin/ftpclient.php + path: ../../../htdocs/ftp/admin/ftpclient.php - message: '#^Variable \$result3 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ftp/admin/ftpclient.php + path: ../../../htdocs/ftp/admin/ftpclient.php - message: '#^Variable \$result4 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ftp/admin/ftpclient.php + path: ../../../htdocs/ftp/admin/ftpclient.php - message: '#^Variable \$result5 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ftp/admin/ftpclient.php + path: ../../../htdocs/ftp/admin/ftpclient.php - message: '#^Variable \$result6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ftp/admin/ftpclient.php + path: ../../../htdocs/ftp/admin/ftpclient.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/ftp/index.php + path: ../../../htdocs/ftp/index.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/ftp/index.php + path: ../../../htdocs/ftp/index.php - message: '#^Parameter \#1 \$ftp of function ftp_nlist expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/ftp/index.php + path: ../../../htdocs/ftp/index.php - message: '#^Parameter \#1 \$ftp of function ftp_rawlist expects FTP\\Connection, resource given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/ftp/index.php + path: ../../../htdocs/ftp/index.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 3 - path: ../../htdocs/ftp/index.php + path: ../../../htdocs/ftp/index.php - message: '#^Variable \$newsectioniso might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ftp/index.php + path: ../../../htdocs/ftp/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/holiday/card.php + path: ../../../htdocs/holiday/card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/holiday/card_group.php + path: ../../../htdocs/holiday/card_group.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/holiday/card_group.php + path: ../../../htdocs/holiday/card_group.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/holiday/card_group.php + path: ../../../htdocs/holiday/card_group.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/holiday/card_group.php + path: ../../../htdocs/holiday/card_group.php - message: '#^Variable \$endhalfdaykey might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/card_group.php + path: ../../../htdocs/holiday/card_group.php - message: '#^Variable \$errors might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/card_group.php + path: ../../../htdocs/holiday/card_group.php - message: '#^Variable \$starthalfdaykey might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/card_group.php + path: ../../../htdocs/holiday/card_group.php - message: '#^Call to function method_exists\(\) with \$this\(Holiday\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Call to function property_exists\(\) with \$this\(Holiday\) and ''date_debut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Call to function property_exists\(\) with \$this\(Holiday\) and ''date_fin'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Call to function property_exists\(\) with \$this\(Holiday\) and ''fk_type'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Comparison operation "\<" between 0 and 0 is always false\.$#' identifier: smaller.alwaysFalse count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Parameter \#4 \$new_solde of method Holiday\:\:addLogCP\(\) expects int, float given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Property Holiday\:\:\$events has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Property Holiday\:\:\$halfday \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Property Holiday\:\:\$holiday has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^Property Holiday\:\:\$logs has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/holiday/class/holiday.class.php + path: ../../../htdocs/holiday/class/holiday.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 3 - path: ../../htdocs/holiday/define_holiday.php + path: ../../../htdocs/holiday/define_holiday.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/holiday/define_holiday.php + path: ../../../htdocs/holiday/define_holiday.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/holiday/define_holiday.php + path: ../../../htdocs/holiday/define_holiday.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/holiday/define_holiday.php + path: ../../../htdocs/holiday/define_holiday.php - message: '#^Variable \$arraydata might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/list.php + path: ../../../htdocs/holiday/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/holiday/list.php + path: ../../../htdocs/holiday/list.php - message: '#^Variable \$morefilter might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/list.php + path: ../../../htdocs/holiday/list.php - message: '#^Variable \$search_month_update might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/list.php + path: ../../../htdocs/holiday/list.php - message: '#^Variable \$search_year_update might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/list.php + path: ../../../htdocs/holiday/list.php - message: '#^Variable \$arraytypeleaves might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/month_report.php + path: ../../../htdocs/holiday/month_report.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/holiday/view_log.php + path: ../../../htdocs/holiday/view_log.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/holiday/view_log.php + path: ../../../htdocs/holiday/view_log.php - message: '#^Variable \$search_status might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/holiday/view_log.php + path: ../../../htdocs/holiday/view_log.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/holiday/view_log.php + path: ../../../htdocs/holiday/view_log.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 2 - path: ../../htdocs/hrm/admin/admin_hrm.php + path: ../../../htdocs/hrm/admin/admin_hrm.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/admin/admin_hrm.php + path: ../../../htdocs/hrm/admin/admin_hrm.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/admin/admin_hrm.php + path: ../../../htdocs/hrm/admin/admin_hrm.php - message: '#^Property Establishment\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/establishment.class.php + path: ../../../htdocs/hrm/class/establishment.class.php - message: '#^Call to function method_exists\(\) with \$this\(Evaluation\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Call to function method_exists\(\) with \$this\(Evaluation\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Call to function property_exists\(\) with Evaluation and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Call to function property_exists\(\) with Evaluation and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Call to function property_exists\(\) with Evaluation and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Call to function property_exists\(\) with Evaluation and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Call to function property_exists\(\) with Evaluation and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Property Evaluation\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/evaluation.class.php + path: ../../../htdocs/hrm/class/evaluation.class.php - message: '#^Call to function property_exists\(\) with EvaluationLine and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Call to function property_exists\(\) with EvaluationLine and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Call to function property_exists\(\) with EvaluationLine and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Call to function property_exists\(\) with EvaluationLine and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Method EvaluationLine\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Method EvaluationLine\:\:getLinesArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/evaluationdet.class.php + path: ../../../htdocs/hrm/class/evaluationdet.class.php - message: '#^Call to function method_exists\(\) with \$this\(Job\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Call to function property_exists\(\) with \$this\(Job\) and ''description'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Call to function property_exists\(\) with Job and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Call to function property_exists\(\) with Job and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Call to function property_exists\(\) with Job and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Call to function property_exists\(\) with Job and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Call to function property_exists\(\) with Job and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Method Job\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Method Job\:\:getLinesArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Method Job\:\:getSkillRankForJob\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/job.class.php + path: ../../../htdocs/hrm/class/job.class.php - message: '#^Call to function method_exists\(\) with \$this\(Position\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Call to function property_exists\(\) with \$this\(Position\) and ''date_end'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Call to function property_exists\(\) with \$this\(Position\) and ''date_start'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Call to function property_exists\(\) with Position and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Call to function property_exists\(\) with Position and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Call to function property_exists\(\) with Position and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Call to function property_exists\(\) with Position and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Method Position\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Method Position\:\:getForUser\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Method Position\:\:getLinesArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/position.class.php + path: ../../../htdocs/hrm/class/position.class.php - message: '#^Call to function method_exists\(\) with \$this\(Skill\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with \$this\(Skill\) and ''description'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with \$this\(Skill\) and ''skill_type'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with Skill and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with Skill and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with Skill and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with Skill and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with Skill and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Method Skill\:\:fetchLines\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Method Skill\:\:getLinesArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/skill.class.php + path: ../../../htdocs/hrm/class/skill.class.php - message: '#^Call to function property_exists\(\) with Skilldet and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skilldet.class.php + path: ../../../htdocs/hrm/class/skilldet.class.php - message: '#^Call to function property_exists\(\) with Skilldet and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skilldet.class.php + path: ../../../htdocs/hrm/class/skilldet.class.php - message: '#^Call to function property_exists\(\) with Skilldet and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skilldet.class.php + path: ../../../htdocs/hrm/class/skilldet.class.php - message: '#^Call to function property_exists\(\) with Skilldet and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skilldet.class.php + path: ../../../htdocs/hrm/class/skilldet.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/hrm/class/skilldet.class.php + path: ../../../htdocs/hrm/class/skilldet.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/class/skilldet.class.php + path: ../../../htdocs/hrm/class/skilldet.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/skilldet.class.php + path: ../../../htdocs/hrm/class/skilldet.class.php - message: '#^Call to function property_exists\(\) with SkillRank and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Call to function property_exists\(\) with SkillRank and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Call to function property_exists\(\) with SkillRank and ''fk_object'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Call to function property_exists\(\) with SkillRank and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Call to function property_exists\(\) with SkillRank and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Method SkillRank\:\:getLinesArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/hrm/class/skillrank.class.php + path: ../../../htdocs/hrm/class/skillrank.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/compare.php + path: ../../../htdocs/hrm/compare.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/compare.php + path: ../../../htdocs/hrm/compare.php - message: '#^Cannot access property \$db on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/hrm/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/hrm/core/tpl/objectline_view.tpl.php - message: '#^Cannot access property \$status on mixed\.$#' identifier: property.nonObject count: 1 - path: ../../htdocs/hrm/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/hrm/core/tpl/objectline_view.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/hrm/core/tpl/objectline_view.tpl.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/hrm/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/hrm/core/tpl/objectline_view.tpl.php - message: '#^Variable \$line might not be defined\.$#' identifier: variable.undefined count: 13 - path: ../../htdocs/hrm/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/hrm/core/tpl/objectline_view.tpl.php - message: '#^Variable \$this might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/hrm/core/tpl/objectline_view.tpl.php + path: ../../../htdocs/hrm/core/tpl/objectline_view.tpl.php - message: '#^Variable \$colwidth might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php + path: ../../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php - message: '#^Variable \$moreparam might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php + path: ../../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php - message: '#^Variable \$permission might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php + path: ../../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php - message: '#^Variable \$typeofdata might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php + path: ../../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php - message: '#^Variable \$value_private might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php + path: ../../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php - message: '#^Variable \$value_public might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php + path: ../../../htdocs/hrm/core/tpl/skilldet.fiche.tpl.php - message: '#^Property Establishment\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/establishment/card.php + path: ../../../htdocs/hrm/establishment/card.php - message: '#^Property Establishment\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/establishment/info.php + path: ../../../htdocs/hrm/establishment/info.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/evaluation_card.php + path: ../../../htdocs/hrm/evaluation_card.php - message: '#^Variable \$k might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/evaluation_card.php + path: ../../../htdocs/hrm/evaluation_card.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/evaluation_document.php + path: ../../../htdocs/hrm/evaluation_document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/evaluation_list.php + path: ../../../htdocs/hrm/evaluation_list.php - message: '#^Variable \$setupcompanynotcomplete in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/index.php + path: ../../../htdocs/hrm/index.php - message: '#^Variable \$newcardbutton might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/job_agenda.php + path: ../../../htdocs/hrm/job_agenda.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/hrm/job_card.php + path: ../../../htdocs/hrm/job_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/job_card.php + path: ../../../htdocs/hrm/job_card.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/job_card.php + path: ../../../htdocs/hrm/job_card.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/job_card.php + path: ../../../htdocs/hrm/job_card.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/job_document.php + path: ../../../htdocs/hrm/job_document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/job_list.php + path: ../../../htdocs/hrm/job_list.php - message: '#^Comparison operation "\<" between int\<0, max\> and 0 is always false\.$#' identifier: smaller.alwaysFalse count: 1 - path: ../../htdocs/hrm/lib/hrm_evaluation.lib.php + path: ../../../htdocs/hrm/lib/hrm_evaluation.lib.php - message: '#^Variable \$Lines in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/lib/hrm_skillrank.lib.php + path: ../../../htdocs/hrm/lib/hrm_skillrank.lib.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/position.php + path: ../../../htdocs/hrm/position.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/position.php + path: ../../../htdocs/hrm/position.php - message: '#^Variable \$job might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/position.php + path: ../../../htdocs/hrm/position.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/position_card.php + path: ../../../htdocs/hrm/position_card.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/position_document.php + path: ../../../htdocs/hrm/position_document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/position_list.php + path: ../../../htdocs/hrm/position_list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/skill_card.php + path: ../../../htdocs/hrm/skill_card.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/skill_document.php + path: ../../../htdocs/hrm/skill_document.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/hrm/skill_list.php + path: ../../../htdocs/hrm/skill_list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/hrm/skill_list.php + path: ../../../htdocs/hrm/skill_list.php - message: '#^Call to function is_array\(\) with list will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/hrm/skill_tab.php + path: ../../../htdocs/hrm/skill_tab.php - message: '#^PHPDoc tag @var for variable \$objects has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/hrm/skill_tab.php + path: ../../../htdocs/hrm/skill_tab.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/hrm/skill_tab.php + path: ../../../htdocs/hrm/skill_tab.php - message: '#^Property Import\:\:\$fk_user \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/imports/class/import.class.php + path: ../../../htdocs/imports/class/import.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/imports/emptyexample.php + path: ../../../htdocs/imports/emptyexample.php - message: '#^Comparison operation "\>\=" between int\<1, max\> and 1 is always true\.$#' identifier: greaterOrEqual.alwaysTrue count: 1 - path: ../../htdocs/imports/import.php + path: ../../../htdocs/imports/import.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 12 - path: ../../htdocs/imports/import.php + path: ../../../htdocs/imports/import.php - message: '#^Loose comparison using \=\= between ''session'' and ''session'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/imports/import.php + path: ../../../htdocs/imports/import.php - message: '#^Offset ''imported'' on array\{imported\: 0, example1\: mixed\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/imports/import.php + path: ../../../htdocs/imports/import.php - message: '#^Offset ''picto'' on array\{labelkey\: mixed, labelkeyarray\: list\, label\: string, required\: 0\|1, position\: mixed, picto\: ''''\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/imports/import.php + path: ../../../htdocs/imports/import.php - message: '#^Parameter \#3 \$insertArray of function arrayInsert expects array\{label\?\: string, example1\?\: string, required\?\: bool, imported\?\: bool\|int\<0, 1\>, position\?\: int\}, non\-empty\-array\, position\?\: int\}\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/imports/import.php + path: ../../../htdocs/imports/import.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/index.php + path: ../../../htdocs/index.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/index.php + path: ../../../htdocs/index.php - message: '#^Variable \$boxwork might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/index.php + path: ../../../htdocs/index.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/index.php + path: ../../../htdocs/index.php - message: '#^Variable \$lockfile in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/index.php + path: ../../../htdocs/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/install/check.php + path: ../../../htdocs/install/check.php - message: '#^Offset 2 on array\{string, non\-falsy\-string, non\-falsy\-string\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/install/check.php + path: ../../../htdocs/install/check.php - message: '#^Path in include_once\(\) "\./install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/check.php + path: ../../../htdocs/install/check.php - message: '#^Path in include_once\(\) "/etc/dolibarr/install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/check.php + path: ../../../htdocs/install/check.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/check.php + path: ../../../htdocs/install/check.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/install/fileconf.php + path: ../../../htdocs/install/fileconf.php - message: '#^Path in include_once\(\) "\./install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/fileconf.php + path: ../../../htdocs/install/fileconf.php - message: '#^Path in include_once\(\) "/etc/dolibarr/install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/fileconf.php + path: ../../../htdocs/install/fileconf.php - message: '#^Strict comparison using \!\=\= between mixed and null will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 8 - path: ../../htdocs/install/fileconf.php + path: ../../../htdocs/install/fileconf.php - message: '#^Variable \$testclass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/fileconf.php + path: ../../../htdocs/install/fileconf.php - message: '#^Variable \$testfunction might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/fileconf.php + path: ../../../htdocs/install/fileconf.php - message: '#^Instanceof between mod_syslog_file and LogHandler will always evaluate to true\.$#' identifier: instanceof.alwaysTrue count: 2 - path: ../../htdocs/install/inc.php + path: ../../../htdocs/install/inc.php - message: '#^Variable \$dolibarr_main_db_prefix in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/install/inc.php + path: ../../../htdocs/install/inc.php - message: '#^Variable \$dolibarr_main_db_type in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/install/inc.php + path: ../../../htdocs/install/inc.php - message: '#^Variable \$dolibarr_main_url_root in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/install/inc.php + path: ../../../htdocs/install/inc.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/install/index.php + path: ../../../htdocs/install/index.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/index.php + path: ../../../htdocs/install/index.php - message: '#^PHPDoc tag @var with type string is not subtype of native type null\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/install/install.forced.docker.php + path: ../../../htdocs/install/install.forced.docker.php - message: '#^PHPDoc tag @var with type string is not subtype of native type null\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/install/install.forced.sample.php + path: ../../../htdocs/install/install.forced.sample.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$actiondone in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$dolibarr_main_data_root might not be defined\.$#' identifier: variable.undefined count: 16 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$dolibarr_main_db_character_set might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$dolibarr_main_db_encrypted_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$dolibarr_main_db_type might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$methodtofix might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Variable \$object_instance might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/install/repair.php + path: ../../../htdocs/install/repair.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Path in include_once\(\) "\./install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Path in include_once\(\) "/etc/dolibarr/install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 35 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$conffiletoshow might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 8 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$db_create_database in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$db_create_user in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$dolibarr_main_db_character_set might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$dolibarr_main_db_collation might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$dolibarr_main_db_host might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$dolibarr_main_db_name might not be defined\.$#' identifier: variable.undefined count: 12 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$dolibarr_main_db_user might not be defined\.$#' identifier: variable.undefined count: 12 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$dolibarr_main_document_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$force_dolibarr_lib_TCPDI_PATH in empty\(\) is never defined\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Variable \$force_install_noedit might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step1.php + path: ../../../htdocs/install/step1.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 1 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Path in include_once\(\) "\./install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Path in include_once\(\) "/etc/dolibarr/install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$buffer might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 15 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$conffiletoshow might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$dir might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$dolibarr_main_db_prefix might not be defined\.$#' identifier: variable.undefined count: 8 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$dolibarr_main_db_type might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$dolibarr_main_document_root might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^Variable \$versionarray might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/install/step2.php + path: ../../../htdocs/install/step2.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Path in include_once\(\) "\./install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Path in include_once\(\) "/etc/dolibarr/install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Variable \$conffiletoshow might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Variable \$dolibarr_main_document_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Variable \$force_install_dolibarrlogin might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^Variable \$force_install_noedit might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step4.php + path: ../../../htdocs/install/step4.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Path in include_once\(\) "\./install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Path in include_once\(\) "/etc/dolibarr/install\.forced\.php" is not a file or it does not exist\.$#' identifier: includeOnce.fileNotFound count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 29 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$conffiletoshow might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_db_encrypted_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_db_host might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_db_name might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_db_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_db_port might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_db_type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_db_user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_document_root might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$force_install_noedit might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$login in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 5 - path: ../../htdocs/install/step5.php + path: ../../../htdocs/install/step5.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_db_encrypted_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_db_host might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_db_name might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_db_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_db_port might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_db_type might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_db_user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$dolibarr_main_document_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Variable \$versionarray might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade.php + path: ../../../htdocs/install/upgrade.php - message: '#^Call to function is_array\(\) with array\, array\{mixed, mixed, mixed\}\> will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Parameter \#4 \$listofmodule of function migrate_reload_modules expects array\, array\{MAIN_MODULE_ACCOUNTING\: ''newboxdefonly'', MAIN_MODULE_AGENDA\: ''newboxdefonly'', MAIN_MODULE_BOM\: ''menuonly'', MAIN_MODULE_BANQUE\: ''menuonly'', MAIN_MODULE_BARCODE\: ''newboxdefonly'', MAIN_MODULE_CRON\: ''newboxdefonly'', MAIN_MODULE_COMMANDE\: ''newboxdefonly'', MAIN_MODULE_BLOCKEDLOG\: ''noboxes'', \.\.\.\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$conffile might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_db_encrypted_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_db_host might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_db_name might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_db_pass might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_db_port might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_db_type might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_db_user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Variable \$dolibarr_main_document_root might not be defined\.$#' identifier: variable.undefined count: 9 - path: ../../htdocs/install/upgrade2.php + path: ../../../htdocs/install/upgrade2.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/intracommreport/admin/intracommreport.php + path: ../../../htdocs/intracommreport/admin/intracommreport.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/intracommreport/card.php + path: ../../../htdocs/intracommreport/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/intracommreport/card.php + path: ../../../htdocs/intracommreport/card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/intracommreport/card.php + path: ../../../htdocs/intracommreport/card.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/intracommreport/card.php + path: ../../../htdocs/intracommreport/card.php - message: '#^Call to function method_exists\(\) with \$this\(IntracommReport\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/intracommreport/class/intracommreport.class.php + path: ../../../htdocs/intracommreport/class/intracommreport.class.php - message: '#^Call to function property_exists\(\) with \$this\(IntracommReport\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/intracommreport/class/intracommreport.class.php + path: ../../../htdocs/intracommreport/class/intracommreport.class.php - message: '#^Call to function property_exists\(\) with \$this\(IntracommReport\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/intracommreport/class/intracommreport.class.php + path: ../../../htdocs/intracommreport/class/intracommreport.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/intracommreport/class/intracommreport.class.php + path: ../../../htdocs/intracommreport/class/intracommreport.class.php - message: '#^Parameter \#3 \$period_reference of method IntracommReport\:\:addItemsFact\(\) expects int, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/intracommreport/class/intracommreport.class.php + path: ../../../htdocs/intracommreport/class/intracommreport.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/intracommreport/class/intracommreport.class.php + path: ../../../htdocs/intracommreport/class/intracommreport.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 4 - path: ../../htdocs/intracommreport/lib/intracommreport.lib.php + path: ../../../htdocs/intracommreport/lib/intracommreport.lib.php - message: '#^Variable \$action in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/intracommreport/list.php + path: ../../../htdocs/intracommreport/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/intracommreport/list.php + path: ../../../htdocs/intracommreport/list.php - message: '#^Variable \$groupby might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/intracommreport/list.php + path: ../../../htdocs/intracommreport/list.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/intracommreport/list.php + path: ../../../htdocs/intracommreport/list.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Method KnowledgeManagement\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Method KnowledgeManagement\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Method KnowledgeManagement\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Method KnowledgeManagement\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Method KnowledgeManagement\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Method KnowledgeManagement\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php + path: ../../../htdocs/knowledgemanagement/class/api_knowledgemanagement.class.php - message: '#^Call to function method_exists\(\) with \$this\(KnowledgeRecord\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function method_exists\(\) with \$this\(KnowledgeRecord\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function property_exists\(\) with \$this\(KnowledgeRecord\) and ''lang'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function property_exists\(\) with \$this\(KnowledgeRecord\) and ''question'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function property_exists\(\) with KnowledgeRecord and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function property_exists\(\) with KnowledgeRecord and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function property_exists\(\) with KnowledgeRecord and ''question'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function property_exists\(\) with KnowledgeRecord and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Call to function property_exists\(\) with KnowledgeRecord and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/knowledgemanagement/class/knowledgerecord.class.php + path: ../../../htdocs/knowledgemanagement/class/knowledgerecord.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/knowledgemanagement/knowledgerecord_card.php + path: ../../../htdocs/knowledgemanagement/knowledgerecord_card.php - message: '#^Property KnowledgeRecord\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/knowledgemanagement/knowledgerecord_card.php + path: ../../../htdocs/knowledgemanagement/knowledgerecord_card.php - message: '#^Property KnowledgeRecord\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/knowledgemanagement/knowledgerecord_card.php + path: ../../../htdocs/knowledgemanagement/knowledgerecord_card.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/knowledgemanagement/knowledgerecord_document.php + path: ../../../htdocs/knowledgemanagement/knowledgerecord_document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/knowledgemanagement/knowledgerecord_list.php + path: ../../../htdocs/knowledgemanagement/knowledgerecord_list.php - message: '#^Property Loan\:\:\$account_capital \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/loan/class/loan.class.php + path: ../../../htdocs/loan/class/loan.class.php - message: '#^Property Loan\:\:\$account_insurance \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/loan/class/loan.class.php + path: ../../../htdocs/loan/class/loan.class.php - message: '#^Property Loan\:\:\$account_interest \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/loan/class/loan.class.php + path: ../../../htdocs/loan/class/loan.class.php - message: '#^Property Loan\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/loan/class/loan.class.php + path: ../../../htdocs/loan/class/loan.class.php - message: '#^Property Loan\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/loan/class/loan.class.php + path: ../../../htdocs/loan/class/loan.class.php - message: '#^Property Loan\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/loan/class/loan.class.php + path: ../../../htdocs/loan/class/loan.class.php - message: '#^Property Loan\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/loan/class/loan.class.php + path: ../../../htdocs/loan/class/loan.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Property LoanSchedule\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Property LoanSchedule\:\:\$fk_loan \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Property LoanSchedule\:\:\$fk_payment_loan \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Property LoanSchedule\:\:\$fk_typepayment \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Property LoanSchedule\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Property LoanSchedule\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Property LoanSchedule\:\:\$num_payment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/loan/class/loanschedule.class.php + path: ../../../htdocs/loan/class/loanschedule.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$amount_capital \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$amount_insurance \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$fk_loan \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$fk_typepayment \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Property PaymentLoan\:\:\$num_payment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/loan/class/paymentloan.class.php + path: ../../../htdocs/loan/class/paymentloan.class.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/loan/payment/card.php + path: ../../../htdocs/loan/payment/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/loan/payment/payment.php + path: ../../../htdocs/loan/payment/payment.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/loan/payment/payment.php + path: ../../../htdocs/loan/payment/payment.php - message: '#^Variable \$amount_capital might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/loan/payment/payment.php + path: ../../../htdocs/loan/payment/payment.php - message: '#^Variable \$amount_insurance might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/loan/payment/payment.php + path: ../../../htdocs/loan/payment/payment.php - message: '#^Variable \$amount_interest might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/loan/payment/payment.php + path: ../../../htdocs/loan/payment/payment.php - message: '#^Variable \$line_id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/loan/payment/payment.php + path: ../../../htdocs/loan/payment/payment.php - message: '#^Variable \$sumpaid might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/loan/payment/payment.php + path: ../../../htdocs/loan/payment/payment.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/loan/schedule.php + path: ../../../htdocs/loan/schedule.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 3 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Elseif condition is always true\.$#' identifier: elseif.alwaysTrue count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 2 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Parameter \#1 \$var of function analyseVarsForSqlAndScriptsInjection expects array\\|string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Parameter \#1 \$var of function analyseVarsForSqlAndScriptsInjection expects array\\|string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 35 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Variable \$_POST in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/main.inc.php + path: ../../../htdocs/main.inc.php - message: '#^Parameter \#1 \$array of function dol_sort_array contains unresolvable type\.$#' identifier: argument.unresolvableType count: 1 - path: ../../htdocs/margin/agentMargins.php + path: ../../../htdocs/margin/agentMargins.php - message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#' identifier: function.unresolvableReturnType count: 1 - path: ../../htdocs/margin/agentMargins.php + path: ../../../htdocs/margin/agentMargins.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/margin/agentMargins.php + path: ../../../htdocs/margin/agentMargins.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/margin/checkMargins.php + path: ../../../htdocs/margin/checkMargins.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/margin/checkMargins.php + path: ../../../htdocs/margin/checkMargins.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/margin/customerMargins.php + path: ../../../htdocs/margin/customerMargins.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/margin/customerMargins.php + path: ../../../htdocs/margin/customerMargins.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/margin/customerMargins.php + path: ../../../htdocs/margin/customerMargins.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/margin/productMargins.php + path: ../../../htdocs/margin/productMargins.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/margin/productMargins.php + path: ../../../htdocs/margin/productMargins.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/margin/tabs/productMargins.php + path: ../../../htdocs/margin/tabs/productMargins.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/margin/tabs/productMargins.php + path: ../../../htdocs/margin/tabs/productMargins.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/margin/tabs/thirdpartyMargins.php + path: ../../../htdocs/margin/tabs/thirdpartyMargins.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/margin/tabs/thirdpartyMargins.php + path: ../../../htdocs/margin/tabs/thirdpartyMargins.php - message: '#^Variable \$dolibarr_main_db_character_set might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/master.inc.php + path: ../../../htdocs/master.inc.php - message: '#^Variable \$dolibarr_main_db_collation might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/master.inc.php + path: ../../../htdocs/master.inc.php - message: '#^Variable \$dolibarr_main_db_cryptkey might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/master.inc.php + path: ../../../htdocs/master.inc.php - message: '#^Variable \$dolibarr_main_db_encryption might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/master.inc.php + path: ../../../htdocs/master.inc.php - message: '#^Variable \$dolibarr_main_db_prefix might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/master.inc.php + path: ../../../htdocs/master.inc.php - message: '#^Variable \$dolibarr_main_db_type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/master.inc.php + path: ../../../htdocs/master.inc.php - message: '#^Variable \$dolibarr_main_limit_users might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/master.inc.php + path: ../../../htdocs/master.inc.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Call to function is_array\(\) with non\-empty\-array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Parameter \#2 \$arrayreplacement of function dolReplaceInFile expects array\, array\\|string\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 34 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 3 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$class might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$content might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$field might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$key might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$moduleobj might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$newmask in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$outputfilezip might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$proparrayofkeyval in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Variable \$realpathtoapi in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/modulebuilder/index.php + path: ../../../htdocs/modulebuilder/index.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/admin/about.php + path: ../../../htdocs/modulebuilder/template/admin/about.php - message: '#^Path in include\(\) "\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/admin/about.php + path: ../../../htdocs/modulebuilder/template/admin/about.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/admin/myobject_extrafields.php + path: ../../../htdocs/modulebuilder/template/admin/myobject_extrafields.php - message: '#^Path in include\(\) "\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/admin/myobject_extrafields.php + path: ../../../htdocs/modulebuilder/template/admin/myobject_extrafields.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/admin/setup.php + path: ../../../htdocs/modulebuilder/template/admin/setup.php - message: '#^Offset ''includedocgeneration'' on array\{label\: ''MyObject'', includerefgeneration\: 0, includedocgeneration\: 0, class\: ''MyObject''\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/modulebuilder/template/admin/setup.php + path: ../../../htdocs/modulebuilder/template/admin/setup.php - message: '#^Offset ''includerefgeneration'' on array\{label\: ''MyObject'', includerefgeneration\: 0, includedocgeneration\: 0, class\: ''MyObject''\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/modulebuilder/template/admin/setup.php + path: ../../../htdocs/modulebuilder/template/admin/setup.php - message: '#^Path in include\(\) "\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/admin/setup.php + path: ../../../htdocs/modulebuilder/template/admin/setup.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/ajax/myobject.php + path: ../../../htdocs/modulebuilder/template/ajax/myobject.php - message: '#^Path in include\(\) "\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/ajax/myobject.php + path: ../../../htdocs/modulebuilder/template/ajax/myobject.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/modulebuilder/template/class/actions_mymodule.class.php + path: ../../../htdocs/modulebuilder/template/class/actions_mymodule.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/modulebuilder/template/class/actions_mymodule.class.php + path: ../../../htdocs/modulebuilder/template/class/actions_mymodule.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/class/actions_mymodule.class.php + path: ../../../htdocs/modulebuilder/template/class/actions_mymodule.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/modulebuilder/template/class/api_mymodule.class.php + path: ../../../htdocs/modulebuilder/template/class/api_mymodule.class.php - message: '#^Parameter \#1 \$data of method MyModuleApi\:\:_validateMyObject\(\) expects array\, list\\|null given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/modulebuilder/template/class/api_mymodule.class.php + path: ../../../htdocs/modulebuilder/template/class/api_mymodule.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/modulebuilder/template/class/api_mymodule.class.php + path: ../../../htdocs/modulebuilder/template/class/api_mymodule.class.php - message: '#^Unable to resolve the template type T in call to method MyModuleApi\:\:_cleanObjectDatas\(\)$#' identifier: argument.templateType count: 1 - path: ../../htdocs/modulebuilder/template/class/api_mymodule.class.php + path: ../../../htdocs/modulebuilder/template/class/api_mymodule.class.php - message: '#^Call to function method_exists\(\) with \$this\(MyObject\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function method_exists\(\) with \$this\(MyObject\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(MyObject\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(MyObject\) and ''fk_soc'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(MyObject\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(MyObject\) and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with \$this\(MyObject\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with MyObject and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with MyObject and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with MyObject and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with MyObject and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Call to function property_exists\(\) with MyObject and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Parameter \#1 \$params of method MyObject\:\:getTooltipContentArray\(\) expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Property CommonObject\:\:\$isextrafieldmanaged \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Property MyObject\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/modulebuilder/template/class/myobject.class.php + path: ../../../htdocs/modulebuilder/template/class/myobject.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/modMyModule.class.php + path: ../../../htdocs/modulebuilder/template/core/modules/modMyModule.class.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, MyObject given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php - message: '#^Property MyObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/doc_generic_myobject_odt.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Property pdf_standard_myobject\:\:\$cols \(array\\) does not accept non\-empty\-array\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php + path: ../../../htdocs/modulebuilder/template/core/modules/mymodule/doc/pdf_standard_myobject.modules.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/css/mymodule.css.php + path: ../../../htdocs/modulebuilder/template/css/mymodule.css.php - message: '#^Path in include\(\) "\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/css/mymodule.css.php + path: ../../../htdocs/modulebuilder/template/css/mymodule.css.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/js/mymodule.js.php + path: ../../../htdocs/modulebuilder/template/js/mymodule.js.php - message: '#^Path in include\(\) "\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/js/mymodule.js.php + path: ../../../htdocs/modulebuilder/template/js/mymodule.js.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 4 - path: ../../htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php + path: ../../../htdocs/modulebuilder/template/lib/mymodule_myobject.lib.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/mymoduleindex.php + path: ../../../htdocs/modulebuilder/template/mymoduleindex.php - message: '#^Path in include\(\) "\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/mymoduleindex.php + path: ../../../htdocs/modulebuilder/template/mymoduleindex.php - message: '#^Path in include\(\) "\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/mymoduleindex.php + path: ../../../htdocs/modulebuilder/template/mymoduleindex.php - message: '#^Call to function is_numeric\(\) with 0 will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/modulebuilder/template/myobject_agenda.php + path: ../../../htdocs/modulebuilder/template/myobject_agenda.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/myobject_agenda.php + path: ../../../htdocs/modulebuilder/template/myobject_agenda.php - message: '#^Path in include\(\) "\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_agenda.php + path: ../../../htdocs/modulebuilder/template/myobject_agenda.php - message: '#^Path in include\(\) "\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_agenda.php + path: ../../../htdocs/modulebuilder/template/myobject_agenda.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/modulebuilder/template/myobject_card.php + path: ../../../htdocs/modulebuilder/template/myobject_card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/myobject_card.php + path: ../../../htdocs/modulebuilder/template/myobject_card.php - message: '#^Path in include\(\) "\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_card.php + path: ../../../htdocs/modulebuilder/template/myobject_card.php - message: '#^Path in include\(\) "\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_card.php + path: ../../../htdocs/modulebuilder/template/myobject_card.php - message: '#^Property MyObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/modulebuilder/template/myobject_card.php + path: ../../../htdocs/modulebuilder/template/myobject_card.php - message: '#^Property MyObject\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/modulebuilder/template/myobject_card.php + path: ../../../htdocs/modulebuilder/template/myobject_card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/myobject_contact.php + path: ../../../htdocs/modulebuilder/template/myobject_contact.php - message: '#^Path in include\(\) "\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_contact.php + path: ../../../htdocs/modulebuilder/template/myobject_contact.php - message: '#^Path in include\(\) "\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_contact.php + path: ../../../htdocs/modulebuilder/template/myobject_contact.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/myobject_document.php + path: ../../../htdocs/modulebuilder/template/myobject_document.php - message: '#^Path in include\(\) "\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_document.php + path: ../../../htdocs/modulebuilder/template/myobject_document.php - message: '#^Path in include\(\) "\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_document.php + path: ../../../htdocs/modulebuilder/template/myobject_document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/modulebuilder/template/myobject_document.php + path: ../../../htdocs/modulebuilder/template/myobject_document.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/modulebuilder/template/myobject_list.php + path: ../../../htdocs/modulebuilder/template/myobject_list.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/myobject_list.php + path: ../../../htdocs/modulebuilder/template/myobject_list.php - message: '#^Path in include\(\) "\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_list.php + path: ../../../htdocs/modulebuilder/template/myobject_list.php - message: '#^Path in include\(\) "\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_list.php + path: ../../../htdocs/modulebuilder/template/myobject_list.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/modulebuilder/template/myobject_note.php + path: ../../../htdocs/modulebuilder/template/myobject_note.php - message: '#^Path in include\(\) "\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_note.php + path: ../../../htdocs/modulebuilder/template/myobject_note.php - message: '#^Path in include\(\) "\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/myobject_note.php + path: ../../../htdocs/modulebuilder/template/myobject_note.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/modulebuilder/template/scripts/mymodule.php + path: ../../../htdocs/modulebuilder/template/scripts/mymodule.php - message: '#^Path in include\(\) "\.\./\.\./master\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/scripts/mymodule.php + path: ../../../htdocs/modulebuilder/template/scripts/mymodule.php - message: '#^Path in include\(\) "\.\./master\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/modulebuilder/template/scripts/mymodule.php + path: ../../../htdocs/modulebuilder/template/scripts/mymodule.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:produceAndConsume\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:produceAndConsumeAll\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Method Mos\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 8 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Property MoLine\:\:\$fk_warehouse \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/mrp/class/api_mos.class.php + path: ../../../htdocs/mrp/class/api_mos.class.php - message: '#^Call to function method_exists\(\) with \$this\(Mo\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Call to function method_exists\(\) with \$this\(Mo\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Call to function property_exists\(\) with \$this\(Mo\) and ''qty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Call to function property_exists\(\) with \$this\(Mo\) and ''socid'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Method Mo\:\:fetchAll\(\) has parameter \$filter with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property Mo\:\:\$fk_product \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property Mo\:\:\$fk_warehouse \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property Mo\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property Mo\:\:\$mrptype \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property Mo\:\:\$qty \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property Mo\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property Mo\:\:\$tpl \(array\\) does not accept array\\.$#' identifier: assign.propertyType count: 6 - path: ../../htdocs/mrp/class/mo.class.php + path: ../../../htdocs/mrp/class/mo.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/class/moline.class.php + path: ../../../htdocs/mrp/class/moline.class.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/index.php + path: ../../../htdocs/mrp/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/index.php + path: ../../../htdocs/mrp/index.php - message: '#^Variable \$badgeStatus4 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/index.php + path: ../../../htdocs/mrp/index.php - message: '#^Variable \$badgeStatus6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/index.php + path: ../../../htdocs/mrp/index.php - message: '#^Variable \$badgeStatus9 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/index.php + path: ../../../htdocs/mrp/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/mrp/mo_agenda.php + path: ../../../htdocs/mrp/mo_agenda.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/mrp/mo_agenda.php + path: ../../../htdocs/mrp/mo_agenda.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/mo_agenda.php + path: ../../../htdocs/mrp/mo_agenda.php - message: '#^Property Mo\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/mo_card.php + path: ../../../htdocs/mrp/mo_card.php - message: '#^Property Mo\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/mo_card.php + path: ../../../htdocs/mrp/mo_card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/mrp/mo_card.php + path: ../../../htdocs/mrp/mo_card.php - message: '#^Variable \$titlelist might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/mo_card.php + path: ../../../htdocs/mrp/mo_card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/mrp/mo_document.php + path: ../../../htdocs/mrp/mo_document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/mo_document.php + path: ../../../htdocs/mrp/mo_document.php - message: '#^Property Mo\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/mo_movements.php + path: ../../../htdocs/mrp/mo_movements.php - message: '#^Property Mo\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/mo_movements.php + path: ../../../htdocs/mrp/mo_movements.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/mrp/mo_movements.php + path: ../../../htdocs/mrp/mo_movements.php - message: '#^Variable \$movement might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/mo_movements.php + path: ../../../htdocs/mrp/mo_movements.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/mo_movements.php + path: ../../../htdocs/mrp/mo_movements.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/mrp/mo_note.php + path: ../../../htdocs/mrp/mo_note.php - message: '#^Call to function is_object\(\) with MoLine will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Left side of \|\| is always true\.$#' identifier: booleanOr.leftAlwaysTrue count: 5 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Loose comparison using \=\= between ''consumeandproduceall'' and ''consumeandproduceall'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Property Mo\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Property Mo\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 2 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Variable \$extrafields in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/mrp/mo_production.php + path: ../../../htdocs/mrp/mo_production.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/mrp/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/mrp/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/mrp/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/mrp/tpl/linkedobjectblock.tpl.php - message: '#^Method MultiCurrencies\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/multicurrency/class/api_multicurrencies.class.php + path: ../../../htdocs/multicurrency/class/api_multicurrencies.class.php - message: '#^Method MultiCurrencies\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/multicurrency/class/api_multicurrencies.class.php + path: ../../../htdocs/multicurrency/class/api_multicurrencies.class.php - message: '#^Method MultiCurrencies\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/multicurrency/class/api_multicurrencies.class.php + path: ../../../htdocs/multicurrency/class/api_multicurrencies.class.php - message: '#^Method MultiCurrencies\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/multicurrency/class/api_multicurrencies.class.php + path: ../../../htdocs/multicurrency/class/api_multicurrencies.class.php - message: '#^Method MultiCurrencies\:\:updateRate\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/multicurrency/class/api_multicurrencies.class.php + path: ../../../htdocs/multicurrency/class/api_multicurrencies.class.php - message: '#^Parameter \#1 \$object of method MultiCurrencies\:\:_cleanObjectDatasRate\(\) expects MultiCurrency, CurrencyRate given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/multicurrency/class/api_multicurrencies.class.php + path: ../../../htdocs/multicurrency/class/api_multicurrencies.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 3 - path: ../../htdocs/multicurrency/multicurrency_rate.php + path: ../../../htdocs/multicurrency/multicurrency_rate.php - message: '#^Variable \$arrayofmassactions might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/multicurrency/multicurrency_rate.php + path: ../../../htdocs/multicurrency/multicurrency_rate.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/opcachepreload.php + path: ../../../htdocs/opcachepreload.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/opensurvey/card.php + path: ../../../htdocs/opensurvey/card.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/opensurvey/card.php + path: ../../../htdocs/opensurvey/card.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/opensurvey/card.php + path: ../../../htdocs/opensurvey/card.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/card.php + path: ../../../htdocs/opensurvey/card.php - message: '#^Variable \$userstatic might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/opensurvey/card.php + path: ../../../htdocs/opensurvey/card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Method Opensurveysondage\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$format \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$id_sondage \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$mail_admin \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$mailsonde \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$nom_admin \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Property Opensurveysondage\:\:\$title \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/opensurvey/class/opensurveysondage.class.php + path: ../../../htdocs/opensurvey/class/opensurveysondage.class.php - message: '#^Offset int\<0, max\> on array\, int\<0, max\>\> in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/opensurvey/results.php + path: ../../../htdocs/opensurvey/results.php - message: '#^Variable \$cleinsertion might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/opensurvey/results.php + path: ../../../htdocs/opensurvey/results.php - message: '#^Variable \$erreur_ajout_date in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/opensurvey/results.php + path: ../../../htdocs/opensurvey/results.php - message: '#^Variable \$expiredate might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/results.php + path: ../../../htdocs/opensurvey/results.php - message: '#^Variable \$meilleurecolonne might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/results.php + path: ../../../htdocs/opensurvey/results.php - message: '#^Variable \$modifier might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/results.php + path: ../../../htdocs/opensurvey/results.php - message: '#^Variable \$userstatic might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/results.php + path: ../../../htdocs/opensurvey/results.php - message: '#^Variable \$allow_comments might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/wizard/create_survey.php + path: ../../../htdocs/opensurvey/wizard/create_survey.php - message: '#^Variable \$allow_spy might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/wizard/create_survey.php + path: ../../../htdocs/opensurvey/wizard/create_survey.php - message: '#^Variable \$champdatefin might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/opensurvey/wizard/create_survey.php + path: ../../../htdocs/opensurvey/wizard/create_survey.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Method Partnerships\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Method Partnerships\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Method Partnerships\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Method Partnerships\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Method Partnerships\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Method Partnerships\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/partnership/class/api_partnerships.class.php + path: ../../../htdocs/partnership/class/api_partnerships.class.php - message: '#^Call to function method_exists\(\) with \$this\(Partnership\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Call to function method_exists\(\) with \$this\(Partnership\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Call to function property_exists\(\) with \$this\(Partnership\) and ''fk_soc'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Call to function property_exists\(\) with \$this\(Partnership\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Call to function property_exists\(\) with Partnership and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Call to function property_exists\(\) with Partnership and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Call to function property_exists\(\) with Partnership and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Call to function property_exists\(\) with Partnership and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Property Partnership\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/partnership/class/partnership.class.php + path: ../../../htdocs/partnership/class/partnership.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/partnership/class/partnership_type.class.php + path: ../../../htdocs/partnership/class/partnership_type.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/partnership/class/partnership_type.class.php + path: ../../../htdocs/partnership/class/partnership_type.class.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 2 - path: ../../htdocs/partnership/class/partnership_type.class.php + path: ../../../htdocs/partnership/class/partnership_type.class.php - message: '#^Variable \$url in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/partnership/class/partnership_type.class.php + path: ../../../htdocs/partnership/class/partnership_type.class.php - message: '#^Call to function is_array\(\) with array\{\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/partnership/class/partnershiputils.class.php + path: ../../../htdocs/partnership/class/partnershiputils.class.php - message: '#^Call to function is_object\(\) with Partnership will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/partnership/class/partnershiputils.class.php + path: ../../../htdocs/partnership/class/partnershiputils.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/partnership/class/partnershiputils.class.php + path: ../../../htdocs/partnership/class/partnershiputils.class.php - message: '#^Variable \$triggersendname in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/partnership/class/partnershiputils.class.php + path: ../../../htdocs/partnership/class/partnershiputils.class.php - message: '#^Property mod_partnership_standard\:\:\$prefix has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/partnership/core/modules/partnership/mod_partnership_standard.php + path: ../../../htdocs/partnership/core/modules/partnership/mod_partnership_standard.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/partnership/partnership_card.php + path: ../../../htdocs/partnership/partnership_card.php - message: '#^Property Partnership\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/partnership/partnership_card.php + path: ../../../htdocs/partnership/partnership_card.php - message: '#^Property Partnership\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/partnership/partnership_card.php + path: ../../../htdocs/partnership/partnership_card.php - message: '#^Variable \$adht might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/partnership/partnership_card.php + path: ../../../htdocs/partnership/partnership_card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/partnership/partnership_card.php + path: ../../../htdocs/partnership/partnership_card.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/partnership/partnership_card.php + path: ../../../htdocs/partnership/partnership_card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/partnership/partnership_list.php + path: ../../../htdocs/partnership/partnership_list.php - message: '#^Offset ''searchall'' on array\{type\: ''integer'', label\: ''Country'', enabled\: 1, position\: 51, notnull\: 0, visible\: 1, alwayseditable\: 1, css\: ''maxwidth500…'', \.\.\.\}\|array\{type\: ''varchar\(128\)'', label\: ''Town'', enabled\: 1, position\: 51, notnull\: 0, visible\: 1, alwayseditable\: 1, searchall\: 1\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/partnership/partnership_list.php + path: ../../../htdocs/partnership/partnership_list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/partnership/partnership_list.php + path: ../../../htdocs/partnership/partnership_list.php - message: '#^Variable \$IBS_DEVISE in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/paybox/lib/paybox.lib.php + path: ../../../htdocs/paybox/lib/paybox.lib.php - message: '#^Variable \$IBS_RANG in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/paybox/lib/paybox.lib.php + path: ../../../htdocs/paybox/lib/paybox.lib.php - message: '#^Variable \$IBS_SITE in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/paybox/lib/paybox.lib.php + path: ../../../htdocs/paybox/lib/paybox.lib.php - message: '#^Comparison operation "\<" between \-1 and 0 is always true\.$#' identifier: smaller.alwaysTrue count: 1 - path: ../../htdocs/paypal/lib/paypal.lib.php + path: ../../../htdocs/paypal/lib/paypal.lib.php - message: '#^Parameter \#3 \$value of function curl_setopt expects 0\|2, bool given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/paypal/lib/paypal.lib.php + path: ../../../htdocs/paypal/lib/paypal.lib.php - message: '#^Parameter \#3 \$value of function curl_setopt expects bool, int given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/paypal/lib/paypal.lib.php + path: ../../../htdocs/paypal/lib/paypal.lib.php - message: '#^Variable \$paypalprefix in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/paypal/lib/paypal.lib.php + path: ../../../htdocs/paypal/lib/paypal.lib.php - message: '#^Variable \$classfile might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/printing/admin/printing.php + path: ../../../htdocs/printing/admin/printing.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 1 - path: ../../htdocs/product/admin/price_rules.php + path: ../../../htdocs/product/admin/price_rules.php - message: '#^Strict comparison using \=\=\= between ''0'' and ''0'' will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 1 - path: ../../htdocs/product/admin/price_rules.php + path: ../../../htdocs/product/admin/price_rules.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/product/admin/product.php + path: ../../../htdocs/product/admin/product.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/admin/product.php + path: ../../../htdocs/product/admin/product.php - message: '#^Variable \$obj might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/product/admin/product.php + path: ../../../htdocs/product/admin/product.php - message: '#^Comparison operation "\<" between 0 and 0 is always false\.$#' identifier: smaller.alwaysFalse count: 1 - path: ../../htdocs/product/admin/product_tools.php + path: ../../../htdocs/product/admin/product_tools.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/admin/product_tools.php + path: ../../../htdocs/product/admin/product_tools.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/product/admin/product_tools.php + path: ../../../htdocs/product/admin/product_tools.php - message: '#^Variable \$price_base_type in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/admin/product_tools.php + path: ../../../htdocs/product/admin/product_tools.php - message: '#^Property ActionsCardProduct\:\:\$field_list has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/product/canvas/product/actions_card_product.class.php + path: ../../../htdocs/product/canvas/product/actions_card_product.class.php - message: '#^Property ActionsCardService\:\:\$field_list has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/product/canvas/service/actions_card_service.class.php + path: ../../../htdocs/product/canvas/service/actions_card_service.class.php - message: '#^Property ActionsCardService\:\:\$tpl has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/product/canvas/service/actions_card_service.class.php + path: ../../../htdocs/product/canvas/service/actions_card_service.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/product/card.php + path: ../../../htdocs/product/card.php - message: '#^Variable \$modCodeProduct might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/card.php + path: ../../../htdocs/product/card.php - message: '#^Variable \$prod might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/card.php + path: ../../../htdocs/product/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:addPurchasePrice\(\) has parameter \$localtaxes_array with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:addVariant\(\) has parameter \$features with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:addVariantByProductRef\(\) has parameter \$features with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getAttributeValueById\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getAttributeValueByRef\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getAttributeValues\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getAttributeValuesByRef\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getAttributes\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getAttributesByRef\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getAttributesByRefExt\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getSubproducts\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getSupplierProducts\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getVariants\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:getVariantsByProdRef\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:putAttributeValue\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:putAttributes\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Method Products\:\:putVariant\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Parameter \#1 \$object of method Products\:\:_cleanObjectDatas\(\) expects object, array\\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Property Products\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/api_products.class.php + path: ../../../htdocs/product/class/api_products.class.php - message: '#^Strict comparison using \=\=\= between 2 and 2 will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 1 - path: ../../htdocs/product/class/html.formproduct.class.php + path: ../../../htdocs/product/class/html.formproduct.class.php - message: '#^Call to function method_exists\(\) with \$this\(Product\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Call to function method_exists\(\) with \$this\(Product\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Call to function property_exists\(\) with \$this\(Product\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Call to function property_exists\(\) with \$this\(Product\) and ''price'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Call to function property_exists\(\) with \$this\(Product\) and ''price_ttc'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Call to function property_exists\(\) with \$this\(Product\) and ''stock_reel'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Comparison operation "\>\=" between 0 and 0 is always true\.$#' identifier: greaterOrEqual.alwaysTrue count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Loose comparison using \=\= between 1 and 1 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Method Product\:\:_get_stats\(\) should return \-1\|array\, array\\> but returns non\-empty\-array\, array\{string, \(float\|int\)\}\>\.$#' identifier: return.type count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$accountancy_code_buy \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$accountancy_code_sell \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$desiredstock \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$fk_default_bom \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$seuil_stock_alerte \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$sousprods \(array\\>\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Property Product\:\:\$status_buy \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/product/class/product.class.php + path: ../../../htdocs/product/class/product.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/class/productbatch.class.php + path: ../../../htdocs/product/class/productbatch.class.php - message: '#^Property Productbatch\:\:\$batch \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/class/productbatch.class.php + path: ../../../htdocs/product/class/productbatch.class.php - message: '#^Property Productbatch\:\:\$eatby \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/productbatch.class.php + path: ../../../htdocs/product/class/productbatch.class.php - message: '#^Property Productbatch\:\:\$qty \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/class/productbatch.class.php + path: ../../../htdocs/product/class/productbatch.class.php - message: '#^Property Productbatch\:\:\$sellby \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/productbatch.class.php + path: ../../../htdocs/product/class/productbatch.class.php - message: '#^Loose comparison using \=\= between '''' and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 6 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$fk_product \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$fk_soc \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$fk_user \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$localtax1_tx \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$localtax2_tx \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$price \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$price_base_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$price_label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$price_min \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$price_min_ttc \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$price_ttc \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$recuperableonly \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$ref_customer \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Property ProductCustomerPrice\:\:\$tva_tx \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/productcustomerprice.class.php + path: ../../../htdocs/product/class/productcustomerprice.class.php - message: '#^Call to function property_exists\(\) with ProductFournisseurPrice and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Call to function property_exists\(\) with ProductFournisseurPrice and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Call to function property_exists\(\) with ProductFournisseurPrice and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Call to function property_exists\(\) with ProductFournisseurPrice and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Method ProductFournisseurPrice\:\:fetchAll\(\) has parameter \$filter with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Method ProductFournisseurPrice\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/productfournisseurprice.class.php + path: ../../../htdocs/product/class/productfournisseurprice.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/product/class/propalmergepdfproduct.class.php + path: ../../../htdocs/product/class/propalmergepdfproduct.class.php - message: '#^Property Propalmergepdfproduct\:\:\$file_name \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/propalmergepdfproduct.class.php + path: ../../../htdocs/product/class/propalmergepdfproduct.class.php - message: '#^Property Propalmergepdfproduct\:\:\$fk_product \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/propalmergepdfproduct.class.php + path: ../../../htdocs/product/class/propalmergepdfproduct.class.php - message: '#^Property Propalmergepdfproduct\:\:\$fk_user_author \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/class/propalmergepdfproduct.class.php + path: ../../../htdocs/product/class/propalmergepdfproduct.class.php - message: '#^Property Propalmergepdfproduct\:\:\$fk_user_mod \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/class/propalmergepdfproduct.class.php + path: ../../../htdocs/product/class/propalmergepdfproduct.class.php - message: '#^Property Propalmergepdfproduct\:\:\$lang \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/class/propalmergepdfproduct.class.php + path: ../../../htdocs/product/class/propalmergepdfproduct.class.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/composition/card.php + path: ../../../htdocs/product/composition/card.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/composition/card.php + path: ../../../htdocs/product/composition/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/product/document.php + path: ../../../htdocs/product/document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/document.php + path: ../../../htdocs/product/document.php - message: '#^Variable \$upload_dirold might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/document.php + path: ../../../htdocs/product/document.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/dynamic_price/class/price_expression.class.php + path: ../../../htdocs/product/dynamic_price/class/price_expression.class.php - message: '#^Property PriceExpression\:\:\$expression \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/dynamic_price/class/price_expression.class.php + path: ../../../htdocs/product/dynamic_price/class/price_expression.class.php - message: '#^Property PriceExpression\:\:\$title \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/dynamic_price/class/price_expression.class.php + path: ../../../htdocs/product/dynamic_price/class/price_expression.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/dynamic_price/class/price_global_variable.class.php + path: ../../../htdocs/product/dynamic_price/class/price_global_variable.class.php - message: '#^Property PriceGlobalVariable\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/dynamic_price/class/price_global_variable.class.php + path: ../../../htdocs/product/dynamic_price/class/price_global_variable.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/dynamic_price/class/price_global_variable_updater.class.php + path: ../../../htdocs/product/dynamic_price/class/price_global_variable_updater.class.php - message: '#^Property PriceGlobalVariableUpdater\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/product/dynamic_price/class/price_global_variable_updater.class.php + path: ../../../htdocs/product/dynamic_price/class/price_global_variable_updater.class.php - message: '#^Property PriceExpression\:\:\$expression \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/dynamic_price/editor.php + path: ../../../htdocs/product/dynamic_price/editor.php - message: '#^Variable \$lastmodified might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/index.php + path: ../../../htdocs/product/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/product/inventory/card.php + path: ../../../htdocs/product/inventory/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/inventory/card.php + path: ../../../htdocs/product/inventory/card.php - message: '#^Property Inventory\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/inventory/card.php + path: ../../../htdocs/product/inventory/card.php - message: '#^Variable \$backtopageforcancel might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/inventory/card.php + path: ../../../htdocs/product/inventory/card.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/inventory/card.php + path: ../../../htdocs/product/inventory/card.php - message: '#^Call to function method_exists\(\) with \$this\(Inventory\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/inventory/class/inventory.class.php + path: ../../../htdocs/product/inventory/class/inventory.class.php - message: '#^Call to function method_exists\(\) with \$this\(Inventory\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/inventory/class/inventory.class.php + path: ../../../htdocs/product/inventory/class/inventory.class.php - message: '#^Variable \$error in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/inventory/inventory.php + path: ../../../htdocs/product/inventory/inventory.php - message: '#^Offset ''help'' on array\{label\: string, checked\: string, enabled\?\: string, type\?\: string, langfile\?\: string\} in empty\(\) does not exist\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/product/list.php + path: ../../../htdocs/product/list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/product/list.php + path: ../../../htdocs/product/list.php - message: '#^Variable \$perm might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/list.php + path: ../../../htdocs/product/list.php - message: '#^Variable \$workstation_static might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/product/list.php + path: ../../../htdocs/product/list.php - message: '#^Loose comparison using \=\= between ''add_customer_price'' and ''add_customer_price'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Loose comparison using \=\= between ''edit_customer_price'' and ''edit_price'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Loose comparison using \=\= between ''edit_level_price'' and ''edit_level_price'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Loose comparison using \=\= between ''edit_price'' and ''edit_price'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Parameter \#4 \$txtva of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 8 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$extrafield_values might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$ii might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$lineid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$maxpricesupplier might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$obj might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$rowid might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/price.php + path: ../../../htdocs/product/price.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/product/price_suppliers.php + path: ../../../htdocs/product/price_suppliers.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/price_suppliers.php + path: ../../../htdocs/product/price_suppliers.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/price_suppliers.php + path: ../../../htdocs/product/price_suppliers.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/product/reassort.php + path: ../../../htdocs/product/reassort.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/reassort.php + path: ../../../htdocs/product/reassort.php - message: '#^Comparison operation "\<" between null and 0 is always false\.$#' identifier: smaller.alwaysFalse count: 1 - path: ../../htdocs/product/reassortlot.php + path: ../../../htdocs/product/reassortlot.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/product/reassortlot.php + path: ../../../htdocs/product/reassortlot.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/reassortlot.php + path: ../../../htdocs/product/reassortlot.php - message: '#^Variable \$extrafields might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/reassortlot.php + path: ../../../htdocs/product/reassortlot.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/reassortlot.php + path: ../../../htdocs/product/reassortlot.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/bom.php + path: ../../../htdocs/product/stats/bom.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/bom.php + path: ../../../htdocs/product/stats/bom.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/product/stats/card.php + path: ../../../htdocs/product/stats/card.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/commande.php + path: ../../../htdocs/product/stats/commande.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/commande.php + path: ../../../htdocs/product/stats/commande.php - message: '#^Variable \$param might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stats/commande_fournisseur.php + path: ../../../htdocs/product/stats/commande_fournisseur.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/commande_fournisseur.php + path: ../../../htdocs/product/stats/commande_fournisseur.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/commande_fournisseur.php + path: ../../../htdocs/product/stats/commande_fournisseur.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/product/stats/contrat.php + path: ../../../htdocs/product/stats/contrat.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/contrat.php + path: ../../../htdocs/product/stats/contrat.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/contrat.php + path: ../../../htdocs/product/stats/contrat.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/expedition.php + path: ../../../htdocs/product/stats/expedition.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/expedition.php + path: ../../../htdocs/product/stats/expedition.php - message: '#^Variable \$param might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stats/facture.php + path: ../../../htdocs/product/stats/facture.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/facture.php + path: ../../../htdocs/product/stats/facture.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/facture.php + path: ../../../htdocs/product/stats/facture.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/facture_fournisseur.php + path: ../../../htdocs/product/stats/facture_fournisseur.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/facture_fournisseur.php + path: ../../../htdocs/product/stats/facture_fournisseur.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/facturerec.php + path: ../../../htdocs/product/stats/facturerec.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/facturerec.php + path: ../../../htdocs/product/stats/facturerec.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/propal.php + path: ../../../htdocs/product/stats/propal.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/propal.php + path: ../../../htdocs/product/stats/propal.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/reception.php + path: ../../../htdocs/product/stats/reception.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/reception.php + path: ../../../htdocs/product/stats/reception.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/supplier_proposal.php + path: ../../../htdocs/product/stats/supplier_proposal.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stats/supplier_proposal.php + path: ../../../htdocs/product/stats/supplier_proposal.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/card.php + path: ../../../htdocs/product/stock/card.php - message: '#^Variable \$lastmovementdate might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/card.php + path: ../../../htdocs/product/stock/card.php - message: '#^Variable \$pricemin might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/card.php + path: ../../../htdocs/product/stock/card.php - message: '#^Method StockMovements\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_stockmovements.class.php + path: ../../../htdocs/product/stock/class/api_stockmovements.class.php - message: '#^Property StockMovements\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_stockmovements.class.php + path: ../../../htdocs/product/stock/class/api_stockmovements.class.php - message: '#^Method Warehouses\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_warehouses.class.php + path: ../../../htdocs/product/stock/class/api_warehouses.class.php - message: '#^Method Warehouses\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_warehouses.class.php + path: ../../../htdocs/product/stock/class/api_warehouses.class.php - message: '#^Method Warehouses\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_warehouses.class.php + path: ../../../htdocs/product/stock/class/api_warehouses.class.php - message: '#^Method Warehouses\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_warehouses.class.php + path: ../../../htdocs/product/stock/class/api_warehouses.class.php - message: '#^Method Warehouses\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_warehouses.class.php + path: ../../../htdocs/product/stock/class/api_warehouses.class.php - message: '#^Method Warehouses\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_warehouses.class.php + path: ../../../htdocs/product/stock/class/api_warehouses.class.php - message: '#^Property Warehouses\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/class/api_warehouses.class.php + path: ../../../htdocs/product/stock/class/api_warehouses.class.php - message: '#^Call to function method_exists\(\) with \$this\(Entrepot\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/stock/class/entrepot.class.php + path: ../../../htdocs/product/stock/class/entrepot.class.php - message: '#^Call to function method_exists\(\) with \$this\(Entrepot\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/stock/class/entrepot.class.php + path: ../../../htdocs/product/stock/class/entrepot.class.php - message: '#^Call to function property_exists\(\) with \$this\(Entrepot\) and ''lieu'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/stock/class/entrepot.class.php + path: ../../../htdocs/product/stock/class/entrepot.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/product/stock/class/entrepot.class.php + path: ../../../htdocs/product/stock/class/entrepot.class.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/stock/class/mouvementstock.class.php + path: ../../../htdocs/product/stock/class/mouvementstock.class.php - message: '#^Variable \$fk_product_stock might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/class/mouvementstock.class.php + path: ../../../htdocs/product/stock/class/mouvementstock.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$batch \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$eatby \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$eol_date \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$fk_product \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$import_key \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$manufacturing_date \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$scrapping_date \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Property Productlot\:\:\$sellby \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/product/stock/class/productlot.class.php + path: ../../../htdocs/product/stock/class/productlot.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/stock/class/productstockentrepot.class.php + path: ../../../htdocs/product/stock/class/productstockentrepot.class.php - message: '#^Property ProductStockEntrepot\:\:\$fk_entrepot \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productstockentrepot.class.php + path: ../../../htdocs/product/stock/class/productstockentrepot.class.php - message: '#^Property ProductStockEntrepot\:\:\$fk_product \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productstockentrepot.class.php + path: ../../../htdocs/product/stock/class/productstockentrepot.class.php - message: '#^Property ProductStockEntrepot\:\:\$import_key \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/product/stock/class/productstockentrepot.class.php + path: ../../../htdocs/product/stock/class/productstockentrepot.class.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/info.php + path: ../../../htdocs/product/stock/info.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/info.php + path: ../../../htdocs/product/stock/info.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/info.php + path: ../../../htdocs/product/stock/info.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/product/stock/list.php + path: ../../../htdocs/product/stock/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/product/stock/list.php + path: ../../../htdocs/product/stock/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/product/stock/list.php + path: ../../../htdocs/product/stock/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/product/stock/list.php + path: ../../../htdocs/product/stock/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stock/list.php + path: ../../../htdocs/product/stock/list.php - message: '#^Variable \$sall might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/list.php + path: ../../../htdocs/product/stock/list.php - message: '#^Variable \$totalnboflines might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/list.php + path: ../../../htdocs/product/stock/list.php - message: '#^Comparison operation "\<" between 0 and 0 is always false\.$#' identifier: smaller.alwaysFalse count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Comparison operation "\<\=" between 0 and 0 is always true\.$#' identifier: smallerOrEqual.alwaysTrue count: 2 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Variable \$datatoimport might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Variable \$endatlinenb might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Variable \$excludefirstline might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Variable \$format might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Variable \$producttmp might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/massstockmove.php + path: ../../../htdocs/product/stock/massstockmove.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Property Product\:\:\$pmp \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$backtopage might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$batch might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$comref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$d_eatby might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$d_sellby might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$eatby might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$lastmovementdate might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$massaction might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$obj might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$result1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$result2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$sall might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$sellby might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$srcwarehouseid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$toselect might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Variable \$totalarray might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_card.php + path: ../../../htdocs/product/stock/movement_card.php - message: '#^Loose comparison using \=\= between 1 and 2 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Property Product\:\:\$pmp \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$d_eatby might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$d_sellby might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$diroutputmassaction in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$idAlreadyReverse might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$listofobjectref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$month might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/movement_list.php + path: ../../../htdocs/product/stock/movement_list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Property Product\:\:\$pmp \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$batch might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$eatby might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$lastmovementdate might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$result1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$result2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$sellby might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$sortfield might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$sortorder might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$srcwarehouseid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^Variable \$variants might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/product/stock/product.php + path: ../../../htdocs/product/stock/product.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/product/stock/productlot_card.php + path: ../../../htdocs/product/stock/productlot_card.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stock/productlot_list.php + path: ../../../htdocs/product/stock/productlot_list.php - message: '#^Variable \$draftchecked in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/product/stock/replenish.php + path: ../../../htdocs/product/stock/replenish.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/replenish.php + path: ../../../htdocs/product/stock/replenish.php - message: '#^Variable \$lastWarehouseID might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/replenish.php + path: ../../../htdocs/product/stock/replenish.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stock/replenishorders.php + path: ../../../htdocs/product/stock/replenishorders.php - message: '#^Variable \$nbofmovement might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/product/stock/stockatdate.php + path: ../../../htdocs/product/stock/stockatdate.php - message: '#^Variable \$resql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/stockatdate.php + path: ../../../htdocs/product/stock/stockatdate.php - message: '#^Variable \$virtualstock might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/product/stock/stockatdate.php + path: ../../../htdocs/product/stock/stockatdate.php - message: '#^Call to function property_exists\(\) with \$this\(StockTransfer\) and ''socid'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php - message: '#^Property StockTransfer\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransfer.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php - message: '#^Method StockTransferLine\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php + path: ../../../htdocs/product/stock/stocktransfer/class/stocktransferline.class.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_agenda.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_agenda.php - message: '#^Property StockTransfer\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_agenda.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_agenda.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_card.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_card.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_card.php - message: '#^Property StockTransfer\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_card.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_card.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_card.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_card.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_card.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_contact.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_contact.php - message: '#^Property StockTransfer\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_contact.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_contact.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_contact.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_contact.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_document.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/product/stock/stocktransfer/stocktransfer_list.php + path: ../../../htdocs/product/stock/stocktransfer/stocktransfer_list.php - message: '#^Variable \$extrafields might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/product/stock/tpl/extrafields_add.tpl.php + path: ../../../htdocs/product/stock/tpl/extrafields_add.tpl.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/product/stock/tpl/stockcorrection.tpl.php + path: ../../../htdocs/product/stock/tpl/stockcorrection.tpl.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/product/stock/tpl/stockcorrection.tpl.php + path: ../../../htdocs/product/stock/tpl/stockcorrection.tpl.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/product/stock/tpl/stockcorrection.tpl.php + path: ../../../htdocs/product/stock/tpl/stockcorrection.tpl.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/product/stock/tpl/stockcorrection.tpl.php + path: ../../../htdocs/product/stock/tpl/stockcorrection.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 9 - path: ../../htdocs/product/traduction.php + path: ../../../htdocs/product/traduction.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/projet/activity/index.php + path: ../../../htdocs/projet/activity/index.php - message: '#^Variable \$total might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/projet/activity/index.php + path: ../../../htdocs/projet/activity/index.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Parameter \#11 \$isavailable of function projectLinesPerDay expects array\, afternoon\: int\<0, 1\>\}\>, non\-empty\-array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Parameter \#13 \$arrayfields of function projectLinesPerDay expects array\, array\\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Parameter \#6 \$projectsrole of function projectLinesPerDay expects string, array\\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Parameter \#7 \$tasksrole of function projectLinesPerDay expects string, array\\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 4 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Variable \$ref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/activity/perday.php + path: ../../../htdocs/projet/activity/perday.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Parameter \#14 \$arrayfields of function projectLinesPerMonth expects array\, array\\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Parameter \#7 \$projectsrole of function projectLinesPerMonth expects string, array\\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Parameter \#8 \$tasksrole of function projectLinesPerMonth expects string, array\\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 4 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Variable \$ref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/activity/permonth.php + path: ../../../htdocs/projet/activity/permonth.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Parameter \#11 \$isavailable of function projectLinesPerWeek expects array\, afternoon\: int\<0, 1\>\}\>, non\-empty\-array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Parameter \#13 \$arrayfields of function projectLinesPerWeek expects array\, array\\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Parameter \#7 \$projectsrole of function projectLinesPerWeek expects string, array\\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Parameter \#8 \$tasksrole of function projectLinesPerWeek expects string, array\\|int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 4 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Variable \$ref might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/activity/perweek.php + path: ../../../htdocs/projet/activity/perweek.php - message: '#^Variable \$res might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/admin/project.php + path: ../../../htdocs/projet/admin/project.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/agenda.php + path: ../../../htdocs/projet/agenda.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/card.php + path: ../../../htdocs/projet/card.php - message: '#^Variable \$morecss might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/card.php + path: ../../../htdocs/projet/card.php - message: '#^Parameter \#1 \$object of method Projects\:\:_cleanObjectDatas\(\) expects object, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/class/api_projects.class.php + path: ../../../htdocs/projet/class/api_projects.class.php - message: '#^Method Tasks\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:addTimeSpent\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:deleteTimeSpent\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:getRoles\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Method Tasks\:\:putTimeSpent\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Parameter \#1 \$object of method Tasks\:\:_cleanObjectDatas\(\) expects object, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Parameter \#1 \$string of function dol_stringtotime expects string, DateTime given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Property Tasks\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/projet/class/api_tasks.class.php + path: ../../../htdocs/projet/class/api_tasks.class.php - message: '#^Call to function method_exists\(\) with \$this\(Project\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Call to function method_exists\(\) with \$this\(Project\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Call to function property_exists\(\) with \$this\(Project\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Loose comparison using \!\= between 0 and 0 will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Property Project\:\:\$ip \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Property Project\:\:\$price_booth \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Property Project\:\:\$price_registration \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Property Project\:\:\$public \(int\<0, 1\>\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/projet/class/project.class.php + path: ../../../htdocs/projet/class/project.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/projet/class/projectstats.class.php + path: ../../../htdocs/projet/class/projectstats.class.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Call to function method_exists\(\) with \$this\(Task\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Call to function property_exists\(\) with \$this\(Task\) and ''duration_effective'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Left side of \|\| is always false\.$#' identifier: booleanOr.leftAlwaysFalse count: 1 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property CommonObject\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$budget_amount \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$duration_effective \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$fk_task_parent \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$label \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$planned_workload \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$progress \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Property Task\:\:\$timespent_note \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/projet/class/task.class.php + path: ../../../htdocs/projet/class/task.class.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/comment.php + path: ../../../htdocs/projet/comment.php - message: '#^Variable \$mode might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/comment.php + path: ../../../htdocs/projet/comment.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/contact.php + path: ../../../htdocs/projet/contact.php - message: '#^Variable \$formconfirmtoaddtasks might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/contact.php + path: ../../../htdocs/projet/contact.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/document.php + path: ../../../htdocs/projet/document.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^PHPDoc tag @var has invalid value \(\$loanSchedule LoanSchedule\)\: Unexpected token "\$loanSchedule", expected type at offset 20 on line 2$#' identifier: phpDoc.parseError count: 1 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^Variable \$margin in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 2 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^Variable \$total_time in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../htdocs/projet/element.php + path: ../../../htdocs/projet/element.php - message: '#^Variable \$dateformat might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/ganttchart.inc.php + path: ../../../htdocs/projet/ganttchart.inc.php - message: '#^Variable \$dateformatinput might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/ganttchart.inc.php + path: ../../../htdocs/projet/ganttchart.inc.php - message: '#^Variable \$datehourformat might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/ganttchart.inc.php + path: ../../../htdocs/projet/ganttchart.inc.php - message: '#^Variable \$task_dependencies might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/projet/ganttchart.inc.php + path: ../../../htdocs/projet/ganttchart.inc.php - message: '#^Variable \$tasks might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/projet/ganttchart.inc.php + path: ../../../htdocs/projet/ganttchart.inc.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/ganttview.php + path: ../../../htdocs/projet/ganttview.php - message: '#^Variable \$param might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/ganttview.php + path: ../../../htdocs/projet/ganttview.php - message: '#^Variable \$userWrite might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/ganttview.php + path: ../../../htdocs/projet/ganttview.php - message: '#^Variable \$colorseries might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/graph_opportunities.inc.php + path: ../../../htdocs/projet/graph_opportunities.inc.php - message: '#^Variable \$mine might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/graph_opportunities.inc.php + path: ../../../htdocs/projet/graph_opportunities.inc.php - message: '#^Comparison operation "\>" between 0 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Variable \$badgeStatus2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Variable \$badgeStatus4 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Variable \$badgeStatus6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^Variable \$badgeStatus9 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/index.php + path: ../../../htdocs/projet/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 3 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Variable \$permissiontoadd might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Variable \$permissiontoread might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/list.php + path: ../../../htdocs/projet/list.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/messaging.php + path: ../../../htdocs/projet/messaging.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/note.php + path: ../../../htdocs/projet/note.php - message: '#^Variable \$px2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/stats/index.php + path: ../../../htdocs/projet/stats/index.php - message: '#^Variable \$px3 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/stats/index.php + path: ../../../htdocs/projet/stats/index.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^Parameter \#13 \$arrayfields of function projectLinesa expects array\, array\\> given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^Variable \$massactionbutton might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^Variable \$permissiontodelete might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^Variable \$userWrite might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/projet/tasks.php + path: ../../../htdocs/projet/tasks.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/comment.php + path: ../../../htdocs/projet/tasks/comment.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/contact.php + path: ../../../htdocs/projet/tasks/contact.php - message: '#^Call to function method_exists\(\) with Task and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/contact.php + path: ../../../htdocs/projet/tasks/contact.php - message: '#^Property Project\:\:\$budget_amount \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/tasks/contact.php + path: ../../../htdocs/projet/tasks/contact.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/projet/tasks/contact.php + path: ../../../htdocs/projet/tasks/contact.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/document.php + path: ../../../htdocs/projet/tasks/document.php - message: '#^Call to function method_exists\(\) with Task and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/document.php + path: ../../../htdocs/projet/tasks/document.php - message: '#^Property Project\:\:\$budget_amount \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/tasks/document.php + path: ../../../htdocs/projet/tasks/document.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/projet/tasks/document.php + path: ../../../htdocs/projet/tasks/document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/tasks/document.php + path: ../../../htdocs/projet/tasks/document.php - message: '#^Call to function is_object\(\) with Form will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Call to function is_object\(\) with Project will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 5 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Loose comparison using \=\= between 0 and 0 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''t\.duration_effective'' on array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''t\.planned_workload'' on array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''t\.progress'' on array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totalbilled'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totalbilledfield'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totalbudget'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totalbudget…'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totaldurationdeclar…'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totaldurationeffect…'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totalizable'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totalplannedworkload'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totaltobill'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''totaltobillfield'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Offset ''type'' on array\{nbfield\: int\<0, max\>, type\: array\{\}, val\: array\{t\.planned_workload\: \(float\|int\), t\.duration_effective\: \(float\|int\), t\.progress\: \(float\|int\), t\.budget_amount\: \(float\|int\), t\.tobill\?\: \(array\|float\|int\), t\.billed\?\: \(array\|float\|int\)\}, totalplannedworkload\: \(float\|int\), totaldurationeffective\: \(float\|int\), totaldurationdeclared\: \(float\|int\), totaltobillfield\: int\<0, max\>, totalbilledfield\: int\<0, max\>, \.\.\.\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 3 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Variable \$searchCategoryProjectList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/projet/tasks/list.php + path: ../../../htdocs/projet/tasks/list.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/note.php + path: ../../../htdocs/projet/tasks/note.php - message: '#^Call to function method_exists\(\) with Task and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/note.php + path: ../../../htdocs/projet/tasks/note.php - message: '#^Property Project\:\:\$budget_amount \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/tasks/note.php + path: ../../../htdocs/projet/tasks/note.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/task.php + path: ../../../htdocs/projet/tasks/task.php - message: '#^Property Project\:\:\$budget_amount \(float\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/projet/tasks/task.php + path: ../../../htdocs/projet/tasks/task.php - message: '#^Call to function is_array\(\) with array\{\}\|array\{generateinvoice\?\: mixed, generateinter\?\: mixed\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Call to function method_exists\(\) with Project and ''fetchComments'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Loose comparison using \=\= between ''splitline'' and ''splitline'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 5 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Variable \$allprojectforuser might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Variable \$valtoshow might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/projet/tasks/time.php + path: ../../../htdocs/projet/tasks/time.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/projet/tasks/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/projet/tasks/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/projet/tasks/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/projet/tasks/tpl/linkedobjectblock.tpl.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/agenda/agendaexport.php + path: ../../../htdocs/public/agenda/agendaexport.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/public/agenda/agendaexport.php + path: ../../../htdocs/public/agenda/agendaexport.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/public/bookcal/bookcalAjax.php + path: ../../../htdocs/public/bookcal/bookcalAjax.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 11 - path: ../../htdocs/public/bookcal/bookcalAjax.php + path: ../../../htdocs/public/bookcal/bookcalAjax.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/public/bookcal/index.php + path: ../../../htdocs/public/bookcal/index.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/bookcal/index.php + path: ../../../htdocs/public/bookcal/index.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/clicktodial/cidlookup.php + path: ../../../htdocs/public/clicktodial/cidlookup.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/cron/cron_run_jobs_by_url.php + path: ../../../htdocs/public/cron/cron_run_jobs_by_url.php - message: '#^Comparison operation "\>\=" between ''0''\|''1'' and 0 is always true\.$#' identifier: greaterOrEqual.alwaysTrue count: 1 - path: ../../htdocs/public/demo/index.php + path: ../../../htdocs/public/demo/index.php - message: '#^Offset ''disablemodules'' on array\{default\: ''0'', key\: ''profdemofun2'', label\: ''DemoFundation2'', disablemodules\: ''barcode,cashdesk…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\}\|array\{default\: ''0'', key\: ''profdemoprodstock'', label\: ''DemoCompanyProductA…'', disablemodules\: ''adherent,bom…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\}\|array\{default\: ''0'', key\: ''profmanufacture'', label\: ''DemoCompanyManufact…'', disablemodules\: ''adherent,contrat…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\}\|array\{default\: ''1'', key\: ''profdemoservonly'', label\: ''DemoCompanyServiceO…'', disablemodules\: ''adherent,barcode…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\} in empty\(\) always exists and is not falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/public/demo/index.php + path: ../../../htdocs/public/demo/index.php - message: '#^Offset ''lang'' on array\{default\: ''0'', key\: ''profdemoall'', label\: ''ChooseYourDemoProfi…'', disablemodules\: ''adherent,cashdesk…'', icon\: ''//public/demo/demo…'', lang\: ''''\}\|array\{default\: ''0'', key\: ''profdemofun2'', label\: ''DemoFundation2'', disablemodules\: ''barcode,cashdesk…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\}\|array\{default\: ''0'', key\: ''profdemoprodstock'', label\: ''DemoCompanyProductA…'', disablemodules\: ''adherent,bom…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\}\|array\{default\: ''0'', key\: ''profmanufacture'', label\: ''DemoCompanyManufact…'', disablemodules\: ''adherent,contrat…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\}\|array\{default\: ''1'', key\: ''profdemoservonly'', label\: ''DemoCompanyServiceO…'', disablemodules\: ''adherent,barcode…'', icon\: ''//public/demo/demo…'', url\: non\-falsy\-string, lang\: ''''\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/public/demo/index.php + path: ../../../htdocs/public/demo/index.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/public/demo/index.php + path: ../../../htdocs/public/demo/index.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/donations/donateurs_code.php + path: ../../../htdocs/public/donations/donateurs_code.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/public/donations/donateurs_code.php + path: ../../../htdocs/public/donations/donateurs_code.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/donations/donateurs_code.php + path: ../../../htdocs/public/donations/donateurs_code.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/public/donations/donateurs_code.php + path: ../../../htdocs/public/donations/donateurs_code.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/eventorganization/attendee_new.php + path: ../../../htdocs/public/eventorganization/attendee_new.php - message: '#^Comparison operation "\<\=" between 0 and 0 is always true\.$#' identifier: smallerOrEqual.alwaysTrue count: 1 - path: ../../htdocs/public/eventorganization/attendee_new.php + path: ../../../htdocs/public/eventorganization/attendee_new.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/eventorganization/attendee_new.php + path: ../../../htdocs/public/eventorganization/attendee_new.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/public/eventorganization/attendee_new.php + path: ../../../htdocs/public/eventorganization/attendee_new.php - message: '#^Variable \$genericcompanyname in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/public/eventorganization/attendee_new.php + path: ../../../htdocs/public/eventorganization/attendee_new.php - message: '#^Variable \$tmpcode might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/eventorganization/attendee_new.php + path: ../../../htdocs/public/eventorganization/attendee_new.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/eventorganization/subscriptionok.php + path: ../../../htdocs/public/eventorganization/subscriptionok.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/eventorganization/subscriptionok.php + path: ../../../htdocs/public/eventorganization/subscriptionok.php - message: '#^Variable \$suffix might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/eventorganization/subscriptionok.php + path: ../../../htdocs/public/eventorganization/subscriptionok.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/fichinter/agendaexport.php + path: ../../../htdocs/public/fichinter/agendaexport.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 2 - path: ../../htdocs/public/fichinter/agendaexport.php + path: ../../../htdocs/public/fichinter/agendaexport.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/public/fichinter/agendaexport.php + path: ../../../htdocs/public/fichinter/agendaexport.php - message: '#^Loose comparison using \!\= between '''' and '''' will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/public/fichinter/agendaexport.php + path: ../../../htdocs/public/fichinter/agendaexport.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 2 - path: ../../htdocs/public/fichinter/agendaexport.php + path: ../../../htdocs/public/fichinter/agendaexport.php - message: '#^Variable \$title in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/public/fichinter/agendaexport.php + path: ../../../htdocs/public/fichinter/agendaexport.php - message: '#^Call to preg_quote\(\) is missing delimiter / to be effective\.$#' identifier: argument.invalidPregQuote count: 1 - path: ../../htdocs/public/members/new.php + path: ../../../htdocs/public/members/new.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/members/new.php + path: ../../../htdocs/public/members/new.php - message: '#^Variable \$php_self might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/members/new.php + path: ../../../htdocs/public/members/new.php - message: '#^Property Adherent\:\:\$photo \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/public/members/public_card.php + path: ../../../htdocs/public/members/public_card.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/public/members/public_card.php + path: ../../../htdocs/public/members/public_card.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 17 - path: ../../htdocs/public/members/public_card.php + path: ../../../htdocs/public/members/public_card.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Call to function method_exists\(\) with CompanyBankAccount\|Contrat\|Expedition\|Fichinter\|Propal and ''call_trigger'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Variable \$source in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/public/onlinesign/newonlinesign.php + path: ../../../htdocs/public/onlinesign/newonlinesign.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/public/opensurvey/index.php + path: ../../../htdocs/public/opensurvey/index.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/public/opensurvey/index.php + path: ../../../htdocs/public/opensurvey/index.php - message: '#^Variable \$modifier might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/opensurvey/studs.php + path: ../../../htdocs/public/opensurvey/studs.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/partnership/new.php + path: ../../../htdocs/public/partnership/new.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/partnership/new.php + path: ../../../htdocs/public/partnership/new.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/public/partnership/new.php + path: ../../../htdocs/public/partnership/new.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Parameter \#1 \$paymentAmount of function print_paypal_redirect expects float, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Variable \$attendee might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Variable \$charge might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Variable \$customer might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Variable \$invoice might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Variable \$sessionstripe might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/newpayment.php + path: ../../../htdocs/public/payment/newpayment.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/payment/paymentko.php + path: ../../../htdocs/public/payment/paymentko.php - message: '#^Call to function is_object\(\) with stdClass will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/payment/paymentko.php + path: ../../../htdocs/public/payment/paymentko.php - message: '#^Call to function is_scalar\(\) with \(int\|string\) will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/payment/paymentko.php + path: ../../../htdocs/public/payment/paymentko.php - message: '#^PHPDoc tag @var with type CommonObject is not subtype of native type stdClass\.$#' identifier: varTag.nativeType count: 1 - path: ../../htdocs/public/payment/paymentko.php + path: ../../../htdocs/public/payment/paymentko.php - message: '#^Variable \$FinalPaymentAmt might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/paymentko.php + path: ../../../htdocs/public/payment/paymentko.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/paymentko.php + path: ../../../htdocs/public/payment/paymentko.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Call to function is_scalar\(\) with \(int\|string\) will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 3 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Variable \$autocreatethirdparty might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Variable \$crowid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Variable \$paymentTypeId might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Variable \$service might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 39 - path: ../../htdocs/public/payment/paymentok.php + path: ../../../htdocs/public/payment/paymentok.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^Variable \$conference might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^Variable \$suffix might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^Variable \$urllogo in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/index.php + path: ../../../htdocs/public/project/index.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/project/new.php + path: ../../../htdocs/public/project/new.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/project/new.php + path: ../../../htdocs/public/project/new.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/public/project/new.php + path: ../../../htdocs/public/project/new.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^Variable \$contact might not be defined\.$#' identifier: variable.undefined count: 10 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^Variable \$emailcompany might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^Variable \$tmpcode might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 8 - path: ../../htdocs/public/project/suggestbooth.php + path: ../../../htdocs/public/project/suggestbooth.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Right side of \|\| is always false\.$#' identifier: booleanOr.rightAlwaysFalse count: 2 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Variable \$contact might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Variable \$emailcompany might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Variable \$errors might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Variable \$tmpcode might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/public/project/suggestconference.php + path: ../../../htdocs/public/project/suggestconference.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/project/viewandvote.php + path: ../../../htdocs/public/project/viewandvote.php - message: '#^Variable \$suffix might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/project/viewandvote.php + path: ../../../htdocs/public/project/viewandvote.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/project/viewandvote.php + path: ../../../htdocs/public/project/viewandvote.php - message: '#^Variable \$votestatus might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/public/project/viewandvote.php + path: ../../../htdocs/public/project/viewandvote.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/public/recruitment/index.php + path: ../../../htdocs/public/recruitment/index.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/public/recruitment/index.php + path: ../../../htdocs/public/recruitment/index.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/recruitment/index.php + path: ../../../htdocs/public/recruitment/index.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Variable \$SECUREKEY might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Variable \$backtopage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Variable \$entity might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Variable \$suffix might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/public/recruitment/view.php + path: ../../../htdocs/public/recruitment/view.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/stripe/ipn.php + path: ../../../htdocs/public/stripe/ipn.php - message: '#^Dead catch \- Exception is never thrown in the try block\.$#' identifier: catch.neverThrown count: 1 - path: ../../htdocs/public/stripe/ipn.php + path: ../../../htdocs/public/stripe/ipn.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/public/stripe/ipn.php + path: ../../../htdocs/public/stripe/ipn.php - message: '#^Variable \$directdebitorcreditransfer_id might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/stripe/ipn.php + path: ../../../htdocs/public/stripe/ipn.php - message: '#^Variable \$error in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/public/stripe/ipn.php + path: ../../../htdocs/public/stripe/ipn.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/stripe/ipn.php + path: ../../../htdocs/public/stripe/ipn.php - message: '#^Variable \$pdid might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/stripe/ipn.php + path: ../../../htdocs/public/stripe/ipn.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$actioncode might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$filter might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$filtert might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$param might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$status might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$usedolheader in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$usergroup might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_arrays.php + path: ../../../htdocs/public/test/test_arrays.php - message: '#^Variable \$dolibarr_main_prod might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_csrf.php + path: ../../../htdocs/public/test/test_csrf.php - message: '#^Variable \$dolibarr_main_prod might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_exec.php + path: ../../../htdocs/public/test/test_exec.php - message: '#^Variable \$dolibarr_main_prod might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/test/test_sessionlock.php + path: ../../../htdocs/public/test/test_sessionlock.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/ticket/create_ticket.php + path: ../../../htdocs/public/ticket/create_ticket.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/public/ticket/create_ticket.php + path: ../../../htdocs/public/ticket/create_ticket.php - message: '#^Parameter \#1 \$filenb of function dol_remove_file_process expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/public/ticket/create_ticket.php + path: ../../../htdocs/public/ticket/create_ticket.php - message: '#^Variable \$cid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/ticket/create_ticket.php + path: ../../../htdocs/public/ticket/create_ticket.php - message: '#^Variable \$old_MAIN_MAIL_AUTOCOPY_TO might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/ticket/create_ticket.php + path: ../../../htdocs/public/ticket/create_ticket.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/ticket/create_ticket.php + path: ../../../htdocs/public/ticket/create_ticket.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/ticket/index.php + path: ../../../htdocs/public/ticket/index.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/ticket/index.php + path: ../../../htdocs/public/ticket/index.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/ticket/list.php + path: ../../../htdocs/public/ticket/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/public/ticket/list.php + path: ../../../htdocs/public/ticket/list.php - message: '#^Variable \$i might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/ticket/list.php + path: ../../../htdocs/public/ticket/list.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/public/ticket/view.php + path: ../../../htdocs/public/ticket/view.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/public/ticket/view.php + path: ../../../htdocs/public/ticket/view.php - message: '#^Variable \$display_ticket might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/ticket/view.php + path: ../../../htdocs/public/ticket/view.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/ticket/view.php + path: ../../../htdocs/public/ticket/view.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/public/users/view.php + path: ../../../htdocs/public/users/view.php - message: '#^Variable \$backtopage in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/public/users/view.php + path: ../../../htdocs/public/users/view.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/public/users/view.php + path: ../../../htdocs/public/users/view.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 3 - path: ../../htdocs/public/webportal/tpl/footer.tpl.php + path: ../../../htdocs/public/webportal/tpl/footer.tpl.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 6 - path: ../../htdocs/public/webportal/tpl/footer.tpl.php + path: ../../../htdocs/public/webportal/tpl/footer.tpl.php - message: '#^Variable \$context might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/webportal/tpl/hero-header-banner.tpl.php + path: ../../../htdocs/public/webportal/tpl/hero-header-banner.tpl.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/public/webportal/tpl/login.tpl.php + path: ../../../htdocs/public/webportal/tpl/login.tpl.php - message: '#^Comparison operation "\>" between \-1 and 0 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/public/webportal/tpl/menu.tpl.php + path: ../../../htdocs/public/webportal/tpl/menu.tpl.php - message: '#^Parameter \#1 \$array of function uasort contains unresolvable type\.$#' identifier: argument.unresolvableType count: 2 - path: ../../htdocs/public/webportal/tpl/menu.tpl.php + path: ../../../htdocs/public/webportal/tpl/menu.tpl.php - message: '#^Parameter \#2 \$callback of function uasort contains unresolvable type\.$#' identifier: argument.unresolvableType count: 2 - path: ../../htdocs/public/webportal/tpl/menu.tpl.php + path: ../../../htdocs/public/webportal/tpl/menu.tpl.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/public/webportal/tpl/menu.tpl.php + path: ../../../htdocs/public/webportal/tpl/menu.tpl.php - message: '#^Variable \$maxTopMenu in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/public/webportal/tpl/menu.tpl.php + path: ../../../htdocs/public/webportal/tpl/menu.tpl.php - message: '#^Path in include\(\) "\.\./\.\./\.\./\.\./main\.inc\.php" is not a file or it does not exist\.$#' identifier: include.fileNotFound count: 1 - path: ../../htdocs/public/webportal/webportal.main.inc.php + path: ../../../htdocs/public/webportal/webportal.main.inc.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/public/webportal/webportal.main.inc.php + path: ../../../htdocs/public/webportal/webportal.main.inc.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/public/webportal/webportal.main.inc.php + path: ../../../htdocs/public/webportal/webportal.main.inc.php - message: '#^Variable \$hookmanager might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/webportal/webportal.main.inc.php + path: ../../../htdocs/public/webportal/webportal.main.inc.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 16 - path: ../../htdocs/public/webportal/webportal.main.inc.php + path: ../../../htdocs/public/webportal/webportal.main.inc.php - message: '#^Variable \$logged_partnership might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/public/webportal/webportal.main.inc.php + path: ../../../htdocs/public/webportal/webportal.main.inc.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/public/website/index.php + path: ../../../htdocs/public/website/index.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/public/website/index.php + path: ../../../htdocs/public/website/index.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/public/website/index.php + path: ../../../htdocs/public/website/index.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/public/website/index.php + path: ../../../htdocs/public/website/index.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/public/website/javascript.js.php + path: ../../../htdocs/public/website/javascript.js.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/public/website/javascript.js.php + path: ../../../htdocs/public/website/javascript.js.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/public/website/javascript.js.php + path: ../../../htdocs/public/website/javascript.js.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/public/website/javascript.js.php + path: ../../../htdocs/public/website/javascript.js.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/public/website/styles.css.php + path: ../../../htdocs/public/website/styles.css.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$editColspan might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$extrafields in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$line might not be defined\.$#' identifier: variable.undefined count: 40 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 6 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$originid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$outputlangs might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$reception might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$rowEnd might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$rowExtrafieldsView might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Variable \$typeobject might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/reception/card.php + path: ../../../htdocs/reception/card.php - message: '#^Call to function method_exists\(\) with \$this\(Reception\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Call to function method_exists\(\) with \$this\(Reception\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Call to function property_exists\(\) with \$this\(Reception\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 4 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property CommonObject\:\:\$shipping_method_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$ref_supplier \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$size_units \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$socid \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$tracking_number \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$trueDepth \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$trueHeight \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$trueWeight \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Property Reception\:\:\$trueWidth \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/reception/class/reception.class.php + path: ../../../htdocs/reception/class/reception.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$batch \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$comment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$cost_price \(float\|int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$datec \(int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$element_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$fk_element \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$fk_elementdet \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$fk_entrepot \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$fk_product \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$fk_user \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$qty \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^Property ReceptionLineBatch\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/reception/class/receptionlinebatch.class.php + path: ../../../htdocs/reception/class/receptionlinebatch.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/reception/contact.php + path: ../../../htdocs/reception/contact.php - message: '#^Variable \$mesgs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/contact.php + path: ../../../htdocs/reception/contact.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/reception/contact.php + path: ../../../htdocs/reception/contact.php - message: '#^Variable \$origin might not be defined\.$#' identifier: variable.undefined count: 7 - path: ../../htdocs/reception/contact.php + path: ../../../htdocs/reception/contact.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/reception/contact.php + path: ../../../htdocs/reception/contact.php - message: '#^Variable \$typeobject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/contact.php + path: ../../../htdocs/reception/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Parameter \#4 \$month of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Parameter \#5 \$day of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Parameter \#6 \$year of function dol_mktime expects int, array\\|string given\.$#' identifier: argument.type count: 4 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Variable \$modebatch might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Variable \$nbproduct might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Variable \$objectsrc might not be defined\.$#' identifier: variable.undefined count: 8 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Variable \$origin might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Variable \$saveprice might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^Variable \$typeobject might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/reception/dispatch.php + path: ../../../htdocs/reception/dispatch.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/reception/document.php + path: ../../../htdocs/reception/document.php - message: '#^Variable \$origin might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/document.php + path: ../../../htdocs/reception/document.php - message: '#^Call to function method_exists\(\) with Reception and ''fetch_lines'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/reception/list.php + path: ../../../htdocs/reception/list.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/reception/list.php + path: ../../../htdocs/reception/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/reception/list.php + path: ../../../htdocs/reception/list.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/reception/list.php + path: ../../../htdocs/reception/list.php - message: '#^Variable \$show_files might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/list.php + path: ../../../htdocs/reception/list.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/list.php + path: ../../../htdocs/reception/list.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/list.php + path: ../../../htdocs/reception/list.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/reception/note.php + path: ../../../htdocs/reception/note.php - message: '#^Variable \$morejs might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/reception/note.php + path: ../../../htdocs/reception/note.php - message: '#^Variable \$origin might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/reception/note.php + path: ../../../htdocs/reception/note.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/reception/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/reception/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/reception/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/reception/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/admin/public_interface.php + path: ../../../htdocs/recruitment/admin/public_interface.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/recruitment/admin/setup.php + path: ../../../htdocs/recruitment/admin/setup.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/recruitment/admin/setup.php + path: ../../../htdocs/recruitment/admin/setup.php - message: '#^Variable \$arrayofparameters in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/recruitment/admin/setup.php + path: ../../../htdocs/recruitment/admin/setup.php - message: '#^Variable \$res might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/admin/setup.php + path: ../../../htdocs/recruitment/admin/setup.php - message: '#^Variable \$setupnotempty in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/recruitment/admin/setup.php + path: ../../../htdocs/recruitment/admin/setup.php - message: '#^Empty array passed to foreach\.$#' identifier: foreach.emptyArray count: 1 - path: ../../htdocs/recruitment/admin/setup_candidatures.php + path: ../../../htdocs/recruitment/admin/setup_candidatures.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/recruitment/admin/setup_candidatures.php + path: ../../../htdocs/recruitment/admin/setup_candidatures.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/recruitment/admin/setup_candidatures.php + path: ../../../htdocs/recruitment/admin/setup_candidatures.php - message: '#^Variable \$arrayofparameters in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/recruitment/admin/setup_candidatures.php + path: ../../../htdocs/recruitment/admin/setup_candidatures.php - message: '#^Variable \$res might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/admin/setup_candidatures.php + path: ../../../htdocs/recruitment/admin/setup_candidatures.php - message: '#^Variable \$setupnotempty in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/recruitment/admin/setup_candidatures.php + path: ../../../htdocs/recruitment/admin/setup_candidatures.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 6 - path: ../../htdocs/recruitment/class/api_recruitments.class.php + path: ../../../htdocs/recruitment/class/api_recruitments.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/recruitment/class/api_recruitments.class.php + path: ../../../htdocs/recruitment/class/api_recruitments.class.php - message: '#^Call to function method_exists\(\) with \$this\(RecruitmentCandidature\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function method_exists\(\) with \$this\(RecruitmentCandidature\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function property_exists\(\) with \$this\(RecruitmentCandidature\) and ''email'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function property_exists\(\) with \$this\(RecruitmentCandidature\) and ''fk…'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function property_exists\(\) with RecruitmentCandidature and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function property_exists\(\) with RecruitmentCandidature and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function property_exists\(\) with RecruitmentCandidature and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function property_exists\(\) with RecruitmentCandidature and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Property RecruitmentCandidature\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/class/recruitmentcandidature.class.php + path: ../../../htdocs/recruitment/class/recruitmentcandidature.class.php - message: '#^Call to function method_exists\(\) with \$this\(RecruitmentJobPosition\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Call to function method_exists\(\) with \$this\(RecruitmentJobPosition\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Call to function property_exists\(\) with \$this\(RecruitmentJobPosition\) and ''remuneration…'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Call to function property_exists\(\) with RecruitmentJobPosition and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Call to function property_exists\(\) with RecruitmentJobPosition and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Call to function property_exists\(\) with RecruitmentJobPosition and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Call to function property_exists\(\) with RecruitmentJobPosition and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Call to function property_exists\(\) with RecruitmentJobPosition and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Method RecruitmentJobPosition\:\:getLinesArray\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Property RecruitmentJobPosition\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/class/recruitmentjobposition.class.php + path: ../../../htdocs/recruitment/class/recruitmentjobposition.class.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_each_var_object\(\) expects array\, RecruitmentJobPosition given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php - message: '#^Parameter \#1 \$object of method CommonDocGenerator\:\:get_substitutionarray_object\(\) expects CommonObject, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php - message: '#^Parameter \#1 \$substitutionarray of function complete_substitutions_array expects array\, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php - message: '#^Parameter \#2 \$config of class Odf constructor expects string, array\ given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php - message: '#^Parameter \#3 \$object of function complete_substitutions_array expects CommonObject\|null, array\ given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php - message: '#^Property RecruitmentJobPosition\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/doc_generic_recruitmentjobposition_odt.modules.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php + path: ../../../htdocs/recruitment/core/modules/recruitment/doc/pdf_standard_recruitmentjobposition.modules.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/recruitment/index.php + path: ../../../htdocs/recruitment/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/index.php + path: ../../../htdocs/recruitment/index.php - message: '#^Variable \$badgeStatus4 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/recruitment/index.php + path: ../../../htdocs/recruitment/index.php - message: '#^Variable \$badgeStatus5 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/index.php + path: ../../../htdocs/recruitment/index.php - message: '#^Variable \$badgeStatus6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/index.php + path: ../../../htdocs/recruitment/index.php - message: '#^Variable \$badgeStatus9 might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/recruitment/index.php + path: ../../../htdocs/recruitment/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_card.php + path: ../../../htdocs/recruitment/recruitmentcandidature_card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/recruitment/recruitmentcandidature_card.php + path: ../../../htdocs/recruitment/recruitmentcandidature_card.php - message: '#^Property RecruitmentCandidature\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_card.php + path: ../../../htdocs/recruitment/recruitmentcandidature_card.php - message: '#^Property RecruitmentCandidature\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_card.php + path: ../../../htdocs/recruitment/recruitmentcandidature_card.php - message: '#^Variable \$formquestion might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_card.php + path: ../../../htdocs/recruitment/recruitmentcandidature_card.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_card.php + path: ../../../htdocs/recruitment/recruitmentcandidature_card.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_document.php + path: ../../../htdocs/recruitment/recruitmentcandidature_document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_list.php + path: ../../../htdocs/recruitment/recruitmentcandidature_list.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_list.php + path: ../../../htdocs/recruitment/recruitmentcandidature_list.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_list.php + path: ../../../htdocs/recruitment/recruitmentcandidature_list.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentcandidature_list.php + path: ../../../htdocs/recruitment/recruitmentcandidature_list.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_agenda.php + path: ../../../htdocs/recruitment/recruitmentjobposition_agenda.php - message: '#^Property RecruitmentJobPosition\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_applications.php + path: ../../../htdocs/recruitment/recruitmentjobposition_applications.php - message: '#^Property RecruitmentJobPosition\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_applications.php + path: ../../../htdocs/recruitment/recruitmentjobposition_applications.php - message: '#^Variable \$lineid might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/recruitment/recruitmentjobposition_applications.php + path: ../../../htdocs/recruitment/recruitmentjobposition_applications.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_applications.php + path: ../../../htdocs/recruitment/recruitmentjobposition_applications.php - message: '#^Variable \$text might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_applications.php + path: ../../../htdocs/recruitment/recruitmentjobposition_applications.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_card.php + path: ../../../htdocs/recruitment/recruitmentjobposition_card.php - message: '#^Property RecruitmentJobPosition\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_card.php + path: ../../../htdocs/recruitment/recruitmentjobposition_card.php - message: '#^Property RecruitmentJobPosition\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_card.php + path: ../../../htdocs/recruitment/recruitmentjobposition_card.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_card.php + path: ../../../htdocs/recruitment/recruitmentjobposition_card.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_document.php + path: ../../../htdocs/recruitment/recruitmentjobposition_document.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_document.php + path: ../../../htdocs/recruitment/recruitmentjobposition_document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_document.php + path: ../../../htdocs/recruitment/recruitmentjobposition_document.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_list.php + path: ../../../htdocs/recruitment/recruitmentjobposition_list.php - message: '#^Variable \$formproject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_note.php + path: ../../../htdocs/recruitment/recruitmentjobposition_note.php - message: '#^Variable \$maxlength might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/recruitment/recruitmentjobposition_note.php + path: ../../../htdocs/recruitment/recruitmentjobposition_note.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/resource/card.php + path: ../../../htdocs/resource/card.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$address \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$busy \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$element_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$element_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$email \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$fk_code_type_resource \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$mandatory \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$resource_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$resource_type \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$town \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$url \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Property Dolresource\:\:\$zip \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/resource/class/dolresource.class.php + path: ../../../htdocs/resource/class/dolresource.class.php - message: '#^Call to function is_numeric\(\) with float\|int\\|int\<1, max\>\|\(non\-falsy\-string&numeric\-string\) will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/resource/class/html.formresource.class.php + path: ../../../htdocs/resource/class/html.formresource.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/resource/class/html.formresource.class.php + path: ../../../htdocs/resource/class/html.formresource.class.php - message: '#^Call to function is_object\(\) with Fichinter will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/resource/element_resource.php + path: ../../../htdocs/resource/element_resource.php - message: '#^Call to function is_object\(\) with Product will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/resource/element_resource.php + path: ../../../htdocs/resource/element_resource.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/resource/element_resource.php + path: ../../../htdocs/resource/element_resource.php - message: '#^Loose comparison using \=\= between int\<0, max\> and \-1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/resource/element_resource.php + path: ../../../htdocs/resource/element_resource.php - message: '#^Right side of && is always false\.$#' identifier: booleanAnd.rightAlwaysFalse count: 1 - path: ../../htdocs/resource/element_resource.php + path: ../../../htdocs/resource/element_resource.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 3 - path: ../../htdocs/resource/list.php + path: ../../../htdocs/resource/list.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/salaries/card.php + path: ../../../htdocs/salaries/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/salaries/card.php + path: ../../../htdocs/salaries/card.php - message: '#^Variable \$resteapayer might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/salaries/card.php + path: ../../../htdocs/salaries/card.php - message: '#^Method Salaries\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:_validatepayments\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:_validatepayments\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:addPayment\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:getAllPayments\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Method Salaries\:\:updatePayment\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Property Salaries\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Property Salaries\:\:\$FIELDSPAYMENT has no type specified\.$#' identifier: missingType.property count: 1 - path: ../../htdocs/salaries/class/api_salaries.class.php + path: ../../../htdocs/salaries/class/api_salaries.class.php - message: '#^Call to function method_exists\(\) with \$this\(PaymentSalary\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentSalary\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentSalary\) and ''fk_bank'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentSalary\) and ''fk_typepayment'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Call to function property_exists\(\) with \$this\(PaymentSalary\) and ''fk_user_author'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Loose comparison using \=\= between '''' and ''nolink'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$amount \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$fk_bank \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$fk_salary \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$fk_typepayment \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$fk_user_author \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$num_paiement \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Property PaymentSalary\:\:\$num_payment \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Result of \|\| is always false\.$#' identifier: booleanOr.alwaysFalse count: 2 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Strict comparison using \!\=\= between '''' and ''nolink'' will always evaluate to true\.$#' identifier: notIdentical.alwaysTrue count: 1 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/salaries/class/paymentsalary.class.php + path: ../../../htdocs/salaries/class/paymentsalary.class.php - message: '#^Call to function method_exists\(\) with \$this\(Salary\) and ''LibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Call to function method_exists\(\) with \$this\(Salary\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Call to function property_exists\(\) with \$this\(Salary\) and ''amount'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Call to function property_exists\(\) with \$this\(Salary\) and ''type_payment'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Method Salary\:\:getSommePaiement\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Property CommonObject\:\:\$alreadypaid \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/salaries/class/salary.class.php + path: ../../../htdocs/salaries/class/salary.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/salaries/list.php + path: ../../../htdocs/salaries/list.php - message: '#^Variable \$aBill might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/salaries/list.php + path: ../../../htdocs/salaries/list.php - message: '#^Variable \$numprlv might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/salaries/list.php + path: ../../../htdocs/salaries/list.php - message: '#^Variable \$selected might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/salaries/list.php + path: ../../../htdocs/salaries/list.php - message: '#^Comparison operation "\>" between 1 and 1 is always false\.$#' identifier: greater.alwaysFalse count: 1 - path: ../../htdocs/salaries/paiement_salary.php + path: ../../../htdocs/salaries/paiement_salary.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/salaries/paiement_salary.php + path: ../../../htdocs/salaries/paiement_salary.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/salaries/payments.php + path: ../../../htdocs/salaries/payments.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/salaries/payments.php + path: ../../../htdocs/salaries/payments.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/salaries/payments.php + path: ../../../htdocs/salaries/payments.php - message: '#^Variable \$resql might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/salaries/payments.php + path: ../../../htdocs/salaries/payments.php - message: '#^Loose comparison using \=\= between ''salaire'' and ''bank\-transfer'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/salaries/virement_request.php + path: ../../../htdocs/salaries/virement_request.php - message: '#^Loose comparison using \=\= between ''salaire'' and ''salaire'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/salaries/virement_request.php + path: ../../../htdocs/salaries/virement_request.php - message: '#^Variable \$error might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/salaries/virement_request.php + path: ../../../htdocs/salaries/virement_request.php - message: '#^Variable \$numOfBp might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/salaries/virement_request.php + path: ../../../htdocs/salaries/virement_request.php - message: '#^Variable \$resteapayer might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/salaries/virement_request.php + path: ../../../htdocs/salaries/virement_request.php - message: '#^Variable \$result might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/salaries/virement_request.php + path: ../../../htdocs/salaries/virement_request.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/admin/societe.php + path: ../../../htdocs/societe/admin/societe.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/admin/societe.php + path: ../../../htdocs/societe/admin/societe.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/agenda.php + path: ../../../htdocs/societe/agenda.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/societe/ajax/ajaxcompanies.php + path: ../../../htdocs/societe/ajax/ajaxcompanies.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/societe/ajax/company.php + path: ../../../htdocs/societe/ajax/company.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/societe/canvas/company/tpl/card_view.tpl.php + path: ../../../htdocs/societe/canvas/company/tpl/card_view.tpl.php - message: '#^Variable \$formfile might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/canvas/company/tpl/card_view.tpl.php + path: ../../../htdocs/societe/canvas/company/tpl/card_view.tpl.php - message: '#^Variable \$objcanvas might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/canvas/company/tpl/card_view.tpl.php + path: ../../../htdocs/societe/canvas/company/tpl/card_view.tpl.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/societe/canvas/company/tpl/card_view.tpl.php + path: ../../../htdocs/societe/canvas/company/tpl/card_view.tpl.php - message: '#^Variable \$objcanvas might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/canvas/individual/tpl/card_view.tpl.php + path: ../../../htdocs/societe/canvas/individual/tpl/card_view.tpl.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/societe/canvas/individual/tpl/card_view.tpl.php + path: ../../../htdocs/societe/canvas/individual/tpl/card_view.tpl.php - message: '#^Call to function is_numeric\(\) with 0\|1\|2\|3\|4\|5\|6\|7\|8\|9 will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Comparison operation "\>" between 1\|2 and 0 is always true\.$#' identifier: greater.alwaysTrue count: 1 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Property Societe\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Property Societe\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 2 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 4 - path: ../../htdocs/societe/card.php + path: ../../../htdocs/societe/card.php - message: '#^Variable \$messagetoshow might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/checkvat/checkVatPopup.php + path: ../../../htdocs/societe/checkvat/checkVatPopup.php - message: '#^Property Contact\:\:\$no_email \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/societe/class/api_contacts.class.php + path: ../../../htdocs/societe/class/api_contacts.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 2 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Loose comparison using \=\= between 4 and 4 will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:createCompanyBankAccount\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:createCompanyNotification\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:createCompanyNotificationByCode\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:createSocieteAccount\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:generateBankAccountDocument\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getCategories\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getCompanyBankAccount\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getCompanyNotification\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getFixedAmountDiscounts\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getInvoicesQualifiedForCreditNote\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getInvoicesQualifiedForReplacement\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getOutStandingInvoices\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getOutStandingOrder\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getOutStandingProposals\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:getSalesRepresentatives\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:patchSocieteAccount\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:putSocieteAccount\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:updateCompanyBankAccount\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Method Thirdparties\:\:updateCompanyNotification\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Property Societe\:\:\$default_lang \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Property Societe\:\:\$no_email \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Property Thirdparties\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/class/api_thirdparties.class.php + path: ../../../htdocs/societe/class/api_thirdparties.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/societe/class/companybankaccount.class.php + path: ../../../htdocs/societe/class/companybankaccount.class.php - message: '#^Call to function method_exists\(\) with \$this\(Societe\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Call to function method_exists\(\) with \$this\(Societe\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Call to function property_exists\(\) with \$this\(Societe\) and ''code_client'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Method Societe\:\:getContacts\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Method Societe\:\:getSalesRepresentatives\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 6 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Contact\:\:\$roles \(array\\) does not accept non\-empty\-list\\.$#' identifier: assign.propertyType count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Societe\:\:\$bank_account \(Account\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Societe\:\:\$client \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Societe\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Societe\:\:\$fournisseur \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Societe\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Societe\:\:\$stcomm_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Property Societe\:\:\$typent_id \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Result of && is always true\.$#' identifier: booleanAnd.alwaysTrue count: 1 - path: ../../htdocs/societe/class/societe.class.php + path: ../../../htdocs/societe/class/societe.class.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$dateprint might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$doc_number might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$documentstatic might not be defined\.$#' identifier: variable.undefined count: 14 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$tables_from might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$where might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/consumption.php + path: ../../../htdocs/societe/consumption.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/document.php + path: ../../../htdocs/societe/document.php - message: '#^Variable \$newcardbutton might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/list.php + path: ../../../htdocs/societe/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/messaging.php + path: ../../../htdocs/societe/messaging.php - message: '#^Variable \$id might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/notify/card.php + path: ../../../htdocs/societe/notify/card.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Call to function is_object\(\) with Stripe will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Variable \$rib might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Variable \$service might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Variable \$sql might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/societe/paymentmodes.php + path: ../../../htdocs/societe/paymentmodes.php - message: '#^Loose comparison using \=\= between ''add_customer_price'' and ''add_customer_price'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/societe/price.php + path: ../../../htdocs/societe/price.php - message: '#^Loose comparison using \=\= between ''edit_customer_price'' and ''edit_price'' will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/societe/price.php + path: ../../../htdocs/societe/price.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 2 - path: ../../htdocs/societe/price.php + path: ../../../htdocs/societe/price.php - message: '#^Variable \$prodcustprice might not be defined\.$#' identifier: variable.undefined count: 36 - path: ../../htdocs/societe/price.php + path: ../../../htdocs/societe/price.php - message: '#^Variable \$sortfield in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/price.php + path: ../../../htdocs/societe/price.php - message: '#^Variable \$sortorder in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/price.php + path: ../../../htdocs/societe/price.php - message: '#^Variable \$parameters might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/project.php + path: ../../../htdocs/societe/project.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/societe/tpl/linesalesrepresentative.tpl.php + path: ../../../htdocs/societe/tpl/linesalesrepresentative.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/societe/tpl/linesalesrepresentative.tpl.php + path: ../../../htdocs/societe/tpl/linesalesrepresentative.tpl.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/societe/website.php + path: ../../../htdocs/societe/website.php - message: '#^Variable \$massaction might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/societe/website.php + path: ../../../htdocs/societe/website.php - message: '#^Parameter \#1 \$params of static method Stripe\\Terminal\\Location\:\:all\(\) expects array\|null, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/stripe/admin/stripe.php + path: ../../../htdocs/stripe/admin/stripe.php - message: '#^Call to function is_object\(\) with Facture will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/stripe/ajax/ajax.php + path: ../../../htdocs/stripe/ajax/ajax.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/stripe/charge.php + path: ../../../htdocs/stripe/charge.php - message: '#^Variable \$type might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/stripe/charge.php + path: ../../../htdocs/stripe/charge.php - message: '#^Loose comparison using \=\= between 7 and 4 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 2 - path: ../../htdocs/stripe/class/actions_stripe.class.php + path: ../../../htdocs/stripe/class/actions_stripe.class.php - message: '#^Call to function is_object\(\) with CompanyPaymentMode will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/stripe/class/stripe.class.php + path: ../../../htdocs/stripe/class/stripe.class.php - message: '#^Variable \$invoice might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/stripe/class/stripe.class.php + path: ../../../htdocs/stripe/class/stripe.class.php - message: '#^Variable \$setupintent in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/stripe/class/stripe.class.php + path: ../../../htdocs/stripe/class/stripe.class.php - message: '#^Variable \$stripeacc in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/stripe/class/stripe.class.php + path: ../../../htdocs/stripe/class/stripe.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 2 - path: ../../htdocs/stripe/lib/stripe.lib.php + path: ../../../htdocs/stripe/lib/stripe.lib.php - message: '#^Variable \$moreforfilter in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/stripe/payout.php + path: ../../../htdocs/stripe/payout.php - message: '#^Comparison operation "\>" between int\<1, max\> and 0 is always true\.$#' identifier: greater.alwaysTrue count: 1 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Variable \$buyingprice might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Variable \$classname might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Variable \$error in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Variable \$fk_account might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Variable \$fournprice might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 4 - path: ../../htdocs/supplier_proposal/card.php + path: ../../../htdocs/supplier_proposal/card.php - message: '#^Method SupplierProposals\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php + path: ../../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php - message: '#^Method SupplierProposals\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php + path: ../../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php - message: '#^Method SupplierProposals\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php + path: ../../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php - message: '#^Method SupplierProposals\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php + path: ../../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php - message: '#^Method SupplierProposals\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php + path: ../../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php - message: '#^Method SupplierProposals\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php + path: ../../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php - message: '#^Property SupplierProposals\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php + path: ../../../htdocs/supplier_proposal/class/api_supplier_proposals.class.php - message: '#^Call to function method_exists\(\) with \$this\(SupplierProposal\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Call to function method_exists\(\) with \$this\(SupplierProposal\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Call to function property_exists\(\) with \$this\(SupplierProposal\) and ''delivery_date'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Call to function property_exists\(\) with \$this\(SupplierProposal\) and ''socid'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Call to function property_exists\(\) with \$this\(SupplierProposal\) and ''total_ttc'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 6 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Parameter \#3 \$remise_percent_ligne of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Parameter \#5 \$uselocaltax1_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Parameter \#6 \$uselocaltax2_rate of function calcul_price_total expects float, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Property SupplierProposal\:\:\$statut \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Property SupplierProposalLine\:\:\$info_bits \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Property SupplierProposalLine\:\:\$pa_ht \(float\|int\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/supplier_proposal/class/supplier_proposal.class.php + path: ../../../htdocs/supplier_proposal/class/supplier_proposal.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/contact.php + path: ../../../htdocs/supplier_proposal/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/document.php + path: ../../../htdocs/supplier_proposal/document.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/index.php + path: ../../../htdocs/supplier_proposal/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/index.php + path: ../../../htdocs/supplier_proposal/index.php - message: '#^Variable \$badgeStatus4 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/index.php + path: ../../../htdocs/supplier_proposal/index.php - message: '#^Variable \$badgeStatus6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/index.php + path: ../../../htdocs/supplier_proposal/index.php - message: '#^Variable \$badgeStatus9 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/index.php + path: ../../../htdocs/supplier_proposal/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/info.php + path: ../../../htdocs/supplier_proposal/info.php - message: '#^Variable \$action might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/supplier_proposal/info.php + path: ../../../htdocs/supplier_proposal/info.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/list.php + path: ../../../htdocs/supplier_proposal/list.php - message: '#^Loose comparison using \=\= between \-1 and 0 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/list.php + path: ../../../htdocs/supplier_proposal/list.php - message: '#^Loose comparison using \=\= between \-1 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/supplier_proposal/list.php + path: ../../../htdocs/supplier_proposal/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/supplier_proposal/list.php + path: ../../../htdocs/supplier_proposal/list.php - message: '#^Variable \$searchCategoryProductList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/supplier_proposal/list.php + path: ../../../htdocs/supplier_proposal/list.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/note.php + path: ../../../htdocs/supplier_proposal/note.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/supplier_proposal/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/admin/bar.php + path: ../../../htdocs/takepos/admin/bar.php - message: '#^Variable \$res might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/admin/setup.php + path: ../../../htdocs/takepos/admin/setup.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/takepos/admin/terminal.php + path: ../../../htdocs/takepos/admin/terminal.php - message: '#^Parameter \#1 \$params of static method Stripe\\Terminal\\Reader\:\:all\(\) expects array\|null, string given\.$#' identifier: argument.type count: 2 - path: ../../htdocs/takepos/admin/terminal.php + path: ../../../htdocs/takepos/admin/terminal.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 5 - path: ../../htdocs/takepos/ajax/ajax.php + path: ../../../htdocs/takepos/ajax/ajax.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/css/pos.css.php + path: ../../../htdocs/takepos/css/pos.css.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 4 - path: ../../htdocs/takepos/floors.php + path: ../../../htdocs/takepos/floors.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 3 - path: ../../htdocs/takepos/freezone.php + path: ../../../htdocs/takepos/freezone.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/genimg/index.php + path: ../../../htdocs/takepos/genimg/index.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/genimg/index.php + path: ../../../htdocs/takepos/genimg/index.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/genimg/qr.php + path: ../../../htdocs/takepos/genimg/qr.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/takepos/index.php + path: ../../../htdocs/takepos/index.php - message: '#^Loose comparison using \=\= between 0 and 1 will always evaluate to false\.$#' identifier: equal.alwaysFalse count: 1 - path: ../../htdocs/takepos/index.php + path: ../../../htdocs/takepos/index.php - message: '#^Variable \$CUSTOMER_DISPLAY_line1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$CUSTOMER_DISPLAY_line2 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$batch might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$body_ticket might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$creditnote might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$fk_source might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$footer_ticket might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$footerorder might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$header_soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$header_ticket might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$headerorder might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$idoflineadded might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$printer might not be defined\.$#' identifier: variable.undefined count: 6 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$sectionwithinvoicelink might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$ticket_total might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$tva_npr might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Variable \$warehouseid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/invoice.php + path: ../../../htdocs/takepos/invoice.php - message: '#^Call to function is_object\(\) with Facture will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/takepos/pay.php + path: ../../../htdocs/takepos/pay.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/takepos/pay.php + path: ../../../htdocs/takepos/pay.php - message: '#^Variable \$keyforstripeterminalbank in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 3 - path: ../../htdocs/takepos/pay.php + path: ../../../htdocs/takepos/pay.php - message: '#^Variable \$stripeacc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/pay.php + path: ../../../htdocs/takepos/pay.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/printbox.php + path: ../../../htdocs/takepos/printbox.php - message: '#^Parameter \#2 \$addpercent of function vatrate expects bool, int given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/takepos/receipt.php + path: ../../../htdocs/takepos/receipt.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/takepos/send.php + path: ../../../htdocs/takepos/send.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/takepos/smpcb.php + path: ../../../htdocs/takepos/smpcb.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/takepos/split.php + path: ../../../htdocs/takepos/split.php - message: '#^Variable \$invoice might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/takepos/split.php + path: ../../../htdocs/takepos/split.php - message: '#^Variable \$placeid might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/takepos/split.php + path: ../../../htdocs/takepos/split.php - message: '#^Variable \$fontlist might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/eldy/btn.inc.php + path: ../../../htdocs/theme/eldy/btn.inc.php - message: '#^Variable \$nbtopmenuentries might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/theme/eldy/btn.inc.php + path: ../../../htdocs/theme/eldy/btn.inc.php - message: '#^Variable \$colorbackhmenu1 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/theme/eldy/dropdown.inc.php + path: ../../../htdocs/theme/eldy/dropdown.inc.php - message: '#^Variable \$colorbacklinepair1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/dropdown.inc.php + path: ../../../htdocs/theme/eldy/dropdown.inc.php - message: '#^Variable \$colortextbackhmenu might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/dropdown.inc.php + path: ../../../htdocs/theme/eldy/dropdown.inc.php - message: '#^Variable \$colortextlink might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/dropdown.inc.php + path: ../../../htdocs/theme/eldy/dropdown.inc.php - message: '#^Variable \$disableimages might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/dropdown.inc.php + path: ../../../htdocs/theme/eldy/dropdown.inc.php - message: '#^Variable \$left might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/eldy/dropdown.inc.php + path: ../../../htdocs/theme/eldy/dropdown.inc.php - message: '#^Variable \$right might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/dropdown.inc.php + path: ../../../htdocs/theme/eldy/dropdown.inc.php - message: '#^Parameter \#2 \$steps of function colorAdjustBrightness expects int, string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/theme/eldy/global.inc.php + path: ../../../htdocs/theme/eldy/global.inc.php - message: '#^Variable \$theme might not be defined\.$#' identifier: variable.undefined count: 22 - path: ../../htdocs/theme/eldy/global.inc.php + path: ../../../htdocs/theme/eldy/global.inc.php - message: '#^Variable \$left might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/info-box.inc.php + path: ../../../htdocs/theme/eldy/info-box.inc.php - message: '#^Variable \$right might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/info-box.inc.php + path: ../../../htdocs/theme/eldy/info-box.inc.php - message: '#^Variable \$topMenuFontSize might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/main_menu_fa_icons.inc.php + path: ../../../htdocs/theme/eldy/main_menu_fa_icons.inc.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/theme/eldy/manifest.json.php + path: ../../../htdocs/theme/eldy/manifest.json.php - message: '#^Variable \$badgeDanger might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/theme/eldy/progress.inc.php + path: ../../../htdocs/theme/eldy/progress.inc.php - message: '#^Variable \$badgeSuccess might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/progress.inc.php + path: ../../../htdocs/theme/eldy/progress.inc.php - message: '#^Variable \$badgeWarning might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/progress.inc.php + path: ../../../htdocs/theme/eldy/progress.inc.php - message: '#^Variable \$colorblind_deuteranopes_badgeDanger might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/progress.inc.php + path: ../../../htdocs/theme/eldy/progress.inc.php - message: '#^Variable \$colorblind_deuteranopes_badgeSuccess might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/progress.inc.php + path: ../../../htdocs/theme/eldy/progress.inc.php - message: '#^Variable \$menumanager might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/eldy/style.css.php + path: ../../../htdocs/theme/eldy/style.css.php - message: '#^Variable \$badgeDanger might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$badgeDark might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$badgeInfo might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$badgeLight might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$badgePrimary might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$badgeSecondary might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$badgeSuccess might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$badgeWarning might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$colorblind_deuteranopes_badgeWarning might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/badges.inc.php + path: ../../../htdocs/theme/md/badges.inc.php - message: '#^Variable \$fontlist might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/theme/md/btn.inc.php + path: ../../../htdocs/theme/md/btn.inc.php - message: '#^Variable \$left might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/theme/md/btn.inc.php + path: ../../../htdocs/theme/md/btn.inc.php - message: '#^Variable \$nbtopmenuentries might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/theme/md/btn.inc.php + path: ../../../htdocs/theme/md/btn.inc.php - message: '#^Variable \$right might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/btn.inc.php + path: ../../../htdocs/theme/md/btn.inc.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/btn.inc.php + path: ../../../htdocs/theme/md/btn.inc.php - message: '#^Variable \$colorbackhmenu1 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/theme/md/dropdown.inc.php + path: ../../../htdocs/theme/md/dropdown.inc.php - message: '#^Variable \$colorbacklinepair1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/dropdown.inc.php + path: ../../../htdocs/theme/md/dropdown.inc.php - message: '#^Variable \$colortextbackhmenu might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/dropdown.inc.php + path: ../../../htdocs/theme/md/dropdown.inc.php - message: '#^Variable \$colortextlink might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/dropdown.inc.php + path: ../../../htdocs/theme/md/dropdown.inc.php - message: '#^Variable \$disableimages might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/dropdown.inc.php + path: ../../../htdocs/theme/md/dropdown.inc.php - message: '#^Variable \$left might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/theme/md/dropdown.inc.php + path: ../../../htdocs/theme/md/dropdown.inc.php - message: '#^Variable \$right might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/theme/md/dropdown.inc.php + path: ../../../htdocs/theme/md/dropdown.inc.php - message: '#^Variable \$path might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/flags-sprite.inc.php + path: ../../../htdocs/theme/md/flags-sprite.inc.php - message: '#^Variable \$left might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/info-box.inc.php + path: ../../../htdocs/theme/md/info-box.inc.php - message: '#^Variable \$right might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/info-box.inc.php + path: ../../../htdocs/theme/md/info-box.inc.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/theme/md/manifest.json.php + path: ../../../htdocs/theme/md/manifest.json.php - message: '#^Variable \$path might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/progress.inc.php + path: ../../../htdocs/theme/md/progress.inc.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/theme/md/style.css.php + path: ../../../htdocs/theme/md/style.css.php - message: '#^Variable \$menumanager might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/theme/md/style.css.php + path: ../../../htdocs/theme/md/style.css.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/ticket/agenda.php + path: ../../../htdocs/ticket/agenda.php - message: '#^Loose comparison using \=\= between ''setsubject'' and ''setsubject'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/ticket/card.php + path: ../../../htdocs/ticket/card.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/ticket/card.php + path: ../../../htdocs/ticket/card.php - message: '#^Variable \$limit might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/card.php + path: ../../../htdocs/ticket/card.php - message: '#^Variable \$mine might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/card.php + path: ../../../htdocs/ticket/card.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/ticket/card.php + path: ../../../htdocs/ticket/card.php - message: '#^Variable \$trackid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/card.php + path: ../../../htdocs/ticket/card.php - message: '#^Variable \$triggermodname in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/ticket/card.php + path: ../../../htdocs/ticket/card.php - message: '#^Method Tickets\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:_validateMessage\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:_validateMessage\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:postNewMessage\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Method Tickets\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Property Tickets\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Property Tickets\:\:\$FIELDS_MESSAGES type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Variable \$user_action might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/ticket/class/api_tickets.class.php + path: ../../../htdocs/ticket/class/api_tickets.class.php - message: '#^Call to function property_exists\(\) with CTicketCategory and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/cticketcategory.class.php + path: ../../../htdocs/ticket/class/cticketcategory.class.php - message: '#^Call to function property_exists\(\) with CTicketCategory and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/cticketcategory.class.php + path: ../../../htdocs/ticket/class/cticketcategory.class.php - message: '#^Call to function property_exists\(\) with CTicketCategory and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/cticketcategory.class.php + path: ../../../htdocs/ticket/class/cticketcategory.class.php - message: '#^Call to function property_exists\(\) with CTicketCategory and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/cticketcategory.class.php + path: ../../../htdocs/ticket/class/cticketcategory.class.php - message: '#^Method CTicketCategory\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/ticket/class/cticketcategory.class.php + path: ../../../htdocs/ticket/class/cticketcategory.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ticket/class/cticketcategory.class.php + path: ../../../htdocs/ticket/class/cticketcategory.class.php - message: '#^Call to function array_key_exists\(\) with ''paths'' and array\{paths\: mixed, names\: mixed, mimes\: mixed\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Call to function is_array\(\) with array\{paths\: mixed, names\: mixed, mimes\: mixed\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Call to function method_exists\(\) with \$this\(Ticket\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Call to function method_exists\(\) with \$this\(Ticket\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Call to function property_exists\(\) with \$this\(Ticket\) and ''type_code'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property CommonObject\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$category_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$date_close \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$date_read \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$fk_contract \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$fk_project \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$fk_soc \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$fk_user_assign \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$fk_user_create \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$ip \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$message \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 5 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$notify_tiers_at_create \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$origin_references \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$origin_replyto \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$progress \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$severity_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$subject \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$timing \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Property Ticket\:\:\$type_code \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Variable \$exact in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Variable \$recipient in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^Variable \$references in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/ticket/class/ticket.class.php + path: ../../../htdocs/ticket/class/ticket.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/ticket/contact.php + path: ../../../htdocs/ticket/contact.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/ticket/document.php + path: ../../../htdocs/ticket/document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/document.php + path: ../../../htdocs/ticket/document.php - message: '#^Variable \$badgeStatus0 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$badgeStatus1 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$badgeStatus3 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$badgeStatus4 might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$badgeStatus6 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$badgeStatus9 might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$colorseries might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$shownb might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^Variable \$showtot might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/ticket/index.php + path: ../../../htdocs/ticket/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/ticket/messaging.php + path: ../../../htdocs/ticket/messaging.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/ticket/messaging.php + path: ../../../htdocs/ticket/messaging.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/ticket/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/ticket/tpl/linkedobjectblock.tpl.php - message: '#^Variable \$object might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/ticket/tpl/linkedobjectblock.tpl.php + path: ../../../htdocs/ticket/tpl/linkedobjectblock.tpl.php - message: '#^Call to function property_exists\(\) with User and ''admin'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/bank.php + path: ../../../htdocs/user/bank.php - message: '#^Variable \$content might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/bank.php + path: ../../../htdocs/user/bank.php - message: '#^Variable \$countrynotdefined might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/bank.php + path: ../../../htdocs/user/bank.php - message: '#^Variable \$moreparam might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/user/bank.php + path: ../../../htdocs/user/bank.php - message: '#^Variable \$name might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/user/bank.php + path: ../../../htdocs/user/bank.php - message: '#^Variable \$size might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/bank.php + path: ../../../htdocs/user/bank.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/card.php + path: ../../../htdocs/user/card.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 2 - path: ../../htdocs/user/card.php + path: ../../../htdocs/user/card.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 7 - path: ../../htdocs/user/card.php + path: ../../../htdocs/user/card.php - message: '#^Variable \$dolibarr_main_authentication might not be defined\.$#' identifier: variable.undefined count: 12 - path: ../../htdocs/user/card.php + path: ../../../htdocs/user/card.php - message: '#^Variable \$formproduct might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/user/card.php + path: ../../../htdocs/user/card.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/user/card.php + path: ../../../htdocs/user/card.php - message: '#^PHPDoc tag @phpstan\-return has invalid value \(Object\[\)\: Unexpected token "\[", expected TOKEN_HORIZONTAL_WS at offset 346 on line 8$#' identifier: phpDoc.parseError count: 1 - path: ../../htdocs/user/class/api_users.class.php + path: ../../../htdocs/user/class/api_users.class.php - message: '#^Call to function method_exists\(\) with \$this\(User\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Call to function method_exists\(\) with \$this\(User\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 3 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Parameter \#1 \$array of function dol_sort_array contains unresolvable type\.$#' identifier: argument.unresolvableType count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$rights \(stdClass\) in empty\(\) is not falsy\.$#' identifier: empty.property count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$rights \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$salary \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$salaryextra \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$statut \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$thm \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Property User\:\:\$tjm \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Result of \|\| is always true\.$#' identifier: booleanOr.alwaysTrue count: 4 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Return type of call to function dol_sort_array contains unresolvable type\.$#' identifier: function.unresolvableReturnType count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Variable \$whereforadd in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Variable \$wherefordel in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/class/user.class.php + path: ../../../htdocs/user/class/user.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/user/class/userbankaccount.class.php + path: ../../../htdocs/user/class/userbankaccount.class.php - message: '#^Call to function method_exists\(\) with \$this\(UserGroup\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Call to function property_exists\(\) with \$this\(UserGroup\) and ''members'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Call to function property_exists\(\) with \$this\(UserGroup\) and ''nb_rights'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Property CommonObject\:\:\$lastname \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Property UserGroup\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Property UserGroup\:\:\$name \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Property UserGroup\:\:\$nom \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Property UserGroup\:\:\$rights \(stdClass\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Variable \$whereforadd in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^Variable \$wherefordel in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/class/usergroup.class.php + path: ../../../htdocs/user/class/usergroup.class.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/user/document.php + path: ../../../htdocs/user/document.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/document.php + path: ../../../htdocs/user/document.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 3 - path: ../../htdocs/user/group/card.php + path: ../../../htdocs/user/group/card.php - message: '#^Loose comparison using \!\= between '''' and '''' will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/user/group/list.php + path: ../../../htdocs/user/group/list.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/user/group/list.php + path: ../../../htdocs/user/group/list.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/user/group/list.php + path: ../../../htdocs/user/group/list.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/group/list.php + path: ../../../htdocs/user/group/list.php - message: '#^Variable \$val in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/group/list.php + path: ../../../htdocs/user/group/list.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/group/perms.php + path: ../../../htdocs/user/group/perms.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/user/hierarchy.php + path: ../../../htdocs/user/hierarchy.php - message: '#^Variable \$mode in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/hierarchy.php + path: ../../../htdocs/user/hierarchy.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/user/home.php + path: ../../../htdocs/user/home.php - message: '#^Offset ''u\.salary'' on array\{u\.salary\: \(float\|int\)\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/user/list.php + path: ../../../htdocs/user/list.php - message: '#^Offset ''val'' on array\{val\: array\{u\.salary\: \(float\|int\)\}, nbfield\: int\<0, max\>, pos\?\: non\-empty\-array\\} in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/user/list.php + path: ../../../htdocs/user/list.php - message: '#^Variable \$mc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/list.php + path: ../../../htdocs/user/list.php - message: '#^Variable \$searchCategoryUserList in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/list.php + path: ../../../htdocs/user/list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/user/messaging.php + path: ../../../htdocs/user/messaging.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/user/note.php + path: ../../../htdocs/user/note.php - message: '#^Call to function property_exists\(\) with User and ''admin'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/notify/card.php + path: ../../../htdocs/user/notify/card.php - message: '#^Variable \$num might not be defined\.$#' identifier: variable.undefined count: 5 - path: ../../htdocs/user/notify/card.php + path: ../../../htdocs/user/notify/card.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/user/param_ihm.php + path: ../../../htdocs/user/param_ihm.php - message: '#^Variable \$dolibarr_main_authentication might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/user/passwordforgotten.php + path: ../../../htdocs/user/passwordforgotten.php - message: '#^Call to function is_array\(\) with array will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/user/perms.php + path: ../../../htdocs/user/perms.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/user/perms.php + path: ../../../htdocs/user/perms.php - message: '#^Call to function is_object\(\) with object will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/user/perms.php + path: ../../../htdocs/user/perms.php - message: '#^Variable \$menumanager might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/user/perms.php + path: ../../../htdocs/user/perms.php - message: '#^Variable \$permsgroupbyentitypluszero in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 3 - path: ../../htdocs/user/perms.php + path: ../../../htdocs/user/perms.php - message: '#^Call to function method_exists\(\) with \$this\(ProductAttribute\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/variants/class/ProductAttribute.class.php + path: ../../../htdocs/variants/class/ProductAttribute.class.php - message: '#^Call to function method_exists\(\) with \$this\(ProductAttribute\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/variants/class/ProductAttribute.class.php + path: ../../../htdocs/variants/class/ProductAttribute.class.php - message: '#^Call to function property_exists\(\) with \$this\(ProductAttribute\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/variants/class/ProductAttribute.class.php + path: ../../../htdocs/variants/class/ProductAttribute.class.php - message: '#^Call to function property_exists\(\) with \$this\(ProductAttribute\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/variants/class/ProductAttribute.class.php + path: ../../../htdocs/variants/class/ProductAttribute.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/variants/class/ProductAttribute.class.php + path: ../../../htdocs/variants/class/ProductAttribute.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/variants/class/ProductAttribute.class.php + path: ../../../htdocs/variants/class/ProductAttribute.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/variants/class/ProductAttributeValue.class.php + path: ../../../htdocs/variants/class/ProductAttributeValue.class.php - message: '#^Loose comparison using \!\= between ''ErrorProductAlready…'' and ''ErrorProductAlready…'' will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/variants/class/ProductCombination.class.php + path: ../../../htdocs/variants/class/ProductCombination.class.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/variants/class/ProductCombination.class.php + path: ../../../htdocs/variants/class/ProductCombination.class.php - message: '#^Property ProductCombination\:\:\$variation_price_percentage type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/variants/class/ProductCombination.class.php + path: ../../../htdocs/variants/class/ProductCombination.class.php - message: '#^Property ProductCombinationLevel\:\:\$variation_price \(float\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/variants/class/ProductCombination.class.php + path: ../../../htdocs/variants/class/ProductCombination.class.php - message: '#^Property ProductCombinationLevel\:\:\$variation_price_percentage \(bool\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/variants/class/ProductCombination.class.php + path: ../../../htdocs/variants/class/ProductCombination.class.php - message: '#^Call to function is_array\(\) with array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/variants/combinations.php + path: ../../../htdocs/variants/combinations.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/variants/combinations.php + path: ../../../htdocs/variants/combinations.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/variants/combinations.php + path: ../../../htdocs/variants/combinations.php - message: '#^Variable \$prodattr_all might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/variants/combinations.php + path: ../../../htdocs/variants/combinations.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/variants/list.php + path: ../../../htdocs/variants/list.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/variants/list.php + path: ../../../htdocs/variants/list.php - message: '#^Call to function is_numeric\(\) with int will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/viewimage.php + path: ../../../htdocs/viewimage.php - message: '#^Method Webhook\:\:_validate\(\) has parameter \$data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Method Webhook\:\:_validate\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Method Webhook\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Method Webhook\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Method Webhook\:\:listOfTriggers\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Method Webhook\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Method Webhook\:\:put\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Property Webhook\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/webhook/class/api_webhook.class.php + path: ../../../htdocs/webhook/class/api_webhook.class.php - message: '#^Call to function property_exists\(\) with Target and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Call to function property_exists\(\) with Target and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Call to function property_exists\(\) with Target and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Call to function property_exists\(\) with Target and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Call to function property_exists\(\) with Target and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Property CommonObject\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Property Target\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^Variable \$url in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 2 - path: ../../htdocs/webhook/class/target.class.php + path: ../../../htdocs/webhook/class/target.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/webhook/target_card.php + path: ../../../htdocs/webhook/target_card.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/webhook/target_card.php + path: ../../../htdocs/webhook/target_card.php - message: '#^Property CommonObject\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/webhook/target_card.php + path: ../../../htdocs/webhook/target_card.php - message: '#^Property Target\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/webhook/target_card.php + path: ../../../htdocs/webhook/target_card.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 6 - path: ../../htdocs/webhook/target_card.php + path: ../../../htdocs/webhook/target_card.php - message: '#^Variable \$permissiontoadd in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/webhook/target_card.php + path: ../../../htdocs/webhook/target_card.php - message: '#^Variable \$soc might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/webhook/target_card.php + path: ../../../htdocs/webhook/target_card.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/webhook/target_list.php + path: ../../../htdocs/webhook/target_list.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../htdocs/webhook/target_list.php + path: ../../../htdocs/webhook/target_list.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/webhook/target_list.php + path: ../../../htdocs/webhook/target_list.php - message: '#^Variable \$permissiontodelete in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/webhook/target_list.php + path: ../../../htdocs/webhook/target_list.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/webportal/admin/setup.php + path: ../../../htdocs/webportal/admin/setup.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 + path: ../../../htdocs/webportal/class/context.class.php - message: '#^Offset 0 on non\-empty\-list\ in isset\(\) always exists and is not nullable\.$#' identifier: isset.offset count: 1 - path: ../../htdocs/webportal/class/html.formcardwebportal.class.php + path: ../../../htdocs/webportal/class/html.formcardwebportal.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/webportal/class/html.formcardwebportal.class.php + path: ../../../htdocs/webportal/class/html.formcardwebportal.class.php - message: '#^Variable \$noback in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/webportal/class/html.formcardwebportal.class.php + 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 + 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 + path: ../../../htdocs/webportal/class/html.formlistwebportal.class.php - message: '#^Offset ''totalizable'' on array\{nbfield\: int, totalizable\: array\{\}, pos\?\: non\-empty\-array\, val\?\: non\-empty\-array\\} in empty\(\) always exists and is always falsy\.$#' identifier: empty.offset count: 1 - path: ../../htdocs/webportal/class/html.formlistwebportal.class.php + 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 + path: ../../../htdocs/webportal/class/html.formlistwebportal.class.php - message: '#^Unable to resolve the template type T in call to function dol_sort_array$#' identifier: argument.templateType count: 1 - path: ../../htdocs/webportal/class/html.formlistwebportal.class.php + path: ../../../htdocs/webportal/class/html.formlistwebportal.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 8 - path: ../../htdocs/webportal/class/html.formwebportal.class.php + path: ../../../htdocs/webportal/class/html.formwebportal.class.php - message: '#^Parameter \#3 \$preselectedvalue of method FormWebPortal\:\:selectForForms\(\) expects int, array\\|string given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/webportal/class/html.formwebportal.class.php + path: ../../../htdocs/webportal/class/html.formwebportal.class.php - message: '#^Call to function method_exists\(\) with \$this\(WebPortalInvoice\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalinvoice.class.php + path: ../../../htdocs/webportal/class/webportalinvoice.class.php - message: '#^Call to function method_exists\(\) with \$this\(WebPortalInvoice\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalinvoice.class.php + path: ../../../htdocs/webportal/class/webportalinvoice.class.php - message: '#^Call to function property_exists\(\) with \$this\(WebPortalInvoice\) and ''fk_user_author'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalinvoice.class.php + path: ../../../htdocs/webportal/class/webportalinvoice.class.php - message: '#^Call to function property_exists\(\) with \$this\(WebPortalInvoice\) and ''socid'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalinvoice.class.php + path: ../../../htdocs/webportal/class/webportalinvoice.class.php - message: '#^Loose comparison using \=\= between ''nolink'' and ''nolink'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../htdocs/webportal/class/webportalinvoice.class.php + path: ../../../htdocs/webportal/class/webportalinvoice.class.php - message: '#^Call to function is_array\(\) with array\{\}\|array\{mixed\} will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalmember.class.php + path: ../../../htdocs/webportal/class/webportalmember.class.php - message: '#^Strict comparison using \=\=\= between ''nolink'' and ''nolink'' will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 1 - path: ../../htdocs/webportal/class/webportalmember.class.php + path: ../../../htdocs/webportal/class/webportalmember.class.php - message: '#^Ternary operator condition is always false\.$#' identifier: ternary.alwaysFalse count: 1 - path: ../../htdocs/webportal/class/webportalmember.class.php + path: ../../../htdocs/webportal/class/webportalmember.class.php - message: '#^Call to function method_exists\(\) with \$this\(WebPortalOrder\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalorder.class.php + path: ../../../htdocs/webportal/class/webportalorder.class.php - message: '#^Call to function method_exists\(\) with \$this\(WebPortalOrder\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalorder.class.php + path: ../../../htdocs/webportal/class/webportalorder.class.php - message: '#^Call to function property_exists\(\) with \$this\(WebPortalOrder\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalorder.class.php + path: ../../../htdocs/webportal/class/webportalorder.class.php - message: '#^Call to function property_exists\(\) with \$this\(WebPortalOrder\) and ''total_ht'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalorder.class.php + path: ../../../htdocs/webportal/class/webportalorder.class.php - message: '#^Strict comparison using \=\=\= between ''nolink'' and ''nolink'' will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 1 - path: ../../htdocs/webportal/class/webportalorder.class.php + path: ../../../htdocs/webportal/class/webportalorder.class.php - message: '#^Loose comparison using \!\= between ''nolink'' and ''nolink'' will always evaluate to false\.$#' identifier: notEqual.alwaysFalse count: 1 - path: ../../htdocs/webportal/class/webportalpartnership.class.php + path: ../../../htdocs/webportal/class/webportalpartnership.class.php - message: '#^Loose comparison using \=\= between ''nolink'' and ''nolink'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 2 - path: ../../htdocs/webportal/class/webportalpartnership.class.php + path: ../../../htdocs/webportal/class/webportalpartnership.class.php - message: '#^Property Partnership\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/webportal/class/webportalpartnership.class.php + path: ../../../htdocs/webportal/class/webportalpartnership.class.php - message: '#^Call to function method_exists\(\) with \$this\(WebPortalPropal\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalpropal.class.php + path: ../../../htdocs/webportal/class/webportalpropal.class.php - message: '#^Call to function method_exists\(\) with \$this\(WebPortalPropal\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webportal/class/webportalpropal.class.php + path: ../../../htdocs/webportal/class/webportalpropal.class.php - message: '#^Property Propal\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/webportal/class/webportalpropal.class.php + path: ../../../htdocs/webportal/class/webportalpropal.class.php - message: '#^Strict comparison using \=\=\= between ''nolink'' and ''nolink'' will always evaluate to true\.$#' identifier: identical.alwaysTrue count: 1 - path: ../../htdocs/webportal/class/webportalpropal.class.php + path: ../../../htdocs/webportal/class/webportalpropal.class.php - message: '#^Parameter \#1 \$authentication of function check_authentication expects array\{login\: string, password\: string, entity\: int\|null, dolibarrkey\: string\}, array\{login\: string, entity\: int\} given\.$#' identifier: argument.type count: 1 - path: ../../htdocs/webservices/server_category.php + path: ../../../htdocs/webservices/server_category.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/webservices/server_invoice.php + path: ../../../htdocs/webservices/server_invoice.php - message: '#^Call to function is_array\(\) with non\-empty\-array\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/webservices/server_productorservice.php + path: ../../../htdocs/webservices/server_productorservice.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/webservices/server_project.php + path: ../../../htdocs/webservices/server_project.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 4 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 2 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Parameter \#2 \$arrayreplacement of function dolReplaceInFile expects array\, array\ given\.$#' identifier: argument.type count: 3 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$description \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$entity \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 3 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$fk_default_home \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$fk_user_creat \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$fk_user_modif \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$lang \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$otherlang \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 2 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$ref \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 4 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Property Website\:\:\$virtualhost \(string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Variable \$aliasesarray might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Variable \$destdir might not be defined\.$#' identifier: variable.undefined count: 13 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Variable \$destdirrel might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Variable \$maxrowid might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Variable \$newidforhome might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/website/class/website.class.php + path: ../../../htdocs/website/class/website.class.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../htdocs/website/class/websitepage.class.php + path: ../../../htdocs/website/class/websitepage.class.php - message: '#^Call to function is_array\(\) with list\ will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 2 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Left side of && is always true\.$#' identifier: booleanAnd.leftAlwaysTrue count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Left side of \|\| is always true\.$#' identifier: booleanOr.leftAlwaysTrue count: 2 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 2 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Right side of && is always true\.$#' identifier: booleanAnd.rightAlwaysTrue count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$atleastonepage might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$cate_arbo might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$containertype might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$contextpage in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$disabled might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$dolibarr_main_url_root might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$fileoldalias in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$langcode might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$otherfilters might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$tmpobject might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$urltograbdirrootwithoutslash might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Variable \$urltograbdirwithoutslash might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/website/index.php + path: ../../../htdocs/website/index.php - message: '#^Comparison operation "\>\=" between 1 and 0 is always true\.$#' identifier: greaterOrEqual.alwaysTrue count: 1 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 3 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^If condition is always true\.$#' identifier: if.alwaysTrue count: 1 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^Path in require_once\(\) "\./master\.inc\.php" is not a file or it does not exist\.$#' identifier: requireOnce.fileNotFound count: 1 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^Ternary operator condition is always true\.$#' identifier: ternary.alwaysTrue count: 1 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^Variable \$conf might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^Variable \$db might not be defined\.$#' identifier: variable.undefined count: 4 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^Variable \$langs might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/website/samples/wrapper.php + path: ../../../htdocs/website/samples/wrapper.php - message: '#^Variable \$socid in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/website/websiteaccount_card.php + path: ../../../htdocs/website/websiteaccount_card.php - message: '#^Variable \$socid might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/website/websiteaccount_card.php + path: ../../../htdocs/website/websiteaccount_card.php - message: '#^Method Workstations\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/workstation/class/api_workstations.class.php + path: ../../../htdocs/workstation/class/api_workstations.class.php - message: '#^Call to function method_exists\(\) with \$this\(Workstation\) and ''getLibStatut'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function method_exists\(\) with \$this\(Workstation\) and ''getNomUrl'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function property_exists\(\) with \$this\(Workstation\) and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function property_exists\(\) with \$this\(Workstation\) and ''thirdparty'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function property_exists\(\) with Workstation and ''date_creation'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function property_exists\(\) with Workstation and ''date_modification'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function property_exists\(\) with Workstation and ''label'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function property_exists\(\) with Workstation and ''ref'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Call to function property_exists\(\) with Workstation and ''status'' will always evaluate to true\.$#' identifier: function.alreadyNarrowedType count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Method Workstation\:\:fetchAll\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Property Workstation\:\:\$ismultientitymanaged \(int\<0, 1\>\|string\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Property Workstation\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/workstation/class/workstation.class.php + path: ../../../htdocs/workstation/class/workstation.class.php - message: '#^Property Workstation\:\:\$status \(int\) in isset\(\) is not nullable\.$#' identifier: isset.property count: 1 - path: ../../htdocs/workstation/workstation_card.php + path: ../../../htdocs/workstation/workstation_card.php - message: '#^Variable \$extrafields might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/workstation/workstation_card.php + path: ../../../htdocs/workstation/workstation_card.php - message: '#^Variable \$formquestion might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../htdocs/workstation/workstation_card.php + path: ../../../htdocs/workstation/workstation_card.php - message: '#^Variable \$upload_dir might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/workstation/workstation_document.php + path: ../../../htdocs/workstation/workstation_document.php - message: '#^Variable \$val might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/workstation/workstation_list.php + path: ../../../htdocs/workstation/workstation_list.php - message: '#^Variable \$visible might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../htdocs/workstation/workstation_list.php + path: ../../../htdocs/workstation/workstation_list.php - message: '#^Variable \$arrayofparameters in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../htdocs/zapier/admin/setup.php + path: ../../../htdocs/zapier/admin/setup.php - message: '#^Left side of && is always false\.$#' identifier: booleanAnd.leftAlwaysFalse count: 3 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Method Zapier\:\:delete\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Method Zapier\:\:getModulesChoices\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Method Zapier\:\:index\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Method Zapier\:\:post\(\) has parameter \$request_data with no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Method Zapier\:\:post\(\) return type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Property Zapier\:\:\$FIELDS type has no value type specified in iterable type array\.$#' identifier: missingType.iterableValue count: 1 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Result of && is always false\.$#' identifier: booleanAnd.alwaysFalse count: 1 - path: ../../htdocs/zapier/class/api_zapier.class.php + path: ../../../htdocs/zapier/class/api_zapier.class.php - message: '#^Variable \$num in isset\(\) always exists and is not nullable\.$#' identifier: isset.variable count: 1 - path: ../../scripts/bank/export-bank-receipts.php + path: ../../../scripts/bank/export-bank-receipts.php - message: '#^Result of \|\| is always false\.$#' identifier: booleanOr.alwaysFalse count: 1 - path: ../../scripts/doc/regenerate_docs.php + path: ../../../scripts/doc/regenerate_docs.php - message: '#^Variable \$dir in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../scripts/doc/regenerate_docs.php + path: ../../../scripts/doc/regenerate_docs.php - message: '#^Variable \$newlang in empty\(\) always exists and is always falsy\.$#' identifier: empty.variable count: 1 - path: ../../scripts/doc/regenerate_docs.php + path: ../../../scripts/doc/regenerate_docs.php - message: '#^Variable \$subdir in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../scripts/doc/regenerate_docs.php + path: ../../../scripts/doc/regenerate_docs.php - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse count: 1 - path: ../../scripts/emailings/mailing-send.php + path: ../../../scripts/emailings/mailing-send.php - message: '#^Variable \$mesg might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../scripts/emailings/mailing-send.php + path: ../../../scripts/emailings/mailing-send.php - message: '#^Variable \$statut might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../scripts/emailings/mailing-send.php + path: ../../../scripts/emailings/mailing-send.php - message: '#^Negated boolean expression is always true\.$#' identifier: booleanNot.alwaysTrue count: 1 - path: ../../scripts/emailings/reset-invalid-emails.php + path: ../../../scripts/emailings/reset-invalid-emails.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../scripts/members/sync_members_dolibarr2ldap.php + path: ../../../scripts/members/sync_members_dolibarr2ldap.php - message: '#^Unable to resolve the template type T in call to function array_values$#' identifier: argument.templateType count: 1 - path: ../../scripts/members/sync_members_ldap2dolibarr.php + path: ../../../scripts/members/sync_members_ldap2dolibarr.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 1 - path: ../../scripts/members/sync_members_ldap2dolibarr.php + path: ../../../scripts/members/sync_members_ldap2dolibarr.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../scripts/members/sync_members_types_dolibarr2ldap.php + path: ../../../scripts/members/sync_members_types_dolibarr2ldap.php - message: '#^Variable \$user might not be defined\.$#' identifier: variable.undefined count: 2 - path: ../../scripts/members/sync_members_types_ldap2dolibarr.php + path: ../../../scripts/members/sync_members_types_ldap2dolibarr.php - message: '#^Loose comparison using \=\= between ''product'' and ''product'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../scripts/product/migrate_picture_path.php + path: ../../../scripts/product/migrate_picture_path.php - message: '#^Result of \|\| is always false\.$#' identifier: booleanOr.alwaysFalse count: 1 - path: ../../scripts/product/regenerate_thumbs.php + path: ../../../scripts/product/regenerate_thumbs.php - message: '#^Variable \$dir in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../scripts/product/regenerate_thumbs.php + path: ../../../scripts/product/regenerate_thumbs.php - message: '#^Variable \$subdir in empty\(\) always exists and is not falsy\.$#' identifier: empty.variable count: 1 - path: ../../scripts/product/regenerate_thumbs.php + path: ../../../scripts/product/regenerate_thumbs.php - message: '#^Loose comparison using \=\= between ''user'' and ''user'' will always evaluate to true\.$#' identifier: equal.alwaysTrue count: 1 - path: ../../scripts/user/migrate_picture_path.php + path: ../../../scripts/user/migrate_picture_path.php - message: '#^Unable to resolve the template type T in call to function array_values$#' identifier: argument.templateType count: 1 - path: ../../scripts/user/sync_users_ldap2dolibarr.php + path: ../../../scripts/user/sync_users_ldap2dolibarr.php From 0ec3b7c8586beaef1cbaf70aa1b12fa1231453cb Mon Sep 17 00:00:00 2001 From: "Laurent Destailleur (aka Eldy)" Date: Sun, 5 Jan 2025 16:51:32 +0100 Subject: [PATCH 124/126] Fix phpunit --- htdocs/commande/class/orderline.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/commande/class/orderline.class.php b/htdocs/commande/class/orderline.class.php index 250c73b9ce1..b5efe3913f4 100644 --- a/htdocs/commande/class/orderline.class.php +++ b/htdocs/commande/class/orderline.class.php @@ -105,7 +105,7 @@ class OrderLine extends CommonOrderLine /** * Buy price without taxes - * @var float|string Can be '' when we do not provide any buying price. + * @var float|int|string Can be '' when we do not provide any buying price. */ public $pa_ht; From a82c517e09579c84470b3457884932f95dc79203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20France?= Date: Sun, 5 Jan 2025 17:09:38 +0100 Subject: [PATCH 125/126] fix phpstan --- dev/build/phpstan/phpstan-baseline.neon | 18 ------------------ htdocs/comm/propal/class/propal.class.php | 4 ++-- htdocs/commande/class/commande.class.php | 4 ++-- htdocs/compta/facture/class/facture.class.php | 4 ++-- htdocs/contrat/class/contrat.class.php | 4 ++-- 5 files changed, 8 insertions(+), 26 deletions(-) diff --git a/dev/build/phpstan/phpstan-baseline.neon b/dev/build/phpstan/phpstan-baseline.neon index be42a96344b..9650d6771b0 100644 --- a/dev/build/phpstan/phpstan-baseline.neon +++ b/dev/build/phpstan/phpstan-baseline.neon @@ -9096,12 +9096,6 @@ parameters: count: 1 path: ../../../htdocs/core/class/commonobject.class.php - - - message: '#^Parameter \#17 \$pa_ht of method Commande\:\:updateline\(\) expects int, float given\.$#' - identifier: argument.type - count: 1 - path: ../../../htdocs/core/class/commonobject.class.php - - message: '#^Parameter \#2 \$line of method CommonObject\:\:printObjectLine\(\) expects CommonObjectLine, CommonObject\|stdClass given\.$#' identifier: argument.type @@ -20244,12 +20238,6 @@ parameters: count: 2 path: ../../../htdocs/fourn/commande/dispatch.php - - - message: '#^Variable \$reception might not be defined\.$#' - identifier: variable.undefined - count: 1 - path: ../../../htdocs/fourn/commande/dispatch.php - - message: '#^If condition is always false\.$#' identifier: if.alwaysFalse @@ -28734,12 +28722,6 @@ parameters: count: 16 path: ../../../htdocs/public/webportal/webportal.main.inc.php - - - message: '#^Variable \$logged_partnership might not be defined\.$#' - identifier: variable.undefined - count: 1 - path: ../../../htdocs/public/webportal/webportal.main.inc.php - - message: '#^Negated boolean expression is always false\.$#' identifier: booleanNot.alwaysFalse diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index 3359667e3b2..2d63be548dd 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -13,7 +13,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2015 Marcos García * Copyright (C) 2018 Nicolas ZABOURI - * Copyright (C) 2018-2024 Frédéric France + * Copyright (C) 2018-2025 Frédéric France * Copyright (C) 2018 Ferran Marcet * Copyright (C) 2022 ATM Consulting * Copyright (C) 2022 OpenDSI @@ -864,7 +864,7 @@ class Propal extends CommonObject * @param int $fk_parent_line Id of parent line (0 in most cases, used by modules adding sublevels into lines). * @param int $skip_update_total Keep fields total_xxx to 0 (used for special lines by some modules) * @param int $fk_fournprice Id of origin supplier price - * @param int $pa_ht Price (without tax) of product when it was bought + * @param float $pa_ht Price (without tax) of product when it was bought * @param string $label ??? * @param int $type 0/1=Product/service * @param int|string $date_start Start date of the line diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index e3b381a518a..00af4d7689f 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -11,7 +11,7 @@ * Copyright (C) 2014-2015 Marcos García * Copyright (C) 2018 Nicolas ZABOURI * Copyright (C) 2016-2022 Ferran Marcet - * Copyright (C) 2021-2024 Frédéric France + * Copyright (C) 2021-2025 Frédéric France * Copyright (C) 2022 Gauthier VERDOL * Copyright (C) 2024 MDW * Copyright (C) 2024 William Mead @@ -3123,7 +3123,7 @@ class Commande extends CommonOrder * @param int $fk_parent_line Id of parent line (0 in most cases, used by modules adding sublevels into lines). * @param int $skip_update_total Keep fields total_xxx to 0 (used for special lines by some modules) * @param int $fk_fournprice Id of origin supplier price - * @param int $pa_ht Price (without tax) of product when it was bought + * @param float $pa_ht Price (without tax) of product when it was bought * @param string $label Label * @param int $special_code Special code (also used by externals modules!) * @param array $array_options extrafields array diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index 0d1435fa918..b4e9e4e24da 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -21,7 +21,7 @@ * Copyright (C) 2023 Gauthier VERDOL * Copyright (C) 2023 Nick Fragoulis * Copyright (C) 2024 MDW - * Copyright (C) 2024 Frédéric France + * Copyright (C) 2024-2025 Frédéric France * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -4145,7 +4145,7 @@ class Facture extends CommonInvoice * @param int $fk_parent_line Id of parent line (0 in most cases, used by modules adding sublevels into lines). * @param int $skip_update_total Keep fields total_xxx to 0 (used for special lines by some modules) * @param int $fk_fournprice Id of origin supplier price - * @param int $pa_ht Price (without tax) of product when it was bought + * @param float $pa_ht Price (without tax) of product when it was bought * @param string $label Label of the line (deprecated, do not use) * @param int $special_code Special code (also used by externals modules!) * @param array $array_options extrafields array diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index 0f83d2dc1f4..8999641d19a 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -9,7 +9,7 @@ * Copyright (C) 2013 Florian Henry * Copyright (C) 2014-2015 Marcos García * Copyright (C) 2018 Nicolas ZABOURI - * Copyright (C) 2018-2024 Frédéric France + * Copyright (C) 2018-2025 Frédéric France * Copyright (C) 2015-2018 Ferran Marcet * Copyright (C) 2024 William Mead * Copyright (C) 2024 MDW @@ -1701,7 +1701,7 @@ class Contrat extends CommonObject * @param string $price_base_type HT or TTC * @param int $info_bits Bits of type of lines * @param int $fk_fournprice Fourn price id - * @param int $pa_ht Buying price HT + * @param float $pa_ht Buying price HT * @param array $array_options extrafields array * @param string $fk_unit Code of the unit to use. Null to use the default one * @param int $rang Position From 7a5356397f82c2d568cbfdab6107e4b4817c38f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20France?= Date: Sun, 5 Jan 2025 17:23:31 +0100 Subject: [PATCH 126/126] fix phpstan --- dev/tools/phan/baseline.txt | 7 +++---- htdocs/commande/class/commande.class.php | 3 ++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dev/tools/phan/baseline.txt b/dev/tools/phan/baseline.txt index 524c56158ce..65d97c5a1e7 100644 --- a/dev/tools/phan/baseline.txt +++ b/dev/tools/phan/baseline.txt @@ -11,7 +11,7 @@ return [ // # Issue statistics: // PhanUndeclaredProperty : 560+ occurrences // PhanPossiblyUndeclaredGlobalVariable : 310+ occurrences - // PhanUndeclaredGlobalVariable : 290+ occurrences + // PhanUndeclaredGlobalVariable : 280+ occurrences // PhanTypeMismatchArgumentProbablyReal : 230+ occurrences // PhanPluginUnknownArrayMethodReturnType : 180+ occurrences // PhanTypeMismatchProperty : 130+ occurrences @@ -34,7 +34,7 @@ return [ // PhanPluginSuspiciousParamPosition : 7 occurrences // PhanTypeArraySuspiciousNull : 6 occurrences // PhanParamTooMany : 5 occurrences - // PhanPossiblyNullTypeMismatchProperty : 5 occurrences + // PhanPossiblyNullTypeMismatchProperty : 4 occurrences // PhanEmptyFQSENInClasslike : 3 occurrences // PhanInvalidFQSENInClasslike : 3 occurrences // PhanTypeMismatchReturn : 3 occurrences @@ -310,7 +310,6 @@ return [ 'htdocs/fourn/class/fournisseur.commande.class.php' => ['PhanUndeclaredProperty'], 'htdocs/fourn/commande/card.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchDimAssignment', 'PhanTypeMismatchProperty', 'PhanTypeSuspiciousStringExpression', 'PhanUndeclaredProperty'], 'htdocs/fourn/commande/contact.php' => ['PhanUndeclaredGlobalVariable'], - 'htdocs/fourn/commande/dispatch.php' => ['PhanUndeclaredGlobalVariable'], 'htdocs/fourn/commande/document.php' => ['PhanUndeclaredGlobalVariable'], 'htdocs/fourn/commande/info.php' => ['PhanUndeclaredGlobalVariable'], 'htdocs/fourn/commande/list.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgumentProbablyReal'], @@ -469,7 +468,7 @@ return [ 'htdocs/public/ticket/create_ticket.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchDimFetchNullable', 'PhanTypeMismatchProperty'], 'htdocs/public/ticket/view.php' => ['PhanPossiblyUndeclaredGlobalVariable', 'PhanTypeMismatchArgumentProbablyReal'], 'htdocs/public/webportal/tpl/menu.tpl.php' => ['PhanUndeclaredProperty'], - 'htdocs/public/webportal/webportal.main.inc.php' => ['PhanPossiblyNullTypeMismatchProperty', 'PhanPossiblyUndeclaredGlobalVariable', 'PhanRedefineFunction'], + 'htdocs/public/webportal/webportal.main.inc.php' => ['PhanRedefineFunction'], 'htdocs/public/website/index.php' => ['PhanRedefineFunction'], 'htdocs/public/website/javascript.js.php' => ['PhanRedefineFunction'], 'htdocs/public/website/styles.css.php' => ['PhanRedefineFunction'], diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 00af4d7689f..c67828a8a89 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -36,7 +36,7 @@ * \brief class for orders */ -include_once DOL_DOCUMENT_ROOT.'/core/class/commonorder.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonorder.class.php'; require_once DOL_DOCUMENT_ROOT.'/commande/class/orderline.class.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT.'/margin/lib/margins.lib.php'; @@ -461,6 +461,7 @@ class Commande extends CommonOrder } $obj = new $classname(); + /** @var ModeleNumRefCommandes $obj */ '@phan-var-force ModeleNumRefCommandes $obj'; $numref = $obj->getNextValue($soc, $this);