Ottimizzazioni per php8.3

This commit is contained in:
pek5892 2024-05-23 11:36:25 +02:00
parent 8907734985
commit 95f20080f2
201 changed files with 556 additions and 649 deletions

View File

@ -53,7 +53,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
$response = Response::error('ok'); $response = Response::error('ok');
} }
json_decode($response); json_decode((string) $response);
// Impostazioni di Content-Type e Charset Header // Impostazioni di Content-Type e Charset Header
if (json_last_error() == JSON_ERROR_NONE) { if (json_last_error() == JSON_ERROR_NONE) {

View File

@ -364,7 +364,7 @@ if (empty($record) || !$has_access) {
</div> </div>
</div>'; </div>';
} }
echo' echo '
<div> <div>
<i class="fa fa-clock-o bg-gray"></i> <i class="fa fa-clock-o bg-gray"></i>
</div> </div>

View File

@ -95,7 +95,7 @@ echo '
</html>'; </html>';
// Retrocompatibilità // Retrocompatibilità
if (!empty($id_record) || basename($_SERVER['PHP_SELF']) == 'controller.php' || basename($_SERVER['PHP_SELF']) == 'index.php') { if (!empty($id_record) || basename((string) $_SERVER['PHP_SELF']) == 'controller.php' || basename((string) $_SERVER['PHP_SELF']) == 'index.php') {
unset($_SESSION['infos']); unset($_SESSION['infos']);
unset($_SESSION['errors']); unset($_SESSION['errors']);
unset($_SESSION['warnings']); unset($_SESSION['warnings']);

View File

@ -76,7 +76,7 @@ echo '
<input type="hidden" name="id_documento" value="'.$documento->id.'"> <input type="hidden" name="id_documento" value="'.$documento->id.'">
<input type="hidden" name="type" value="'.$options['type'].'"> <input type="hidden" name="type" value="'.$options['type'].'">
<input type="hidden" name="class" value="'.get_class($documento).'"> <input type="hidden" name="class" value="'.$documento::class.'">
<input type="hidden" name="is_evasione" value="1">'; <input type="hidden" name="is_evasione" value="1">';
// Creazione fattura dal documento // Creazione fattura dal documento

View File

@ -47,7 +47,7 @@ if (!empty(post('db_host'))) {
'db_username' => $db_username, 'db_username' => $db_username,
'db_password' => $db_password, 'db_password' => $db_password,
]); ]);
} catch (Exception $e) { } catch (Exception) {
} }
// Test della configurazione // Test della configurazione

View File

@ -31,47 +31,18 @@ $modules = [
$sapi_name = php_sapi_name(); $sapi_name = php_sapi_name();
$php_interface = ''; $php_interface = '';
switch (true) { $php_interface = match (true) {
case strpos($sapi_name, 'apache') !== false: str_contains($sapi_name, 'apache') => 'apache',
// PHP è in esecuzione come modulo Apache (4) str_contains($sapi_name, 'fpm-fcgi') => 'fpm-fcgi',
$php_interface = 'apache'; str_contains($sapi_name, 'fpm') => 'fpm',
break; str_contains($sapi_name, 'cgi-fcgi') => 'cgi-fcgi',
case strpos($sapi_name, 'fpm-fcgi') !== false: str_contains($sapi_name, 'cgi') => 'cgi',
// PHP è in esecuzione come PHP-FPM FastCGI (3) str_contains($sapi_name, 'cli') => 'cli',
$php_interface = 'fpm-fcgi'; str_contains($sapi_name, 'embed') => 'embed',
break; str_contains($sapi_name, 'litespeed') => 'litespeed',
case strpos($sapi_name, 'fpm') !== false: str_contains($sapi_name, 'isapi') => 'isapi',
// PHP è in esecuzione come PHP-FPM (9) default => 'n.d.',
$php_interface = 'fpm'; };
break;
case strpos($sapi_name, 'cgi-fcgi') !== false:
// PHP è in esecuzione come FastCGI (8)
$php_interface = 'cgi-fcgi';
break;
case strpos($sapi_name, 'cgi') !== false:
// PHP è in esecuzione come modulo CGI (2)
$php_interface = 'cgi';
break;
case strpos($sapi_name, 'cli') !== false:
// PHP è in esecuzione dalla riga di comando (command line interface) (1)
$php_interface = 'cli';
break;
case strpos($sapi_name, 'embed') !== false:
// PHP è incorporato in un'applicazione (5)
$php_interface = 'embed';
break;
case strpos($sapi_name, 'litespeed') !== false:
// PHP è in esecuzione come modulo LiteSpeed (6)
$php_interface = 'litespeed';
break;
case strpos($sapi_name, 'isapi') !== false:
// PHP è in esecuzione come modulo ISAPI in IIS (7)
$php_interface = 'isapi';
break;
default:
// Non è possibile determinare il tipo di interfaccia di PHP (0)
$php_interface = 'n.d.';
}
if (function_exists('apache_get_modules')) { if (function_exists('apache_get_modules')) {
$available_modules = apache_get_modules(); $available_modules = apache_get_modules();

View File

@ -107,24 +107,24 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') {
foreach ($total['fields'] as $key => $field) { foreach ($total['fields'] as $key => $field) {
$attr_td = ''; $attr_td = '';
$name = trim($field); $name = trim((string) $field);
// Check per tipologie di campi particolari // Check per tipologie di campi particolari
if (preg_match('/^color_/', $field)) { if (preg_match('/^color_/', (string) $field)) {
$attr_td .= " width='140'"; $attr_td .= " width='140'";
$field = str_replace('color_', '', $field); $field = str_replace('color_', '', $field);
} }
// Data (larghezza fissa) // Data (larghezza fissa)
elseif (preg_match('/^Data/', $field)) { elseif (preg_match('/^Data/', (string) $field)) {
$attr_td .= " width='100'"; $attr_td .= " width='100'";
} }
// Icona di stampa // Icona di stampa
elseif (trim($field) == '_print_') { elseif (trim((string) $field) == '_print_') {
$attr_td .= " width='30'"; $attr_td .= " width='30'";
$field = str_replace('_print_', '', $field); $field = str_replace('_print_', '', $field);
} elseif (preg_match('/^icon_/', $field)) { } elseif (preg_match('/^icon_/', (string) $field)) {
$attr_td .= " width='30'"; $attr_td .= " width='30'";
$name = str_replace('icon_', 'icon_title_', $name); $name = str_replace('icon_', 'icon_title_', $name);
$field = str_replace('icon_', '', $field); $field = str_replace('icon_', '', $field);

View File

@ -61,7 +61,7 @@ $ddt = DDT::whereHas('stato', function ($query) {
})->get(); })->get();
foreach ($ddt as $elemento) { foreach ($ddt as $elemento) {
$documenti_disponibili->push([ $documenti_disponibili->push([
'id' => get_class($elemento).'|'.$elemento->id, 'id' => $elemento::class.'|'.$elemento->id,
'text' => $elemento->getReference(1), 'text' => $elemento->getReference(1),
'optgroup' => tr('Ddt in ').$source->getDocument()->direzione, 'optgroup' => tr('Ddt in ').$source->getDocument()->direzione,
]); ]);
@ -77,7 +77,7 @@ $ordini = Ordine::whereHas('stato', function ($query) {
})->get(); })->get();
foreach ($ordini as $elemento) { foreach ($ordini as $elemento) {
$documenti_disponibili->push([ $documenti_disponibili->push([
'id' => get_class($elemento).'|'.$elemento->id, 'id' => $elemento::class.'|'.$elemento->id,
'text' => $elemento->getReference(1), 'text' => $elemento->getReference(1),
'optgroup' => tr('Ordini ').$tipo_ordini, 'optgroup' => tr('Ordini ').$tipo_ordini,
]); ]);

View File

@ -44,7 +44,7 @@ echo '
$righe = $documento->getRighe(); $righe = $documento->getRighe();
foreach ($righe as $riga) { foreach ($righe as $riga) {
$riga_class = get_class($riga); $riga_class = $riga::class;
$riferimento_locale = $riga_class.'|'.$riga->id; $riferimento_locale = $riga_class.'|'.$riga->id;
$presente = in_array($riferimento_locale, $riferimenti); $presente = in_array($riferimento_locale, $riferimenti);

View File

@ -43,12 +43,12 @@ if (!$riferimenti->isEmpty()) {
foreach ($riferimenti as $riferimento) { foreach ($riferimenti as $riferimento) {
$riga = $riferimento->target; $riga = $riferimento->target;
$riga_class = get_class($source); $riga_class = $source::class;
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.$riga_class.'"> <tr data-id="'.$riga->id.'" data-type="'.$riga_class.'">
<td> <td>
<button type="button" class="btn btn-xs btn-danger pull-right" onclick="rimuoviRiferimento(this, \''.addslashes($source_type).'\', \''.$source_id.'\', \''.$riferimento->id.'\')"> <button type="button" class="btn btn-xs btn-danger pull-right" onclick="rimuoviRiferimento(this, \''.addslashes((string) $source_type).'\', \''.$source_id.'\', \''.$riferimento->id.'\')">
<i class="fa fa-trash"></i> <i class="fa fa-trash"></i>
</button> </button>

View File

@ -75,7 +75,7 @@ if (Auth::check()) {
echo ' echo '
search.push("search_'.$field_name.'"); search.push("search_'.$field_name.'");
search["search_'.$field_name.'"] = "'.addslashes($value).'";'; search["search_'.$field_name.'"] = "'.addslashes((string) $value).'";';
} }
} }
} }
@ -206,7 +206,7 @@ if (Auth::check()) {
search: search, search: search,
translations: translations, translations: translations,
locale: "'.explode('_', $lang)[0].'", locale: "'.explode('_', (string) $lang)[0].'",
full_locale: "'.$lang.'", full_locale: "'.$lang.'",
start_date: "'.$_SESSION['period_start'].'", start_date: "'.$_SESSION['period_start'].'",
@ -276,7 +276,7 @@ if (Auth::check()) {
date_format: "'.formatter()->getDatePattern().'", date_format: "'.formatter()->getDatePattern().'",
time_format: "'.formatter()->getTimePattern().'", time_format: "'.formatter()->getTimePattern().'",
locale: "'.explode('_', $lang)[0].'", locale: "'.explode('_', (string) $lang)[0].'",
full_locale: "'.$lang.'", full_locale: "'.$lang.'",
}; };
</script>'; </script>';
@ -530,9 +530,9 @@ if (Auth::check()) {
$count = 0; $count = 0;
$opt = ''; $opt = '';
if (!empty($plugin['options2'])) { if (!empty($plugin['options2'])) {
$opt = json_decode($plugin['options2'], true); $opt = json_decode((string) $plugin['options2'], true);
} elseif (!empty($plugin['options'])) { } elseif (!empty($plugin['options'])) {
$opt = json_decode($plugin['options'], true); $opt = json_decode((string) $plugin['options'], true);
} }
if (!empty($opt)) { if (!empty($opt)) {
@ -568,13 +568,13 @@ if (Auth::check()) {
if ($structure->permission != '-' && $structure->use_checklists) { if ($structure->permission != '-' && $structure->use_checklists) {
$checklists_unchecked = $structure->recordChecks($id_record)->where('checked_at', null); $checklists_unchecked = $structure->recordChecks($id_record)->where('checked_at', null);
$checklists_total = $structure->recordChecks($id_record); $checklists_total = $structure->recordChecks($id_record);
echo ' echo '
<li data-toggle="control-sidebar" class="btn-default nav-item"> <li data-toggle="control-sidebar" class="btn-default nav-item">
<a class="bg-info nav-link" data-toggle="tab" href="#tab_checks" id="link-tab_checks"> <a class="bg-info nav-link" data-toggle="tab" href="#tab_checks" id="link-tab_checks">
'.tr('Checklist') '.tr('Checklist')
. ($checklists_total ? ' <span class="badge pull-right">' . $checklists_unchecked->count() . tr(' / ') . $checklists_total->count() . '</span>' : '') .($checklists_total ? ' <span class="badge pull-right">'.$checklists_unchecked->count().tr(' / ').$checklists_total->count().'</span>' : '')
. ' .'
</a> </a>
</li>'; </li>';
} }

View File

@ -75,7 +75,7 @@ function calcola_sconto($data)
$price = floatval($data['prezzo']); $price = floatval($data['prezzo']);
$percentages = explode('+', $data['sconto']); $percentages = explode('+', (string) $data['sconto']);
foreach ($percentages as $percentage) { foreach ($percentages as $percentage) {
$discount = $price / 100 * floatval($percentage); $discount = $price / 100 * floatval($percentage);
@ -187,7 +187,7 @@ function reference($document, $text = null)
} }
$description = $text ?: tr('Rif. _DOCUMENT_', [ $description = $text ?: tr('Rif. _DOCUMENT_', [
'_DOCUMENT_' => strtolower($content), '_DOCUMENT_' => strtolower((string) $content),
]); ]);
return Modules::link($module_id, $document_id, $description, $description, $extra); return Modules::link($module_id, $document_id, $description, $description, $extra);
@ -201,16 +201,16 @@ function reference($document, $text = null)
*/ */
function parseScontoCombinato($combinato) function parseScontoCombinato($combinato)
{ {
$sign = substr($combinato, 0, 1); $sign = substr((string) $combinato, 0, 1);
$original = $sign != '+' && $sign != '-' ? '+'.$combinato : $combinato; $original = $sign != '+' && $sign != '-' ? '+'.$combinato : $combinato;
$pieces = preg_split('/[+,-]+/', $original); $pieces = preg_split('/[+,-]+/', (string) $original);
unset($pieces[0]); unset($pieces[0]);
$result = 1; $result = 1;
$text = $original; $text = $original;
foreach ($pieces as $piece) { foreach ($pieces as $piece) {
$sign = substr($text, 0, 1); $sign = substr((string) $text, 0, 1);
$text = substr($text, 1 + strlen($piece)); $text = substr((string) $text, 1 + strlen($piece));
$result *= 1 - floatval($sign.$piece) / 100; $result *= 1 - floatval($sign.$piece) / 100;
} }
@ -336,7 +336,7 @@ function checkPrefix($cellulare)
// Controlla se il campo "cellulare" inizia con uno dei prefissi // Controlla se il campo "cellulare" inizia con uno dei prefissi
foreach ($internationalPrefixes as $prefix) { foreach ($internationalPrefixes as $prefix) {
if (strpos($cellulare, $prefix) === 0) { if (str_starts_with((string) $cellulare, $prefix)) {
return true; // Un prefisso è già presente return true; // Un prefisso è già presente
} }
} }

View File

@ -78,7 +78,7 @@ function delete($files)
// Eliminazione // Eliminazione
try { try {
$fs->remove($files); $fs->remove($files);
} catch (IOException $e) { } catch (IOException) {
return false; return false;
} }
@ -129,16 +129,16 @@ function copyr($source, $destination, $ignores = [])
try { try {
$fs->chmod($destination, 0777, 0000, true); $fs->chmod($destination, 0777, 0000, true);
} catch (IOException $e) { } catch (IOException) {
} }
foreach ($files as $file) { foreach ($files as $file) {
$filename = rtrim($destination, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$file->getRelativePathname(); $filename = rtrim((string) $destination, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.$file->getRelativePathname();
// Copia effettiva del file // Copia effettiva del file
try { try {
$fs->copy($file, $filename, true); $fs->copy($file, $filename, true);
} catch (IOException $e) { } catch (IOException) {
$result = false; $result = false;
} }
} }
@ -175,7 +175,7 @@ function getOS()
]; ];
foreach ($os as $key => $value) { foreach ($os as $key => $value) {
if (strpos($_SERVER['HTTP_USER_AGENT'], $key)) { if (strpos((string) $_SERVER['HTTP_USER_AGENT'], $key)) {
return $value; return $value;
} }
} }
@ -209,7 +209,7 @@ function get_client_ip()
$ipaddress = 'UNKNOWN'; $ipaddress = 'UNKNOWN';
} }
return strip_tags($ipaddress); return strip_tags((string) $ipaddress);
} }
/** /**
@ -351,7 +351,7 @@ function prepareToField($string)
*/ */
function isMobile() function isMobile()
{ {
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER['HTTP_USER_AGENT']); return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", (string) $_SERVER['HTTP_USER_AGENT']);
} }
/** /**
@ -364,10 +364,10 @@ function isMobile()
function getURLPath() function getURLPath()
{ {
$path = $_SERVER['SCRIPT_FILENAME']; $path = $_SERVER['SCRIPT_FILENAME'];
$prefix = rtrim($_SERVER['DOCUMENT_ROOT'], '/\\'); $prefix = rtrim((string) $_SERVER['DOCUMENT_ROOT'], '/\\');
if (substr($path, 0, strlen($prefix)) == $prefix) { if (str_starts_with((string) $path, $prefix)) {
$path = substr($path, strlen($prefix)); $path = substr((string) $path, strlen($prefix));
} else { } else {
$path = str_replace(base_dir(), base_path(), $path); $path = str_replace(base_dir(), base_path(), $path);
} }
@ -406,7 +406,7 @@ function clean($string, $permitted = '')
function check_query($query) function check_query($query)
{ {
$query = mb_strtoupper($query); $query = mb_strtoupper((string) $query);
$blacklist = ['INSERT', 'UPDATE', 'TRUNCATE', 'DELETE', 'DROP', 'GRANT', 'CREATE', 'REVOKE']; $blacklist = ['INSERT', 'UPDATE', 'TRUNCATE', 'DELETE', 'DROP', 'GRANT', 'CREATE', 'REVOKE'];
foreach ($blacklist as $value) { foreach ($blacklist as $value) {
@ -449,11 +449,10 @@ function session_get($name, $default = null)
* Imposta un parametro nella sessione secondo un nome indicato. * Imposta un parametro nella sessione secondo un nome indicato.
* *
* @param string $name Nome del parametro in dot-notation * @param string $name Nome del parametro in dot-notation
* @param mixed $value Valore da impostare
* *
* @return void * @return void
*/ */
function session_set($name, $value) function session_set($name, mixed $value)
{ {
$session = &$_SESSION; $session = &$_SESSION;

View File

@ -307,7 +307,7 @@ if (!function_exists('download')) {
ob_end_clean(); ob_end_clean();
if (!headers_sent()) { if (!headers_sent()) {
$filename = !empty($filename) ? $filename : basename($file); $filename = !empty($filename) ? $filename : basename((string) $file);
// Required for some browsers // Required for some browsers
if (ini_get('zlib.output_compression')) { if (ini_get('zlib.output_compression')) {
@ -385,13 +385,13 @@ if (!function_exists('isHTTPS')) {
*/ */
function isHTTPS($trust_proxy_headers = false) function isHTTPS($trust_proxy_headers = false)
{ {
if (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') { if (!empty($_SERVER['HTTPS']) && strtolower((string) $_SERVER['HTTPS']) !== 'off') {
// Check the standard HTTPS headers // Check the standard HTTPS headers
return true; return true;
} elseif ($trust_proxy_headers && isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { } elseif ($trust_proxy_headers && isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
// Check proxy headers if allowed // Check proxy headers if allowed
return true; return true;
} elseif (!empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') { } elseif (!empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower((string) $_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
return true; return true;
} }
@ -457,17 +457,12 @@ if (!function_exists('color_inverse')) {
return '#000'; return '#000';
} }
} else { } else {
switch ($start_colour) { return match ($start_colour) {
case 'black': 'black' => 'white',
return 'white'; 'blue' => 'white',
case 'blue': 'purple' => 'white',
return 'white'; default => '#000',
case 'purple': };
return 'white';
// Aggiungere altri casi per colori specifici
default:
return '#000'; // Se il colore non è specificato, restituisce il colore originale
}
} }
} }
} }
@ -558,7 +553,7 @@ if (!function_exists('temp_file')) {
]); ]);
$file = rtrim($base_directory, DIRECTORY_SEPARATOR). $file = rtrim($base_directory, DIRECTORY_SEPARATOR).
DIRECTORY_SEPARATOR. DIRECTORY_SEPARATOR.
ltrim($name, DIRECTORY_SEPARATOR); ltrim((string) $name, DIRECTORY_SEPARATOR);
file_put_contents($file, $content); file_put_contents($file, $content);

View File

@ -30,7 +30,7 @@ include_once __DIR__.'/../../core.php';
</div> </div>
<div class="col-md-5"> <div class="col-md-5">
{[ "type": "select", "label": "<?php echo tr('Tipo archiviazione'); ?>", "name": "class", "value": "<?php echo explode('\\', $record['class'])[4]; ?>", "values": "list=\"LocalAdapter\":\"Archiviazione locale\",\"FTPAdapter\":\"Archiviazione FTP\"", "required": 1, "disabled": "1" ]} {[ "type": "select", "label": "<?php echo tr('Tipo archiviazione'); ?>", "name": "class", "value": "<?php echo explode('\\', (string) $record['class'])[4]; ?>", "values": "list=\"LocalAdapter\":\"Archiviazione locale\",\"FTPAdapter\":\"Archiviazione FTP\"", "required": 1, "disabled": "1" ]}
</div> </div>
<div class="col-md-2"> <div class="col-md-2">

View File

@ -26,7 +26,7 @@ class FTPAdapter extends OriginalAdapter
{ {
public function __construct($options) public function __construct($options)
{ {
$options = json_decode($options, 1); $options = json_decode((string) $options, 1);
parent::__construct(FtpConnectionOptions::fromArray($options)); parent::__construct(FtpConnectionOptions::fromArray($options));
} }

View File

@ -25,7 +25,7 @@ class LocalAdapter extends OriginalAdapter
{ {
public function __construct($options) public function __construct($options)
{ {
$options = json_decode($options); $options = json_decode((string) $options);
parent::__construct(base_dir().'/'.$options->directory); parent::__construct(base_dir().'/'.$options->directory);
} }

View File

@ -35,7 +35,7 @@ class OSMFilesystem extends Filesystem
public function upload($directory, $filename, $contents) public function upload($directory, $filename, $contents)
{ {
// Verifico se l'esensione non è consentita // Verifico se l'esensione non è consentita
$extension = pathinfo($filename, PATHINFO_EXTENSION); $extension = pathinfo((string) $filename, PATHINFO_EXTENSION);
$extension = strtolower($extension); $extension = strtolower($extension);
// Controllo sulle estensioni permesse // Controllo sulle estensioni permesse
@ -49,7 +49,7 @@ class OSMFilesystem extends Filesystem
if (!$this->directoryExists($directory)) { if (!$this->directoryExists($directory)) {
try { try {
$this->createDirectory($directory); $this->createDirectory($directory);
} catch (\Exception $e) { } catch (\Exception) {
flash()->error(tr('Impossibile creare la cartella controllare i permessi!')); flash()->error(tr('Impossibile creare la cartella controllare i permessi!'));
return false; return false;
@ -67,6 +67,6 @@ class OSMFilesystem extends Filesystem
protected static function isSupportedType($extension) protected static function isSupportedType($extension)
{ {
return !in_array(strtolower($extension), array_keys(self::$not_allowed_types)); return !in_array(strtolower((string) $extension), array_keys(self::$not_allowed_types));
} }
} }

View File

@ -120,7 +120,7 @@ class DatiFattureElettroniche extends Controllo
'descrizione' => $riepilogo_anomalie, 'descrizione' => $riepilogo_anomalie,
]); ]);
} }
} catch (\Exception $e) { } catch (\Exception) {
$this->addResult([ $this->addResult([
'id' => $fattura_vendita->id, 'id' => $fattura_vendita->id,
'nome' => $fattura_vendita->getReference(), 'nome' => $fattura_vendita->getReference(),
@ -163,7 +163,7 @@ class DatiFattureElettroniche extends Controllo
protected function htmlDiff($old, $new) protected function htmlDiff($old, $new)
{ {
$ret = ''; $ret = '';
$diff = $this->diff(preg_split("/[\s]+/", $old), preg_split("/[\s]+/", $new)); $diff = $this->diff(preg_split("/[\s]+/", (string) $old), preg_split("/[\s]+/", (string) $new));
foreach ($diff as $k) { foreach ($diff as $k) {
if (is_array($k)) { if (is_array($k)) {
$ret .= (!empty($k['d']) ? '<del>'.implode(' ', $k['d']).'</del> ' : ''). $ret .= (!empty($k['d']) ? '<del>'.implode(' ', $k['d']).'</del> ' : '').

View File

@ -69,7 +69,7 @@ class PianoConti extends Controllo
GROUP BY `an_anagrafiche`.`idanagrafica`'); GROUP BY `an_anagrafiche`.`idanagrafica`');
foreach ($anagrafiche_interessate as $anagrafica) { foreach ($anagrafiche_interessate as $anagrafica) {
$tipi = explode(',', $anagrafica['tipi_anagrafica']); $tipi = explode(',', (string) $anagrafica['tipi_anagrafica']);
$cliente = in_array('Cliente', $tipi) && empty($anagrafica['idconto_cliente']); $cliente = in_array('Cliente', $tipi) && empty($anagrafica['idconto_cliente']);
$fornitore = in_array('Fornitore', $tipi) && empty($anagrafica['idconto_fornitore']); $fornitore = in_array('Fornitore', $tipi) && empty($anagrafica['idconto_fornitore']);

View File

@ -72,7 +72,7 @@ class UpdateHook extends CachedManager
$api = self::getAPI(); $api = self::getAPI();
if (!$api['prerelease'] or setting('Abilita canale pre-release per aggiornamenti')) { if (!$api['prerelease'] or setting('Abilita canale pre-release per aggiornamenti')) {
$version[0] = ltrim($api['tag_name'], 'v'); $version[0] = ltrim((string) $api['tag_name'], 'v');
$version[1] = !empty($api['prerelease']) ? 'beta' : 'stabile'; $version[1] = !empty($api['prerelease']) ? 'beta' : 'stabile';
$current = \Update::getVersion(); $current = \Update::getVersion();

View File

@ -383,10 +383,10 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'modifica-allegato')
elseif (filter('op') == 'rimuovi-allegato') { elseif (filter('op') == 'rimuovi-allegato') {
$filename = filter('filename'); $filename = filter('filename');
if (strpos($filename, setting('Logo stampe')) !== false) { if (str_contains($filename, setting('Logo stampe'))) {
$nome = 'Logo stampe'; $nome = 'Logo stampe';
} }
if (strpos($filename, setting('Filigrana stampe')) !== false) { if (str_contains($filename, setting('Filigrana stampe'))) {
$nome = 'Filigrana stampe'; $nome = 'Filigrana stampe';
} }

View File

@ -548,9 +548,9 @@ switch ($resource) {
$rs = $data['results']; $rs = $data['results'];
foreach ($rs as $k => $r) { foreach ($rs as $k => $r) {
$currentDate = date('Y-m-d', strtotime($superselect['data'])); $currentDate = date('Y-m-d', strtotime((string) $superselect['data']));
$startDate = date('Y-m-d', strtotime($r['data_inizio'])); $startDate = date('Y-m-d', strtotime((string) $r['data_inizio']));
$endDate = date('Y-m-d', strtotime($r['data_fine'])); $endDate = date('Y-m-d', strtotime((string) $r['data_fine']));
$rs[$k] = array_merge($r, [ $rs[$k] = array_merge($r, [
'text' => tr('N. prot.').' '.$r['numero_protocollo'].' - '.Translator::numberToLocale($r['totale']).'/'.Translator::numberToLocale($r['massimale']).' &euro; ['.Translator::dateToLocale($r['data_fine']).']', 'text' => tr('N. prot.').' '.$r['numero_protocollo'].' - '.Translator::numberToLocale($r['totale']).'/'.Translator::numberToLocale($r['massimale']).' &euro; ['.Translator::dateToLocale($r['data_fine']).']',

View File

@ -87,7 +87,7 @@ switch (post('op')) {
$anagrafica->lat = $coordinates->getLatitude(); $anagrafica->lat = $coordinates->getLatitude();
$anagrafica->lng = $coordinates->getLongitude(); $anagrafica->lng = $coordinates->getLongitude();
$anagrafica->save(); $anagrafica->save();
} catch (Exception $e) { } catch (Exception) {
flash()->error("Impossibile recuperare le coordinate dell'anagrafica ".$anagrafica->ragione_sociale." per l'indirizzo ".$anagrafica->sedeLegale->indirizzo.' '.$anagrafica->sedeLegale->citta.' '.$anagrafica->sedeLegale->cap); flash()->error("Impossibile recuperare le coordinate dell'anagrafica ".$anagrafica->ragione_sociale." per l'indirizzo ".$anagrafica->sedeLegale->indirizzo.' '.$anagrafica->sedeLegale->citta.' '.$anagrafica->sedeLegale->cap);
} }
} }

View File

@ -71,10 +71,9 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
<a class="dropdown-item" data-widget="modal" data-href="add.php?id_module='.(new Module())->getByField('title', 'Prima nota', Models\Locale::getPredefined()->id).'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i> '.tr('Nuova registrazione contabile (fornitore)').'</a>'; <a class="dropdown-item" data-widget="modal" data-href="add.php?id_module='.(new Module())->getByField('title', 'Prima nota', Models\Locale::getPredefined()->id).'&id_anagrafica='.$record['idanagrafica'].'"><i class="fa fa-euro"></i> '.tr('Nuova registrazione contabile (fornitore)').'</a>';
} }
echo' echo '
</div> </div>
</div>'; </div>';
} }
if (in_array($id_agente, $tipi_anagrafica)) { if (in_array($id_agente, $tipi_anagrafica)) {

View File

@ -214,7 +214,7 @@ if (in_array($id_azienda, $tipi_anagrafica)) {
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "telefono", "label": "<?php echo tr('Cellulare'); ?>", "name": "cellulare", "class": "text-center", "value": "$cellulare$", "icon-after": "<?php echo !empty($record['cellulare']) ? "<btn class='clickable' onclick=sendWhatsAppMessage(".prepare($record['cellulare']).") ><i class='fa fa-whatsapp tip' title='".((strpos($record['cellulare'], '+') === 0) ? substr($record['cellulare'], 1) : $record['cellulare'])."'></i>" : "<i class='fa fa-whatsapp tip' title='".tr('Compila il campo per utilizzare WhatsApp.')."'></i>"; ?>" ]} {[ "type": "telefono", "label": "<?php echo tr('Cellulare'); ?>", "name": "cellulare", "class": "text-center", "value": "$cellulare$", "icon-after": "<?php echo !empty($record['cellulare']) ? "<btn class='clickable' onclick=sendWhatsAppMessage(".prepare($record['cellulare']).") ><i class='fa fa-whatsapp tip' title='".((str_starts_with((string) $record['cellulare'], '+')) ? substr((string) $record['cellulare'], 1) : $record['cellulare'])."'></i>" : "<i class='fa fa-whatsapp tip' title='".tr('Compila il campo per utilizzare WhatsApp.')."'></i>"; ?>" ]}
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
@ -482,7 +482,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<a href="'.base_path().'/controller.php?id_module='.$modulo_banche.'&search_Anagrafica='.rawurlencode($anagrafica['ragione_sociale']).'"> <a href="'.base_path().'/controller.php?id_module='.$modulo_banche.'&search_Anagrafica='.rawurlencode((string) $anagrafica['ragione_sociale']).'">
'.tr("Visualizza le banche disponibili per l'Anagrafica").' <i class="fa fa-external-link"></i> '.tr("Visualizza le banche disponibili per l'Anagrafica").' <i class="fa fa-external-link"></i>
</a> </a>
</div> </div>

View File

@ -25,7 +25,7 @@ use Modules\Anagrafiche\Tipo;
$rs = Tipo::get(); $rs = Tipo::get();
foreach ($rs as $riga) { foreach ($rs as $riga) {
${'id_'.strtolower($riga->getTranslation('title', Models\Locale::getPredefined()->id))} = $riga->id; ${'id_'.strtolower((string) $riga->getTranslation('title', Models\Locale::getPredefined()->id))} = $riga->id;
} }
if (!empty($id_record)) { if (!empty($id_record)) {

View File

@ -237,22 +237,22 @@ class Anagrafica extends Model
$value = null; $value = null;
} }
$this->attributes['piva'] = trim(strtoupper($value)); $this->attributes['piva'] = trim(strtoupper((string) $value));
} }
public function setNomeAttribute($value) public function setNomeAttribute($value)
{ {
$this->attributes['nome'] = trim($value); $this->attributes['nome'] = trim((string) $value);
} }
public function setCognomeAttribute($value) public function setCognomeAttribute($value)
{ {
$this->attributes['cognome'] = trim($value); $this->attributes['cognome'] = trim((string) $value);
} }
public function setCodiceFiscaleAttribute($value) public function setCodiceFiscaleAttribute($value)
{ {
$this->attributes['codice_fiscale'] = trim(strtoupper($value)); $this->attributes['codice_fiscale'] = trim(strtoupper((string) $value));
} }
public function setCodiceDestinatarioAttribute($value) public function setCodiceDestinatarioAttribute($value)
@ -261,7 +261,7 @@ class Anagrafica extends Model
$value = ''; $value = '';
} }
$this->attributes['codice_destinatario'] = trim(strtoupper($value)); $this->attributes['codice_destinatario'] = trim(strtoupper((string) $value));
} }
/** /**

View File

@ -250,7 +250,7 @@ class CSV extends CSVImporter
// Individuazione del tipo dell'anagrafica // Individuazione del tipo dell'anagrafica
$tipologie = []; $tipologie = [];
if (!empty($record['tipologia'])) { if (!empty($record['tipologia'])) {
$tipi_selezionati = explode(',', $record['tipologia']); $tipi_selezionati = explode(',', (string) $record['tipologia']);
foreach ($tipi_selezionati as $tipo) { foreach ($tipi_selezionati as $tipo) {
$id_tipo = (new Tipo())->getByField('title', $tipo); $id_tipo = (new Tipo())->getByField('title', $tipo);
@ -324,7 +324,7 @@ class CSV extends CSVImporter
foreach ($campi_sede as $field) { foreach ($campi_sede as $field) {
if ($primary_key != $field) { if ($primary_key != $field) {
if (isset($record[$field])) { if (isset($record[$field])) {
$dati_sede[$field] = trim($record[$field]); $dati_sede[$field] = trim((string) $record[$field]);
unset($record[$field]); unset($record[$field]);
} }
} }
@ -332,7 +332,7 @@ class CSV extends CSVImporter
// Ricerca di eventuale anagrafica corrispondente sulla base del campo definito come primary_key (es. codice) // Ricerca di eventuale anagrafica corrispondente sulla base del campo definito come primary_key (es. codice)
if (!empty($primary_key)) { if (!empty($primary_key)) {
$anagrafica = Anagrafica::where($primary_key, '=', trim($record[$primary_key]))->first(); $anagrafica = Anagrafica::where($primary_key, '=', trim((string) $record[$primary_key]))->first();
} }
// Se non trovo nessuna anagrafica corrispondente, allora la creo // Se non trovo nessuna anagrafica corrispondente, allora la creo

View File

@ -277,7 +277,7 @@ class CSV extends CSVImporter
$sottocategoria = null; $sottocategoria = null;
if (!empty($record['categoria'])) { if (!empty($record['categoria'])) {
// Categoria // Categoria
$categoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower($record['categoria'])))->first(); $categoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower((string) $record['categoria'])))->first();
if (empty($categoria)) { if (empty($categoria)) {
$categoria = Categoria::build(); $categoria = Categoria::build();
@ -287,7 +287,7 @@ class CSV extends CSVImporter
// Sotto-categoria // Sotto-categoria
if (!empty($record['sottocategoria'])) { if (!empty($record['sottocategoria'])) {
$sottocategoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower($record['sottocategoria'])))->first(); $sottocategoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower((string) $record['sottocategoria'])))->first();
if (empty($sottocategoria)) { if (empty($sottocategoria)) {
$sottocategoria = Categoria::build(); $sottocategoria = Categoria::build();
@ -474,7 +474,7 @@ class CSV extends CSVImporter
$anagrafica->save(); $anagrafica->save();
} }
$dettagli['dir'] = strtolower($dettagli['dir']); $dettagli['dir'] = strtolower((string) $dettagli['dir']);
if ($dettagli['dir'] == 'fornitore') { if ($dettagli['dir'] == 'fornitore') {
$dettagli['dir'] = 'uscita'; $dettagli['dir'] = 'uscita';
} elseif ($dettagli['dir'] == 'cliente') { } elseif ($dettagli['dir'] == 'cliente') {

View File

@ -45,7 +45,7 @@ class Movimento extends Model
$model->idsede = $id_sede ?: 0; // Sede legale $model->idsede = $id_sede ?: 0; // Sede legale
if (!empty($document)) { if (!empty($document)) {
$class = get_class($document); $class = $document::class;
$id = $document->id; $id = $document->id;
$model->reference_type = $class; $model->reference_type = $class;

View File

@ -31,7 +31,7 @@ foreach ($rs as $r) {
// Campi da evidenziare // Campi da evidenziare
$result['labels'] = []; $result['labels'] = [];
foreach ($fields as $name => $value) { foreach ($fields as $name => $value) {
if (str_contains($r[$name], $term)) { if (str_contains((string) $r[$name], (string) $term)) {
$text = str_replace($term, "<span class='highlight'>".$term.'</span>', $r[$name]); $text = str_replace($term, "<span class='highlight'>".$term.'</span>', $r[$name]);
$result['labels'][] = $name.': '.$text.'<br/>'; $result['labels'][] = $name.': '.$text.'<br/>';

View File

@ -26,7 +26,7 @@ switch (filter('op')) {
$backups = Backup::getList(); $backups = Backup::getList();
$backup = $backups[$number]; $backup = $backups[$number];
$filename = basename($backup); $filename = basename((string) $backup);
download($backup, $filename); download($backup, $filename);
@ -38,7 +38,7 @@ switch (filter('op')) {
$backups = Backup::getList(); $backups = Backup::getList();
$backup = $backups[$number]; $backup = $backups[$number];
$filename = basename($backup); $filename = basename((string) $backup);
delete($backup); delete($backup);

View File

@ -222,7 +222,7 @@ if (file_exists($backup_dir)) {
if (!empty($backups_zip)) { if (!empty($backups_zip)) {
foreach ($backups_zip as $id => $backup) { foreach ($backups_zip as $id => $backup) {
$name = basename($backup); $name = basename((string) $backup);
$info = Backup::readName($backup); $info = Backup::readName($backup);
$data = $info['YYYY'].'-'.$info['m'].'-'.$info['d']; $data = $info['YYYY'].'-'.$info['m'].'-'.$info['d'];
@ -273,7 +273,7 @@ if (file_exists($backup_dir)) {
// Backup non compressi e quindi non scaricabili // Backup non compressi e quindi non scaricabili
if (!empty($backups_file)) { if (!empty($backups_file)) {
foreach ($backups_file as $backup) { foreach ($backups_file as $backup) {
$name = basename($backup); $name = basename((string) $backup);
$info = Backup::readName($backup); $info = Backup::readName($backup);
$data = $info['YYYY'].'-'.$info['m'].'-'.$info['d']; $data = $info['YYYY'].'-'.$info['m'].'-'.$info['d'];

View File

@ -21,5 +21,5 @@ include_once __DIR__.'/../../core.php';
try { try {
$backup_dir = Backup::getDirectory(); $backup_dir = Backup::getDirectory();
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
} }

View File

@ -434,14 +434,14 @@ class IBAN
$keys = array_keys(self::$parsers); $keys = array_keys(self::$parsers);
$length = strlen($structure); $length = strlen($structure);
$current = strlen($nation); $current = strlen((string) $nation);
$result = $nation; $result = $nation;
while ($current <= $length) { while ($current <= $length) {
$char = $structure[$current]; $char = $structure[$current];
if (in_array($char, $keys)) { if (in_array($char, $keys)) {
$count = substr_count($structure, $char); $count = substr_count($structure, $char);
$result .= str_pad( $result .= str_pad(
substr($contents[self::$parsers[$char]], 0, $count), substr((string) $contents[self::$parsers[$char]], 0, $count),
$count, STR_PAD_LEFT); $count, STR_PAD_LEFT);
$current += $count; $current += $count;
} else { } else {

View File

@ -190,7 +190,7 @@ switch (post('op')) {
try { try {
$articolo->qta = $qta; $articolo->qta = $qta;
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
@ -385,7 +385,7 @@ switch (post('op')) {
$dbo->query('DELETE FROM my_impianti_contratti WHERE idcontratto='.prepare($id_record)); $dbo->query('DELETE FROM my_impianti_contratti WHERE idcontratto='.prepare($id_record));
flash()->info(tr('Contratto eliminato!')); flash()->info(tr('Contratto eliminato!'));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
} }
} }

View File

@ -262,9 +262,9 @@ switch (post('op')) {
} }
$operations['crea_fattura'] = [ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'data' => [ 'data' => [
'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}<br> 'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}<br>
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}<br> {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}<br>
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br> {[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br>

View File

@ -21,15 +21,15 @@ include_once __DIR__.'/../../core.php';
use Models\Module; use Models\Module;
$block_edit = $record['is_completato']; $block_edit = $record['is_completato'];
$data_accettazione = $record['data_accettazione'] ? strtotime($record['data_accettazione']) : ''; $data_accettazione = $record['data_accettazione'] ? strtotime((string) $record['data_accettazione']) : '';
$data_conclusione = $record['data_conclusione'] ? strtotime($record['data_conclusione']) : ''; $data_conclusione = $record['data_conclusione'] ? strtotime((string) $record['data_conclusione']) : '';
if ($data_conclusione < $data_accettazione && !empty($data_accettazione) && !empty($data_conclusione)) { if ($data_conclusione < $data_accettazione && !empty($data_accettazione) && !empty($data_conclusione)) {
echo ' echo '
<div class="alert alert-warning"><a class="clickable" onclick="$(\'.alert\').hide();"><i class="fa fa-times"></i></a> '.tr('Attenzione! La data di accettazione supera la data di conclusione del contratto. Verificare le informazioni inserite.').'</div>'; <div class="alert alert-warning"><a class="clickable" onclick="$(\'.alert\').hide();"><i class="fa fa-times"></i></a> '.tr('Attenzione! La data di accettazione supera la data di conclusione del contratto. Verificare le informazioni inserite.').'</div>';
} }
echo' echo '
<form action="" method="post" id="edit-form"> <form action="" method="post" id="edit-form">
<input type="hidden" name="backto" value="record-edit"> <input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="update"> <input type="hidden" name="op" value="update">
@ -47,7 +47,7 @@ echo'
<h3 class="card-title">'.tr('Dati cliente').'</h3> <h3 class="card-title">'.tr('Dati cliente').'</h3>
<div class="card-tools pull-right"> <div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"> <button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-'. (empty($espandi_dettagli) ? 'plus' : 'minus').'"></i> <i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i>
</button> </button>
</div> </div>
</div> </div>
@ -71,8 +71,7 @@ echo'
<div class="col-md-3">'; <div class="col-md-3">';
if ($record['idagente'] != 0) { if ($record['idagente'] != 0) {
echo echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
} }
?> ?>
{[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": <?php echo $record['idanagrafica']; ?>}, "value": "$idagente$" ]} {[ "type": "select", "label": "<?php echo tr('Agente'); ?>", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": <?php echo $record['idanagrafica']; ?>}, "value": "$idagente$" ]}
@ -584,7 +583,7 @@ $elementi = $dbo->fetchArray('
\'Interventi\' \'Interventi\'
FROM `in_interventi` FROM `in_interventi`
JOIN `in_righe_interventi` ON `in_righe_interventi`.`idintervento` = `in_interventi`.`id` JOIN `in_righe_interventi` ON `in_righe_interventi`.`idintervento` = `in_interventi`.`id`
WHERE (`in_righe_interventi`.`original_document_id` = '.prepare($contratto->id).' '.($contratto ? 'AND `in_righe_interventi`.`original_document_type` = '.prepare(get_class($contratto)) : '').') WHERE (`in_righe_interventi`.`original_document_id` = '.prepare($contratto->id).' '.($contratto ? 'AND `in_righe_interventi`.`original_document_type` = '.prepare($contratto::class) : '').')
OR `in_interventi`.`id_contratto` = '.prepare($id_record).' OR `in_interventi`.`id_contratto` = '.prepare($id_record).'
ORDER BY `data`'); ORDER BY `data`');

View File

@ -45,7 +45,6 @@ if ($contratto->idreferente) {
$referente = $dbo->selectOne('an_referenti', '*', ['id' => $contratto->idreferente]); $referente = $dbo->selectOne('an_referenti', '*', ['id' => $contratto->idreferente]);
} }
// Preventivo // Preventivo
$preventivo = null; $preventivo = null;
if ($contratto->id_preventivo) { if ($contratto->id_preventivo) {

View File

@ -72,7 +72,7 @@ foreach ($righe as $riga) {
} }
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.get_class($riga).'" '.$extra.'> <tr data-id="'.$riga->id.'" data-type="'.$riga::class.'" '.$extra.'>
<td class="text-center">'; <td class="text-center">';
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
@ -147,7 +147,7 @@ foreach ($righe as $riga) {
$evasione_bar['in_righe_interventi'] = 'warning'; $evasione_bar['in_righe_interventi'] = 'warning';
$evasione_bar['or_righe_ordini'] = 'success'; $evasione_bar['or_righe_ordini'] = 'success';
foreach ($evasione_bar as $table => $color) { foreach ($evasione_bar as $table => $color) {
$righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', get_class($riga))->get(); $righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', $riga::class)->get();
if ($righe_ev->count() > 0) { if ($righe_ev->count() > 0) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta; $perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
echo ' echo '

View File

@ -274,14 +274,14 @@ class Contratto extends Document
{ {
$maschera = Generator::getMaschera($id_segment); $maschera = Generator::getMaschera($id_segment);
if (strpos($maschera, 'm') !== false) { if (str_contains($maschera, 'm')) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero', [ $ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))), 'YEAR(data_bozza) = '.prepare(date('Y', strtotime((string) $data))),
'MONTH(data_bozza) = '.prepare(date('m', strtotime($data))), 'MONTH(data_bozza) = '.prepare(date('m', strtotime((string) $data))),
]); ]);
} elseif ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) { } elseif ((str_contains($maschera, 'YYYY')) or (str_contains($maschera, 'yy'))) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero', [ $ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))), 'YEAR(data_bozza) = '.prepare(date('Y', strtotime((string) $data))),
]); ]);
} else { } else {
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero'); $ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero');

View File

@ -65,7 +65,7 @@ if (!empty($rs)) {
$data_conclusione = !empty($r['data_conclusione']) ? Translator::dateToLocale($r['data_conclusione']) : ''; $data_conclusione = !empty($r['data_conclusione']) ? Translator::dateToLocale($r['data_conclusione']) : '';
// Se scaduto, segna la riga in rosso // Se scaduto, segna la riga in rosso
$class = (strtotime($r['data_conclusione']) < strtotime(date('Y-m-d')) && !empty($data_conclusione)) ? 'danger' : ''; $class = (strtotime((string) $r['data_conclusione']) < strtotime(date('Y-m-d')) && !empty($data_conclusione)) ? 'danger' : '';
if (isset($r['ore_rimanenti'])) { if (isset($r['ore_rimanenti'])) {
// Se ore finite, segna la riga in rosso // Se ore finite, segna la riga in rosso

View File

@ -98,11 +98,11 @@ switch (filter('op')) {
$results = []; $results = [];
foreach ($sessioni as $sessione) { foreach ($sessioni as $sessione) {
if (setting('Visualizzazione colori sessioni') == 'Sfondo colore stato - bordo colore tecnico') { if (setting('Visualizzazione colori sessioni') == 'Sfondo colore stato - bordo colore tecnico') {
$backgroundcolor = strtoupper($sessione['colore']); $backgroundcolor = strtoupper((string) $sessione['colore']);
$bordercolor = strtoupper($sessione['colore_tecnico']); $bordercolor = strtoupper((string) $sessione['colore_tecnico']);
} else { } else {
$backgroundcolor = strtoupper($sessione['colore_tecnico']); $backgroundcolor = strtoupper((string) $sessione['colore_tecnico']);
$bordercolor = strtoupper($sessione['colore']); $bordercolor = strtoupper((string) $sessione['colore']);
} }
$results[] = [ $results[] = [
@ -210,7 +210,7 @@ switch (filter('op')) {
$results[] = [ $results[] = [
'id' => $modulo_eventi->id.'_'.$evento['id'], 'id' => $modulo_eventi->id.'_'.$evento['id'],
'title' => '<b>'.tr('Evento').':</b> '.$evento['nome'].'</b>', 'title' => '<b>'.tr('Evento').':</b> '.$evento['nome'].'</b>',
'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']), 'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime((string) $evento['data'])) : $evento['data']),
// 'end' => $evento['data'], // 'end' => $evento['data'],
'extendedProps' => [ 'extendedProps' => [
'link' => base_path().'/editor.php?id_module='.$modulo_eventi->id.'&id_record='.$evento['id'], 'link' => base_path().'/editor.php?id_module='.$modulo_eventi->id.'&id_record='.$evento['id'],
@ -329,7 +329,7 @@ switch (filter('op')) {
$tooltip .= '<b>'.tr('Data scadenza').'</b>: '.Translator::timestampToLocale($rs[0]['data_scadenza']).'<br/>'; $tooltip .= '<b>'.tr('Data scadenza').'</b>: '.Translator::timestampToLocale($rs[0]['data_scadenza']).'<br/>';
} }
$tooltip .= '<b>'.tr('Tipo intervento').'</b>: '.nl2br($desc_tipointervento).'<br/>'; $tooltip .= '<b>'.tr('Tipo intervento').'</b>: '.nl2br((string) $desc_tipointervento).'<br/>';
$tooltip .= '<b>'.tr('Tecnici').'</b>: '.implode(', ', $tecnici).'<br/>'; $tooltip .= '<b>'.tr('Tecnici').'</b>: '.implode(', ', $tecnici).'<br/>';
@ -338,25 +338,25 @@ switch (filter('op')) {
} }
if ($rs[0]['richiesta'] != '') { if ($rs[0]['richiesta'] != '') {
$tooltip .= '<b>'.tr('Richiesta').'</b>:<div class=\'shorten\'> '.nl2br($rs[0]['richiesta']).'</div>'; $tooltip .= '<b>'.tr('Richiesta').'</b>:<div class=\'shorten\'> '.nl2br((string) $rs[0]['richiesta']).'</div>';
} }
if ($rs[0]['descrizione'] != '') { if ($rs[0]['descrizione'] != '') {
$tooltip .= '<b>'.tr('Descrizione').'</b>:<div class=\'shorten\'> '.nl2br($rs[0]['descrizione']).'</div>'; $tooltip .= '<b>'.tr('Descrizione').'</b>:<div class=\'shorten\'> '.nl2br((string) $rs[0]['descrizione']).'</div>';
} }
if ($rs[0]['informazioniaggiuntive'] != '') { if ($rs[0]['informazioniaggiuntive'] != '') {
$tooltip .= '<b>'.tr('Informazioni aggiuntive').'</b>: '.nl2br($rs[0]['informazioniaggiuntive']).'<br/>'; $tooltip .= '<b>'.tr('Informazioni aggiuntive').'</b>: '.nl2br((string) $rs[0]['informazioniaggiuntive']).'<br/>';
} }
$tooltip .= '<b>'.tr('Ragione sociale').'</b>: '.nl2br($rs[0]['ragione_sociale']).'<br/>'; $tooltip .= '<b>'.tr('Ragione sociale').'</b>: '.nl2br((string) $rs[0]['ragione_sociale']).'<br/>';
if (!empty($rs[0]['telefono'])) { if (!empty($rs[0]['telefono'])) {
$tooltip .= '<b>'.tr('Telefono').'</b>: '.nl2br($rs[0]['telefono']).'<br/>'; $tooltip .= '<b>'.tr('Telefono').'</b>: '.nl2br((string) $rs[0]['telefono']).'<br/>';
} }
if (!empty($rs[0]['cellulare'])) { if (!empty($rs[0]['cellulare'])) {
$tooltip .= '<b>'.tr('Cellulare').'</b>: '.nl2br($rs[0]['cellulare']).'<br/>'; $tooltip .= '<b>'.tr('Cellulare').'</b>: '.nl2br((string) $rs[0]['cellulare']).'<br/>';
} }
if (!empty($rs[0]['indirizzo']) || !empty($rs[0]['citta']) || !empty($rs[0]['provincia']) || !empty($rs[0]['cap'])) { if (!empty($rs[0]['indirizzo']) || !empty($rs[0]['citta']) || !empty($rs[0]['provincia']) || !empty($rs[0]['cap'])) {
@ -364,7 +364,7 @@ switch (filter('op')) {
} }
if (!empty($rs[0]['note_anagrafica'])) { if (!empty($rs[0]['note_anagrafica'])) {
$tooltip .= '<b>'.tr('Note anagrafica').'</b>: '.nl2br($rs[0]['note_anagrafica']).'<br/>'; $tooltip .= '<b>'.tr('Note anagrafica').'</b>: '.nl2br((string) $rs[0]['note_anagrafica']).'<br/>';
} }
} }
} else { } else {
@ -492,7 +492,7 @@ switch (filter('op')) {
// Elenco interventi da pianificare // Elenco interventi da pianificare
foreach ($promemoria as $sessione) { foreach ($promemoria as $sessione) {
if ($sessione['mese'] == $mese || $mese == 'all') { if ($sessione['mese'] == $mese || $mese == 'all') {
if (date('Ymd', strtotime($sessione['data_scadenza'])) < date('Ymd') and !empty($sessione['data_scadenza'])) { if (date('Ymd', strtotime((string) $sessione['data_scadenza'])) < date('Ymd') and !empty($sessione['data_scadenza'])) {
$class = 'danger'; $class = 'danger';
} else { } else {
$class = 'primary'; $class = 'primary';
@ -511,7 +511,7 @@ switch (filter('op')) {
<div id="id-'.$sessione['id'].'" class="fc-event fc-event-'.$class.'" data-id="'.$sessione['id'].'" data-idcontratto="'.$sessione['idcontratto'].'" data-ref="'.$sessione['ref'].'" data-id_tecnico="'.$sessione['id_tecnico'].'">'.($sessione['ref'] == 'intervento' ? Modules::link($modulo_riferimento, $id_riferimento, '<i class="fa fa-wrench"></i>', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-'.$class.' btn-xs pull-right"') : Modules::link($modulo_riferimento, $id_riferimento, '<i class="fa fa-file-text-o"></i>', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-'.$class.' btn-xs pull-right"')).' <div id="id-'.$sessione['id'].'" class="fc-event fc-event-'.$class.'" data-id="'.$sessione['id'].'" data-idcontratto="'.$sessione['idcontratto'].'" data-ref="'.$sessione['ref'].'" data-id_tecnico="'.$sessione['id_tecnico'].'">'.($sessione['ref'] == 'intervento' ? Modules::link($modulo_riferimento, $id_riferimento, '<i class="fa fa-wrench"></i>', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-'.$class.' btn-xs pull-right"') : Modules::link($modulo_riferimento, $id_riferimento, '<i class="fa fa-file-text-o"></i>', null, 'title="'.tr('Visualizza scheda').'" class="btn btn-'.$class.' btn-xs pull-right"')).'
<b>'.$sessione['ragione_sociale'].'</b> <b>'.$sessione['ragione_sociale'].'</b>
<br>'.dateFormat($sessione['data_richiesta']).' ('.$sessione['tipo_intervento'].') <br>'.dateFormat($sessione['data_richiesta']).' ('.$sessione['tipo_intervento'].')
<div class="request">'.(!empty($sessione['richiesta']) ? ' - '.strip_tags($sessione['richiesta']) : '').'</div> <div class="request">'.(!empty($sessione['richiesta']) ? ' - '.strip_tags((string) $sessione['richiesta']) : '').'</div>
'.(!empty($sessione['numero_contratto']) ? '<span class="badge badge-'.$class.'">'.tr('Contratto numero: ').$sessione['numero_contratto'].tr(' del ').dateFormat($sessione['data_contratto']).'<span>' : '').' '.(!empty($sessione['data_scadenza'] && $sessione['data_scadenza'] != '0000-00-00 00:00:00') ? '<span class="badge badge-'.$class.'" >'.tr('Entro il: ').dateFormat($sessione['data_scadenza']).'</span>' : '').' '.(!empty($sessione['id_tecnico']) ? '<span class="badge" style="color:'.color_inverse($sessione['colore']).';background-color:'.$sessione['colore'].';" >'.tr('Tecnico').': '.$sessione['ragione_sociale_tecnico'].'</span>' : '').' '.(!empty($sessione['numero_contratto']) ? '<span class="badge badge-'.$class.'">'.tr('Contratto numero: ').$sessione['numero_contratto'].tr(' del ').dateFormat($sessione['data_contratto']).'<span>' : '').' '.(!empty($sessione['data_scadenza'] && $sessione['data_scadenza'] != '0000-00-00 00:00:00') ? '<span class="badge badge-'.$class.'" >'.tr('Entro il: ').dateFormat($sessione['data_scadenza']).'</span>' : '').' '.(!empty($sessione['id_tecnico']) ? '<span class="badge" style="color:'.color_inverse($sessione['colore']).';background-color:'.$sessione['colore'].';" >'.tr('Tecnico').': '.$sessione['ragione_sociale_tecnico'].'</span>' : '').'
</div>'; </div>';
} }
@ -551,7 +551,7 @@ switch (filter('op')) {
$results[] = [ $results[] = [
'id' => $evento['id'], 'id' => $evento['id'],
'title' => $evento['nome'], 'title' => $evento['nome'],
'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']), 'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime((string) $evento['data'])) : $evento['data']),
// 'end' => date('Y-m-d', strtotime($evento['data']. '+1 day')), // 'end' => date('Y-m-d', strtotime($evento['data']. '+1 day')),
'display' => 'background', 'display' => 'background',
'allDay' => true, 'allDay' => true,

View File

@ -342,18 +342,18 @@ if (!empty($risultati_da_programmare)) {
echo ' echo '
<select class="superselect openstamanager-input select-input" id="mese-promemoria"> <select class="superselect openstamanager-input select-input" id="mese-promemoria">
<option value="all">'.tr('Tutti').'</option>'; <option value="all">'.tr('Tutti').'</option>';
foreach ($mesi as $mese) { foreach ($mesi as $mese) {
$data = Carbon::parse($mese['data']); $data = Carbon::parse($mese['data']);
$chiave = $data->format('mY'); $chiave = $data->format('mY');
$testo = $data->isoFormat('MMMM YYYY'); $testo = $data->isoFormat('MMMM YYYY');
if (checkdate($data->format('m'), $data->format('d'), $data->format('Y'))) { if (checkdate($data->format('m'), $data->format('d'), $data->format('Y'))) {
echo ' echo '
<option value="'.$chiave.'">'.ucfirst($testo).'</option>'; <option value="'.$chiave.'">'.ucfirst($testo).'</option>';
} }
} }
echo ' echo '
</select> </select>
<div id="elenco-promemoria"></div> <div id="elenco-promemoria"></div>

View File

@ -178,7 +178,7 @@ switch (filter('op')) {
try { try {
$articolo->qta = post('qta'); $articolo->qta = post('qta');
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
@ -381,7 +381,7 @@ switch (filter('op')) {
$riga = $riga ?: Sconto::find($id_riga); $riga = $riga ?: Sconto::find($id_riga);
try { try {
$riga->delete(); $riga->delete();
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
@ -442,7 +442,7 @@ switch (filter('op')) {
$ddt->delete(); $ddt->delete();
flash()->info(tr('Ddt eliminato!')); flash()->info(tr('Ddt eliminato!'));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
} }

View File

@ -147,7 +147,7 @@ switch (post('op')) {
$documento = DDT::find($id); $documento = DDT::find($id);
try { try {
$documento->delete(); $documento->delete();
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
} }
} }
@ -190,9 +190,9 @@ if (App::debug()) {
} }
$operations['crea_fattura'] = [ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'data' => [ 'data' => [
'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle _TYPE_ non ancora emesse?', ['_TYPE_' => strtolower($module_fatture)]).'", "placeholder": "'.tr('Aggiungere alle _TYPE_ nello stato bozza?', ['_TYPE_' => strtolower($module_fatture)]).'</small>", "name": "accodare" ]}<br> 'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle _TYPE_ non ancora emesse?', ['_TYPE_' => strtolower($module_fatture)]).'", "placeholder": "'.tr('Aggiungere alle _TYPE_ nello stato bozza?', ['_TYPE_' => strtolower($module_fatture)]).'</small>", "name": "accodare" ]}<br>
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}<br> {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}<br>
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `co_tipidocumento_lang`.`title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id`=`co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` ='.prepare($dir).' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br> {[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `co_tipidocumento_lang`.`title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id`=`co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang`='.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` ='.prepare($dir).' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br>

View File

@ -81,7 +81,7 @@ foreach ($righe as $riga) {
} }
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.get_class($riga).'"> <tr data-id="'.$riga->id.'" data-type="'.$riga::class.'">
<td class="text-center">'; <td class="text-center">';
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
@ -168,7 +168,7 @@ foreach ($righe as $riga) {
$evasione_bar['in_righe_interventi'] = 'warning'; $evasione_bar['in_righe_interventi'] = 'warning';
$evasione_bar['or_righe_ordini'] = 'success'; $evasione_bar['or_righe_ordini'] = 'success';
foreach ($evasione_bar as $table => $color) { foreach ($evasione_bar as $table => $color) {
$righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', get_class($riga))->get(); $righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', $riga::class)->get();
if ($righe_ev->count() > 0) { if ($righe_ev->count() > 0) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta; $perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
if ($perc_ev > 0) { if ($perc_ev > 0) {

View File

@ -99,7 +99,7 @@ class EmailHook extends Manager
try { try {
$email = EmailNotification::build($mail); $email = EmailNotification::build($mail);
$email->send(); $email->send();
} catch (Exception $e) { } catch (Exception) {
} }
} }

View File

@ -130,7 +130,7 @@ class Mail extends Model
public function getOptionsAttribute() public function getOptionsAttribute()
{ {
return json_decode($this->attributes['options'], true); return json_decode((string) $this->attributes['options'], true);
} }
/** /**

View File

@ -302,7 +302,7 @@ switch ($op) {
$totale_documento = abs($totale_documento); $totale_documento = abs($totale_documento);
$totale_documento = $dati_generali['ImportoTotaleDocumento'] ?: $totale_documento; $totale_documento = $dati_generali['ImportoTotaleDocumento'] ?: $totale_documento;
} catch (Exception $e) { } catch (Exception) {
} }
echo json_encode([ echo json_encode([
@ -369,7 +369,7 @@ switch ($op) {
$dbo->query('UPDATE co_fatturazione_contratti SET iddocumento=0 WHERE iddocumento='.prepare($id_record)); $dbo->query('UPDATE co_fatturazione_contratti SET iddocumento=0 WHERE iddocumento='.prepare($id_record));
flash()->info(tr('Fattura eliminata!')); flash()->info(tr('Fattura eliminata!'));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
} }
@ -527,7 +527,7 @@ switch ($op) {
try { try {
$articolo->qta = $qta; $articolo->qta = $qta;
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
$articolo->save(); $articolo->save();
@ -651,7 +651,7 @@ switch ($op) {
flash()->info(tr('Intervento _NUM_ rimosso!', [ flash()->info(tr('Intervento _NUM_ rimosso!', [
'_NUM_' => $idintervento, '_NUM_' => $idintervento,
])); ]));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Errore durante l\'eliminazione della riga!')); flash()->error(tr('Errore durante l\'eliminazione della riga!'));
} }
} }
@ -673,7 +673,7 @@ switch ($op) {
// Ricalcolo inps, ritenuta e bollo // Ricalcolo inps, ritenuta e bollo
ricalcola_costiagg_fattura($id_record); ricalcola_costiagg_fattura($id_record);
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }

View File

@ -85,8 +85,8 @@ foreach ($rs as $key => $value) {
$prezzo = $intervento->totale; $prezzo = $intervento->totale;
$rs[$key]['prezzo'] = Translator::numberToLocale($prezzo); $rs[$key]['prezzo'] = Translator::numberToLocale($prezzo);
$rs[$key]['descrizione_intervento'] = str_replace("'", ' ', strip_tags($rs[$key]['descrizione_intervento'])); $rs[$key]['descrizione_intervento'] = str_replace("'", ' ', strip_tags((string) $rs[$key]['descrizione_intervento']));
$rs[$key]['info'] = str_replace("'", ' ', strip_tags($module_interventi->replacePlaceholders($value['id'], setting('Descrizione personalizzata in fatturazione')))) ?: $rs[$key]['info']; $rs[$key]['info'] = str_replace("'", ' ', strip_tags((string) $module_interventi->replacePlaceholders($value['id'], setting('Descrizione personalizzata in fatturazione')))) ?: $rs[$key]['info'];
} }
// Intervento // Intervento

View File

@ -128,7 +128,7 @@ switch (post('op')) {
$file = $fattura_elettronica->save(); $file = $fattura_elettronica->save();
$added[] = $fattura->numero_esterno; $added[] = $fattura->numero_esterno;
} }
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
$failed[] = $fattura->numero_esterno; $failed[] = $fattura->numero_esterno;
} }
} }
@ -162,7 +162,7 @@ switch (post('op')) {
$added[] = $fattura->numero_esterno; $added[] = $fattura->numero_esterno;
} }
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
$failed[] = $fattura->numero_esterno; $failed[] = $fattura->numero_esterno;
} }
} }
@ -201,7 +201,7 @@ switch (post('op')) {
} else { } else {
$include = $fattura->isFE(); $include = $fattura->isFE();
} }
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
$include = false; $include = false;
} }
@ -440,7 +440,7 @@ switch (post('op')) {
$documento = Fattura::find($id); $documento = Fattura::find($id);
try { try {
$documento->delete(); $documento->delete();
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
} }
} }

View File

@ -172,7 +172,7 @@ if ($dir == 'entrata' && $fattura->stato->id == $id_stato_bozza) {
if ($fattura->is_fattura_conto_terzi) { if ($fattura->is_fattura_conto_terzi) {
echo ' echo '
<div class="alert alert-info"> <div class="alert alert-info">
<i class="fa fa-info"></i> '.tr("Questa è una fattura per conto di terzi. Nell'XML della Fattura Elettronica sarà indicato il fornitore _FORNITORE_ come cessionario e il cliente come cedente/prestatore", ['_FORNITORE_' => '"<b>'.stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).'</b>"']).'.</b> <i class="fa fa-info"></i> '.tr("Questa è una fattura per conto di terzi. Nell'XML della Fattura Elettronica sarà indicato il fornitore _FORNITORE_ come cessionario e il cliente come cedente/prestatore", ['_FORNITORE_' => '"<b>'.stripslashes((string) $database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).'</b>"']).'.</b>
</div>'; </div>';
} }
@ -282,13 +282,13 @@ $query .= ' ORDER BY `title`';
<div class="row"> <div class="row">
<?php if ($dir == 'entrata') {; ?> <?php if ($dir == 'entrata') { ?>
<div class="col-md-2 offset-md-8" <?php echo ($record['is_fiscale']) ? '' : 'hidden'; ?> > <div class="col-md-2 offset-md-8" <?php echo ($record['is_fiscale']) ? '' : 'hidden'; ?> >
{[ "type": "select", "label": "<?php echo tr('Stato FE'); ?>", "name": "codice_stato_fe", "values": "query=SELECT `codice` as id, CONCAT_WS(' - ',`codice`, `title`) as text FROM `fe_stati_documento` LEFT JOIN `fe_stati_documento_lang` ON (`fe_stati_documento_lang`.`id_record` = `fe_stati_documento`.`codice` AND `fe_stati_documento_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>)", "value": "$codice_stato_fe$", "disabled": <?php echo intval(Interaction::isEnabled() || ($fattura->stato->id == $id_stato_bozza && $abilita_genera)); ?>, "class": "unblockable", "help": "<?php echo (!empty($record['data_stato_fe'])) ? Translator::timestampToLocale($record['data_stato_fe']) : ''; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Stato FE'); ?>", "name": "codice_stato_fe", "values": "query=SELECT `codice` as id, CONCAT_WS(' - ',`codice`, `title`) as text FROM `fe_stati_documento` LEFT JOIN `fe_stati_documento_lang` ON (`fe_stati_documento_lang`.`id_record` = `fe_stati_documento`.`codice` AND `fe_stati_documento_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>)", "value": "$codice_stato_fe$", "disabled": <?php echo intval(Interaction::isEnabled() || ($fattura->stato->id == $id_stato_bozza && $abilita_genera)); ?>, "class": "unblockable", "help": "<?php echo (!empty($record['data_stato_fe'])) ? Translator::timestampToLocale($record['data_stato_fe']) : ''; ?>" ]}
</div> </div>
<?php } <?php }
echo' echo '
<div class="col-md-2"> <div class="col-md-2">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatodocumento", "required": 1, "values": "query='.$query.'", "value": "'.$fattura->stato->id.'", "class": "'.(($fattura->stato->id != $id_stato_bozza && !$abilita_genera) ? '' : 'unblockable').'", "extra": "onchange=\"return cambiaStato()\"" ]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatodocumento", "required": 1, "values": "query='.$query.'", "value": "'.$fattura->stato->id.'", "class": "'.(($fattura->stato->id != $id_stato_bozza && !$abilita_genera) ? '' : 'unblockable').'", "extra": "onchange=\"return cambiaStato()\"" ]}
</div> </div>
@ -300,7 +300,7 @@ $query .= ' ORDER BY `title`';
<h3 class="card-title">'.tr('Dati cliente').'</h3> <h3 class="card-title">'.tr('Dati cliente').'</h3>
<div class="card-tools pull-right"> <div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"> <button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-'. (empty($espandi_dettagli) ? 'plus' : 'minus').'"></i> <i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i>
</button> </button>
</div> </div>
</div> </div>
@ -312,7 +312,7 @@ $query .= ' ORDER BY `title`';
if ($dir == 'entrata') { if ($dir == 'entrata') {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "clienti", "help": "<?php echo tr("In caso di autofattura indicare l'azienda: ").stripslashes($database->fetchOne('SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare(setting('Azienda predefinita')))['ragione_sociale']); ?>", "value": "$idanagrafica$" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "clienti", "help": "<?php echo tr("In caso di autofattura indicare l'azienda: ").stripslashes((string) $database->fetchOne('SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare(setting('Azienda predefinita')))['ragione_sociale']); ?>", "value": "$idanagrafica$" ]}
<?php <?php
} else { } else {
?> ?>
@ -387,7 +387,7 @@ echo '
{[ "type": "date", "class":"unblockable", "label": "<?php echo tr('Data competenza'); ?>", "name": "data_competenza", "required": 1, "value": "$data_competenza$", "min-date": "$data$", "help": "<?php echo tr('Data nella quale considerare il movimento contabile, che può essere posticipato rispetto la data della fattura'); ?>" ]} {[ "type": "date", "class":"unblockable", "label": "<?php echo tr('Data competenza'); ?>", "name": "data_competenza", "required": 1, "value": "$data_competenza$", "min-date": "$data$", "help": "<?php echo tr('Data nella quale considerare il movimento contabile, che può essere posticipato rispetto la data della fattura'); ?>" ]}
</div> </div>
<?php <?php
// Conteggio numero articoli fatture // Conteggio numero articoli fatture
$articolo = $dbo->fetchArray('SELECT `mg_articoli`.`id` FROM ((`mg_articoli` INNER JOIN `co_righe_documenti` ON `mg_articoli`.`id`=`co_righe_documenti`.`idarticolo`) INNER JOIN `co_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento`) WHERE `co_documenti`.`id`='.prepare($id_record)); $articolo = $dbo->fetchArray('SELECT `mg_articoli`.`id` FROM ((`mg_articoli` INNER JOIN `co_righe_documenti` ON `mg_articoli`.`id`=`co_righe_documenti`.`idarticolo`) INNER JOIN `co_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento`) WHERE `co_documenti`.`id`='.prepare($id_record));
$id_plugin_sedi = (new Plugin())->getByField('title', 'Sedi', Models\Locale::getPredefined()->id); $id_plugin_sedi = (new Plugin())->getByField('title', 'Sedi', Models\Locale::getPredefined()->id);
@ -462,7 +462,7 @@ if ($dir == 'entrata') {
if ($dir == 'entrata') { if ($dir == 'entrata') {
?> ?>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Fattura per conto terzi'); ?>", "name": "is_fattura_conto_terzi", "value": "$is_fattura_conto_terzi$", "help": "<?php echo tr('Nell\'XML della Fattura Elettronica sarà indicato il fornitore ('.stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).') come cessionario e il cliente come cedente/prestatore.'); ?>", "placeholder": "<?php echo tr('Fattura per conto terzi'); ?>" ]} {[ "type": "checkbox", "label": "<?php echo tr('Fattura per conto terzi'); ?>", "name": "is_fattura_conto_terzi", "value": "$is_fattura_conto_terzi$", "help": "<?php echo tr('Nell\'XML della Fattura Elettronica sarà indicato il fornitore ('.stripslashes((string) $database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).') come cessionario e il cliente come cedente/prestatore.'); ?>", "placeholder": "<?php echo tr('Fattura per conto terzi'); ?>" ]}
</div> </div>
<?php <?php

View File

@ -22,7 +22,7 @@ echo '
<tbody> <tbody>
<tr class="fourth-level"> <tr class="fourth-level">
<th colspan="2"> <th colspan="2">
'.str_repeat($space, 3).'2.2.1.16 AltriDatiGestionali - '.tr('Riga _NUM_', [ '.str_repeat((string) $space, 3).'2.2.1.16 AltriDatiGestionali - '.tr('Riga _NUM_', [
'_NUM_' => $key, '_NUM_' => $key,
]); ]);
@ -40,7 +40,7 @@ echo '
// Tipo Dato // Tipo Dato
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 5).'2.2.1.16.1 TipoDato</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 5).'2.2.1.16.1 TipoDato</td>
<td> <td>
{[ "type": "text", "name": "altri_dati['.$key.'][tipo_dato]", "value": "'.$dato['tipo_dato'].'", "maxlength": 10 ]} {[ "type": "text", "name": "altri_dati['.$key.'][tipo_dato]", "value": "'.$dato['tipo_dato'].'", "maxlength": 10 ]}
</td> </td>
@ -49,7 +49,7 @@ echo '
// Riferimento Testo // Riferimento Testo
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 5).'2.2.1.16.2 RiferimentoTesto</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 5).'2.2.1.16.2 RiferimentoTesto</td>
<td> <td>
{[ "type": "text", "name": "altri_dati['.$key.'][riferimento_testo]", "value": "'.$dato['riferimento_testo'].'", "maxlength": 60 ]} {[ "type": "text", "name": "altri_dati['.$key.'][riferimento_testo]", "value": "'.$dato['riferimento_testo'].'", "maxlength": 60 ]}
</td> </td>
@ -58,7 +58,7 @@ echo '
// Riferimento Numero // Riferimento Numero
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 5).'2.2.1.16.3 RiferimentoNumero</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 5).'2.2.1.16.3 RiferimentoNumero</td>
<td> <td>
{[ "type": "number", "name": "altri_dati['.$key.'][riferimento_numero]", "value": "'.$dato['riferimento_numero'].'" ]} {[ "type": "number", "name": "altri_dati['.$key.'][riferimento_numero]", "value": "'.$dato['riferimento_numero'].'" ]}
</td> </td>
@ -67,7 +67,7 @@ echo '
// Riferimento Data // Riferimento Data
echo ' echo '
<tr class="fifth-level" id="last-altri_dati-'.$key.'"> <tr class="fifth-level" id="last-altri_dati-'.$key.'">
<td style="vertical-align: middle;">'.str_repeat($space, 5).'2.2.1.16.4 RiferimentoData</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 5).'2.2.1.16.4 RiferimentoData</td>
<td> <td>
{[ "type": "date", "name": "altri_dati['.$key.'][riferimento_data]", "value": "'.$dato['riferimento_data'].'"]} {[ "type": "date", "name": "altri_dati['.$key.'][riferimento_data]", "value": "'.$dato['riferimento_data'].'"]}
</td> </td>

View File

@ -22,7 +22,7 @@ echo '
<tbody> <tbody>
<tr class="fourth-level"> <tr class="fourth-level">
<th colspan="2"> <th colspan="2">
'.str_repeat($space, 3).$info['code'].' '.$info['name'].' - '.tr('Riga _NUM_', [ '.str_repeat((string) $space, 3).$info['code'].' '.$info['name'].' - '.tr('Riga _NUM_', [
'_NUM_' => $key, '_NUM_' => $key,
]); ]);
@ -47,7 +47,7 @@ foreach ($dato['riferimento_linea'] as $linea) {
echo ' echo '
<tr class="fifth-level" title="RiferimentoNumeroLinea-'.$nome.'-'.$key.'"> <tr class="fifth-level" title="RiferimentoNumeroLinea-'.$nome.'-'.$key.'">
<td style="vertical-align: middle;"> <td style="vertical-align: middle;">
'.str_repeat($space, 4).$info['code'].'.1 RiferimentoNumeroLinea - '.tr('Riga _NUM_', [ '.str_repeat((string) $space, 4).$info['code'].'.1 RiferimentoNumeroLinea - '.tr('Riga _NUM_', [
'_NUM_' => $index, '_NUM_' => $index,
]); ]);
@ -71,7 +71,7 @@ foreach ($dato['riferimento_linea'] as $linea) {
// IdDocumento // IdDocumento
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 4).$info['code'].'.2 IdDocumento</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 4).$info['code'].'.2 IdDocumento</td>
<td> <td>
{[ "type": "text", "name": "'.$nome.'['.$key.'][id_documento]", "value": "'.$dato['id_documento'].'", "maxlength": 20 ]} {[ "type": "text", "name": "'.$nome.'['.$key.'][id_documento]", "value": "'.$dato['id_documento'].'", "maxlength": 20 ]}
</td> </td>
@ -80,7 +80,7 @@ echo '
// Data // Data
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 4).$info['code'].'.3 Data</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 4).$info['code'].'.3 Data</td>
<td> <td>
{[ "type": "date", "name": "'.$nome.'['.$key.'][data]", "value": "'.$dato['data'].'", "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]} {[ "type": "date", "name": "'.$nome.'['.$key.'][data]", "value": "'.$dato['data'].'", "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td> </td>
@ -89,7 +89,7 @@ echo '
// NumItem // NumItem
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 4).$info['code'].'.4 NumItem</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 4).$info['code'].'.4 NumItem</td>
<td> <td>
{[ "type": "text", "name": "'.$nome.'['.$key.'][num_item]", "value": "'.$dato['num_item'].'", "maxlength": 20, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]} {[ "type": "text", "name": "'.$nome.'['.$key.'][num_item]", "value": "'.$dato['num_item'].'", "maxlength": 20, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td> </td>
@ -98,7 +98,7 @@ echo '
// CodiceCommessaConvenzione // CodiceCommessaConvenzione
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 4).$info['code'].'.5 CodiceCommessaConvenzione</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 4).$info['code'].'.5 CodiceCommessaConvenzione</td>
<td> <td>
{[ "type": "text", "name": "'.$nome.'['.$key.'][codice_commessa]", "value": "'.$dato['codice_commessa'].'", "maxlength": 100, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]} {[ "type": "text", "name": "'.$nome.'['.$key.'][codice_commessa]", "value": "'.$dato['codice_commessa'].'", "maxlength": 100, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td> </td>
@ -107,7 +107,7 @@ echo '
// CodiceCUP // CodiceCUP
echo ' echo '
<tr class="fifth-level"> <tr class="fifth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 4).$info['code'].'.6 CodiceCUP</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 4).$info['code'].'.6 CodiceCUP</td>
<td> <td>
{[ "type": "text", "name": "'.$nome.'['.$key.'][codice_cup]", "value": "'.$dato['codice_cup'].'", "maxlength": 15, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]} {[ "type": "text", "name": "'.$nome.'['.$key.'][codice_cup]", "value": "'.$dato['codice_cup'].'", "maxlength": 15, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td> </td>
@ -116,7 +116,7 @@ echo '
// CodiceCIG // CodiceCIG
echo ' echo '
<tr class="fifth-level" id="last-'.$nome.'-'.$key.'"> <tr class="fifth-level" id="last-'.$nome.'-'.$key.'">
<td style="vertical-align: middle;">'.str_repeat($space, 4).$info['code'].'.7 CodiceCIG</td> <td style="vertical-align: middle;">'.str_repeat((string) $space, 4).$info['code'].'.7 CodiceCIG</td>
<td> <td>
{[ "type": "text", "name": "'.$nome.'['.$key.'][codice_cig]", "value": "'.$dato['codice_cig'].'", "maxlength": 15, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]} {[ "type": "text", "name": "'.$nome.'['.$key.'][codice_cig]", "value": "'.$dato['codice_cig'].'", "maxlength": 15, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td> </td>

View File

@ -85,7 +85,6 @@ $interventi_programmati = Intervento::select('in_interventi.*')
->where('in_interventi.id', '!=', $id_record) ->where('in_interventi.id', '!=', $id_record)
->get(); ->get();
// Insoluti // Insoluti
$insoluti = Scadenza::where('idanagrafica', $fattura->idanagrafica) $insoluti = Scadenza::where('idanagrafica', $fattura->idanagrafica)
->whereRaw('co_scadenziario.da_pagare > co_scadenziario.pagato') ->whereRaw('co_scadenziario.da_pagare > co_scadenziario.pagato')

View File

@ -81,7 +81,7 @@ if (!empty($id_record)) {
$fattura_acquisto_originale = null; $fattura_acquisto_originale = null;
if (!empty($fattura)) { if (!empty($fattura)) {
$reverse_charge = $fattura->getRighe()->first(fn ($item, $key) => $item->aliquota != null && $item->aliquota->codice_natura_fe !== null && substr($item->aliquota->codice_natura_fe, 0, 2) == 'N6')->id; $reverse_charge = $fattura->getRighe()->first(fn ($item, $key) => $item->aliquota != null && $item->aliquota->codice_natura_fe !== null && str_starts_with($item->aliquota->codice_natura_fe, 'N6'))->id;
$autofattura_vendita = Fattura::find($fattura->id_autofattura); $autofattura_vendita = Fattura::find($fattura->id_autofattura);
$abilita_autofattura = (($fattura->anagrafica->nazione->iso2 != 'IT' && !empty($fattura->anagrafica->nazione->iso2)) || $reverse_charge) && $dir == 'uscita' && $fattura->id_autofattura == null; $abilita_autofattura = (($fattura->anagrafica->nazione->iso2 != 'IT' && !empty($fattura->anagrafica->nazione->iso2)) || $reverse_charge) && $dir == 'uscita' && $fattura->id_autofattura == null;

View File

@ -310,7 +310,7 @@ if (!function_exists('aggiungi_movimento')) {
$importo_cliente = sum($importo_cliente, -$iva_fattura, 2); $importo_cliente = sum($importo_cliente, -$iva_fattura, 2);
} }
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($importo_cliente + $totale_bolli) * $segno_mov1_cliente).', '.prepare($primanota).' )'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($importo_cliente + $totale_bolli) * $segno_mov1_cliente).', '.prepare($primanota).' )';
$dbo->query($query2); $dbo->query($query2);
// 2) Aggiungo il totale sul conto dei ricavi/spese scelto // 2) Aggiungo il totale sul conto dei ricavi/spese scelto
@ -322,7 +322,7 @@ if (!function_exists('aggiungi_movimento')) {
$idconto_riga = $riga['idconto']; $idconto_riga = $riga['idconto'];
$riga['imponibile'] = $is_nota ? -$riga['imponibile'] : $riga['imponibile']; $riga['imponibile'] = $is_nota ? -$riga['imponibile'] : $riga['imponibile'];
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_riga).', '.prepare($riga['imponibile'] * $segno_mov2_ricavivendite).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_riga).', '.prepare($riga['imponibile'] * $segno_mov2_ricavivendite).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
} }
@ -332,7 +332,7 @@ if (!function_exists('aggiungi_movimento')) {
$descrizione_conto_iva = ($dir == 'entrata') ? 'Iva su vendite' : 'Iva su acquisti'; $descrizione_conto_iva = ($dir == 'entrata') ? 'Iva su vendite' : 'Iva su acquisti';
$idconto_iva = setting('Conto per '.$descrizione_conto_iva); $idconto_iva = setting('Conto per '.$descrizione_conto_iva);
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva).', '.prepare($iva_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva).', '.prepare($iva_fattura * $segno_mov3_iva).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
} }
@ -340,7 +340,7 @@ if (!function_exists('aggiungi_movimento')) {
if ($iva_indetraibile_fattura != 0 && !$split_payment) { if ($iva_indetraibile_fattura != 0 && !$split_payment) {
$idconto_iva2 = setting('Conto per Iva indetraibile'); $idconto_iva2 = setting('Conto per Iva indetraibile');
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva2).', '.prepare($iva_indetraibile_fattura * $segno_mov3_iva).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_iva2).', '.prepare($iva_indetraibile_fattura * $segno_mov3_iva).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
} }
@ -349,7 +349,7 @@ if (!function_exists('aggiungi_movimento')) {
if ($totale_rivalsainps != 0) { if ($totale_rivalsainps != 0) {
$idconto_inps = setting('Conto per Erario c/INPS'); $idconto_inps = setting('Conto per Erario c/INPS');
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_inps).', '.prepare($totale_rivalsainps * $segno_mov4_inps).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_inps).', '.prepare($totale_rivalsainps * $segno_mov4_inps).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
} }
@ -359,11 +359,11 @@ if (!function_exists('aggiungi_movimento')) {
$idconto_ritenutaacconto = setting("Conto per Erario c/ritenute d'acconto"); $idconto_ritenutaacconto = setting("Conto per Erario c/ritenute d'acconto");
// DARE nel conto ritenuta // DARE nel conto ritenuta
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaacconto).', '.prepare($totale_ritenutaacconto * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaacconto).', '.prepare($totale_ritenutaacconto * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
// AVERE nel riepilogativo clienti // AVERE nel riepilogativo clienti
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutaacconto * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutaacconto * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
} }
@ -373,11 +373,11 @@ if (!function_exists('aggiungi_movimento')) {
$idconto_ritenutaenasarco = setting('Conto per Erario c/enasarco'); $idconto_ritenutaenasarco = setting('Conto per Erario c/enasarco');
// DARE nel conto ritenuta // DARE nel conto ritenuta
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaenasarco).', '.prepare($totale_ritenutacontributi * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_ritenutaenasarco).', '.prepare($totale_ritenutacontributi * $segno_mov5_ritenutaacconto).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
// AVERE nel riepilogativo clienti // AVERE nel riepilogativo clienti
$query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime($data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutacontributi * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')'; $query2 = 'INSERT INTO co_movimenti(idmastrino, data, iddocumento, id_anagrafica, descrizione, idconto, totale, primanota) VALUES('.prepare($idmastrino).', '.prepare($data).', '.prepare($iddocumento).", '', ".prepare($descrizione.' del '.date('d/m/Y', strtotime((string) $data)).' ('.$ragione_sociale.')').', '.prepare($idconto_controparte).', '.prepare(($totale_ritenutacontributi * $segno_mov5_ritenutaacconto) * -1).', '.prepare($primanota).')';
$dbo->query($query2); $dbo->query($query2);
} }
} }

View File

@ -112,7 +112,7 @@ foreach ($righe as $riga) {
} }
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.get_class($riga).'" '.$extra.'> <tr data-id="'.$riga->id.'" data-type="'.$riga::class.'" '.$extra.'>
<td class="text-center">'; <td class="text-center">';
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
@ -184,8 +184,8 @@ foreach ($righe as $riga) {
if (!empty($riga->note)) { if (!empty($riga->note)) {
if (strlen($riga->note) > 50) { if (strlen($riga->note) > 50) {
$prima_parte = substr($riga->note, 0, (strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50); $prima_parte = substr($riga->note, 0, (strpos($riga->note, ' ', 50) < 60) && (!str_starts_with($riga->note, ' ')) ? strpos($riga->note, ' ', 50) : 50);
$seconda_parte = substr($riga->note, (strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50); $seconda_parte = substr($riga->note, (strpos($riga->note, ' ', 50) < 60) && (!str_starts_with($riga->note, ' ')) ? strpos($riga->note, ' ', 50) : 50);
$stringa_modificata = '<span class="right badge badge-default">'.$prima_parte.'</small> $stringa_modificata = '<span class="right badge badge-default">'.$prima_parte.'</small>
<span id="read-more-target-'.$riga->id.'" class="read-more-target"><span class="right badge badge-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>'; <span id="read-more-target-'.$riga->id.'" class="read-more-target"><span class="right badge badge-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>';
} else { } else {

View File

@ -48,7 +48,7 @@ trait RelationTrait
*/ */
public function getDatiAggiuntiviFEAttribute() public function getDatiAggiuntiviFEAttribute()
{ {
$result = $this->attributes['dati_aggiuntivi_fe'] ? json_decode($this->attributes['dati_aggiuntivi_fe'], true) : ''; $result = $this->attributes['dati_aggiuntivi_fe'] ? json_decode((string) $this->attributes['dati_aggiuntivi_fe'], true) : '';
return (array) $result; return (array) $result;
} }

View File

@ -362,7 +362,7 @@ class Fattura extends Document
*/ */
public function getDatiAggiuntiviFEAttribute() public function getDatiAggiuntiviFEAttribute()
{ {
$result = ($this->attributes['dati_aggiuntivi_fe'] ? json_decode($this->attributes['dati_aggiuntivi_fe'], true) : ''); $result = ($this->attributes['dati_aggiuntivi_fe'] ? json_decode((string) $this->attributes['dati_aggiuntivi_fe'], true) : '');
return (array) $result; return (array) $result;
} }
@ -494,7 +494,7 @@ class Fattura extends Document
{ {
$nome = 'Ricevuta'; $nome = 'Ricevuta';
return $this->uploads()->filter(fn ($item) => false !== strstr($item->getTranslation('title'), $nome))->sortBy('created_at'); return $this->uploads()->filter(fn ($item) => str_contains((string) $item->getTranslation('title'), $nome))->sortBy('created_at');
} }
/** /**

View File

@ -29,11 +29,8 @@ use Modules\Fatture\Fattura;
*/ */
class Bollo class Bollo
{ {
private $fattura; public function __construct(private readonly Fattura $fattura)
public function __construct(Fattura $fattura)
{ {
$this->fattura = $fattura;
} }
/** /**

View File

@ -32,11 +32,8 @@ use Util\XML;
*/ */
class Scadenze class Scadenze
{ {
private $fattura; public function __construct(private readonly Fattura $fattura)
public function __construct(Fattura $fattura)
{ {
$this->fattura = $fattura;
} }
/** /**

View File

@ -48,7 +48,7 @@ echo '
</div>'; </div>';
$expression = $record['expression']; $expression = $record['expression'];
preg_match('/(.*?) (.*?) (.*?) (.*?) (.*?)/U', $record['expression'], $exp); preg_match('/(.*?) (.*?) (.*?) (.*?) (.*?)/U', (string) $record['expression'], $exp);
$minuto = $exp[1]; $minuto = $exp[1];
$ora = $exp[2]; $ora = $exp[2];

View File

@ -115,7 +115,7 @@ class CSV extends CSVImporter
$sottocategoria = null; $sottocategoria = null;
if (!empty($record['categoria'])) { if (!empty($record['categoria'])) {
// Categoria // Categoria
$categoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower($record['categoria'])))->first(); $categoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower((string) $record['categoria'])))->first();
if (empty($categoria)) { if (empty($categoria)) {
$categoria = Categoria::build(); $categoria = Categoria::build();
@ -125,7 +125,7 @@ class CSV extends CSVImporter
// Sotto-categoria // Sotto-categoria
if (!empty($record['sottocategoria'])) { if (!empty($record['sottocategoria'])) {
$sottocategoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower($record['sottocategoria'])))->first(); $sottocategoria = Categoria::where('id', '=', (new Categoria())->getByField('title', strtolower((string) $record['sottocategoria'])))->first();
if (empty($sottocategoria)) { if (empty($sottocategoria)) {
$sottocategoria = Categoria::build(); $sottocategoria = Categoria::build();

View File

@ -49,7 +49,7 @@ switch (filter('op')) {
if (!empty($import_manager)) { if (!empty($import_manager)) {
// Generazione percorso // Generazione percorso
$file = $modulo_import->upload_directory.'/example-'.strtolower($import->getTranslation('title')).'.csv'; $file = $modulo_import->upload_directory.'/example-'.strtolower((string) $import->getTranslation('title')).'.csv';
$filepath = base_dir().'/'.$file; $filepath = base_dir().'/'.$file;
// Generazione del file // Generazione del file

View File

@ -66,7 +66,7 @@ switch (filter('op')) {
foreach (post('setting') as $id => $value) { foreach (post('setting') as $id => $value) {
$result = Settings::get($id); $result = Settings::get($id);
if (preg_match("/multiple\[(.+?)\]/", $result['tipo'], $m)) { if (preg_match("/multiple\[(.+?)\]/", (string) $result['tipo'], $m)) {
$value = implode(',', $value); $value = implode(',', $value);
} }
@ -84,7 +84,7 @@ switch (filter('op')) {
// list // list
// verifico che il valore scelto sia nella lista enumerata nel db // verifico che il valore scelto sia nella lista enumerata nel db
elseif (preg_match("/list\[(.+?)\]/", $result['tipo'], $m)) { elseif (preg_match("/list\[(.+?)\]/", (string) $result['tipo'], $m)) {
flash()->error(tr('Il valore inserito del parametro _NAME_ deve essere un compreso tra i valori previsti!', [ flash()->error(tr('Il valore inserito del parametro _NAME_ deve essere un compreso tra i valori previsti!', [
'_NAME_' => '"'.$result['nome'].'"', '_NAME_' => '"'.$result['nome'].'"',
])); ]));

View File

@ -388,9 +388,9 @@ switch (post('op')) {
foreach ($sessioni as $sessione) { foreach ($sessioni as $sessione) {
// Se è la prima sessione che copio importo la data con quella della richiesta // Se è la prima sessione che copio importo la data con quella della richiesta
if ($numero_sessione == 0) { if ($numero_sessione == 0) {
$orario_inizio = date('Y-m-d', strtotime($data_ricorrenza)).' '.date('H:i:s', strtotime($sessione->orario_inizio)); $orario_inizio = date('Y-m-d', strtotime((string) $data_ricorrenza)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
} else { } else {
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old); $diff = strtotime($sessione->orario_inizio) - strtotime((string) $inizio_old);
$orario_inizio = date('Y-m-d H:i:s', strtotime($new_sessione->orario_inizio) + $diff); $orario_inizio = date('Y-m-d H:i:s', strtotime($new_sessione->orario_inizio) + $diff);
} }
@ -449,7 +449,7 @@ switch (post('op')) {
$dbo->query('DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record)); $dbo->query('DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record));
flash()->info(tr('Intervento eliminato!')); flash()->info(tr('Intervento eliminato!'));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
} }
@ -463,7 +463,7 @@ switch (post('op')) {
$riga = $riga ?: Sconto::find($id_riga); $riga = $riga ?: Sconto::find($id_riga);
try { try {
$riga->delete(); $riga->delete();
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
@ -527,7 +527,7 @@ switch (post('op')) {
try { try {
$articolo->qta = $qta; $articolo->qta = $qta;
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
@ -1071,7 +1071,7 @@ switch (post('op')) {
if ($numero_sessione == 0) { if ($numero_sessione == 0) {
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio)); $orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
} else { } else {
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old); $diff = strtotime($sessione->orario_inizio) - strtotime((string) $inizio_old);
$orario_inizio = date('Y-m-d H:i:s', strtotime($new_sessione->orario_inizio) + $diff); $orario_inizio = date('Y-m-d H:i:s', strtotime($new_sessione->orario_inizio) + $diff);
} }

View File

@ -219,7 +219,7 @@ echo input([
'name' => 'richiesta', 'name' => 'richiesta',
'id' => 'richiesta_add', 'id' => 'richiesta_add',
'required' => 1, 'required' => 1,
'value' => htmlentities($richiesta), 'value' => htmlentities((string) $richiesta),
'extra' => 'style=\'max-height:80px;\'', 'extra' => 'style=\'max-height:80px;\'',
]); ]);
echo ' echo '
@ -230,7 +230,7 @@ echo input([
'label' => tr('Descrizione'), 'label' => tr('Descrizione'),
'name' => 'descrizione', 'name' => 'descrizione',
'id' => 'descrizione_add', 'id' => 'descrizione_add',
'value' => htmlentities($descrizione), 'value' => htmlentities((string) $descrizione),
'extra' => 'style=\'max-height:80px;\'', 'extra' => 'style=\'max-height:80px;\'',
]); ]);
echo ' echo '

View File

@ -173,7 +173,7 @@ switch (post('op')) {
} }
} }
$descrizione = str_replace("'", ' ', strip_tags($module->replacePlaceholders($intervento['id'], setting('Descrizione personalizzata in fatturazione')))) ?: tr('Attività numero _NUM_ del _DATE_', [ $descrizione = str_replace("'", ' ', strip_tags((string) $module->replacePlaceholders($intervento['id'], setting('Descrizione personalizzata in fatturazione')))) ?: tr('Attività numero _NUM_ del _DATE_', [
'_NUM_' => $intervento['codice_intervento'], '_NUM_' => $intervento['codice_intervento'],
'_DATE_' => Translator::dateToLocale($intervento['data']), '_DATE_' => Translator::dateToLocale($intervento['data']),
]); ]);
@ -265,7 +265,7 @@ switch (post('op')) {
if ($numero_sessione == 0) { if ($numero_sessione == 0) {
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio)); $orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
} else { } else {
$diff = strtotime($sessione->orario_inizio) - strtotime($inizio_old); $diff = strtotime($sessione->orario_inizio) - strtotime((string) $inizio_old);
$orario_inizio = date('Y-m-d H:i:s', strtotime($new_sessione->orario_inizio) + $diff); $orario_inizio = date('Y-m-d H:i:s', strtotime($new_sessione->orario_inizio) + $diff);
} }
@ -336,7 +336,7 @@ switch (post('op')) {
// Eliminazione associazione interventi e my_impianti // Eliminazione associazione interventi e my_impianti
$dbo->query('DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record)); $dbo->query('DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
} }
} }
@ -427,9 +427,9 @@ $operations['export-bulk'] = [
]; ];
$operations['crea_fattura'] = [ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'data' => [ 'data' => [
'title' => tr('Fatturare gli _TYPE_ selezionati?', ['_TYPE_' => strtolower($module->getTranslation('title'))]).' <small><i class="fa fa-question-circle-o tip" title="'.tr('Verranno fatturati solo gli interventi completati non collegati a contratti o preventivi').'."></i></small>', 'title' => tr('Fatturare gli _TYPE_ selezionati?', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]).' <small><i class="fa fa-question-circle-o tip" title="'.tr('Verranno fatturati solo gli interventi completati non collegati a contratti o preventivi').'."></i></small>',
'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br> 'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br>
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}<br> {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}<br>
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br> {[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br>

View File

@ -225,7 +225,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$riga->qta = round($qta_gruppo, $decimals); $riga->qta = round($qta_gruppo, $decimals);
// Riferimento al documento di origine // Riferimento al documento di origine
$riga->original_document_type = get_class($intervento); $riga->original_document_type = $intervento::class;
$riga->original_document_id = $intervento->id; $riga->original_document_id = $intervento->id;
$riga->save(); $riga->save();
@ -256,7 +256,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$riga->qta = $gruppo->count(); $riga->qta = $gruppo->count();
// Riferimento al documento di origine // Riferimento al documento di origine
$riga->original_document_type = get_class($intervento); $riga->original_document_type = $intervento::class;
$riga->original_document_id = $intervento->id; $riga->original_document_id = $intervento->id;
$riga->save(); $riga->save();
@ -292,7 +292,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$riga->setSconto($viaggio->scontokm_unitario, $viaggio->tipo_scontokm); $riga->setSconto($viaggio->scontokm_unitario, $viaggio->tipo_scontokm);
// Riferimento al documento di origine // Riferimento al documento di origine
$riga->original_document_type = get_class($intervento); $riga->original_document_type = $intervento::class;
$riga->original_document_id = $intervento->id; $riga->original_document_id = $intervento->id;
$riga->qta = $qta_trasferta; $riga->qta = $qta_trasferta;
@ -351,7 +351,7 @@ if (!function_exists('verifica_numero_intervento')) {
// Recupero maschera per questo segmento // Recupero maschera per questo segmento
$maschera = Generator::getMaschera($id_segment); $maschera = Generator::getMaschera($id_segment);
if ((strpos($maschera, 'YYYY') == false) or (strpos($maschera, 'yy') == false)) { if ((!str_contains($maschera, 'YYYY')) or (!str_contains($maschera, 'yy'))) {
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [ $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [
'DATE(data_richiesta) < '.prepare($data->format('Y-m-d')), 'DATE(data_richiesta) < '.prepare($data->format('Y-m-d')),
'YEAR(data_richiesta) = '.prepare($data->format('Y')), 'YEAR(data_richiesta) = '.prepare($data->format('Y')),

View File

@ -50,7 +50,7 @@ if (!empty($results)) {
<td> <td>
'.Modules::link('Interventi', $result['id'], $intervento->getReference()).' '.Modules::link('Interventi', $result['id'], $intervento->getReference()).'
</td> </td>
<td>'.nl2br($result['descrizione']).'</td> <td>'.nl2br((string) $result['descrizione']).'</td>
<td class="text-right">'.moneyFormat($intervento->totale).'</td> <td class="text-right">'.moneyFormat($intervento->totale).'</td>
</tr>'; </tr>';
} }

View File

@ -67,7 +67,7 @@ foreach ($righe as $riga) {
$descrizione = (!empty($riga->articolo) ? $riga->codice.' - ' : '').$riga['descrizione']; $descrizione = (!empty($riga->articolo) ? $riga->codice.' - ' : '').$riga['descrizione'];
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.get_class($riga).'" '.$extra.'> <tr data-id="'.$riga->id.'" data-type="'.$riga::class.'" '.$extra.'>
<td class="text-center">'; <td class="text-center">';
if (!$block_edit) { if (!$block_edit) {
echo ' echo '

View File

@ -54,7 +54,7 @@ class Sessioni extends Resource implements RetrieveInterface, CreateInterface, D
try { try {
add_tecnico($data['id_intervento'], $user['idanagrafica'], $data['orario_inizio'], $data['orario_fine']); add_tecnico($data['id_intervento'], $user['idanagrafica'], $data['orario_inizio'], $data['orario_fine']);
} catch (\InvalidArgumentException $e) { } catch (\InvalidArgumentException) {
} }
} }

View File

@ -54,7 +54,7 @@ class Sync extends Resource implements RetrieveInterface, UpdateInterface
$result .= "PRODID:-// OpenSTAManager\n"; $result .= "PRODID:-// OpenSTAManager\n";
foreach ($rs as $r) { foreach ($rs as $r) {
$richiesta = str_replace("\r\n", "\n", strip_tags($r['richiesta'])); $richiesta = str_replace("\r\n", "\n", strip_tags((string) $r['richiesta']));
$richiesta = str_replace("\r", "\n", $richiesta); $richiesta = str_replace("\r", "\n", $richiesta);
$richiesta = str_replace("\n", '\\n', $richiesta); $richiesta = str_replace("\n", '\\n', $richiesta);
@ -120,7 +120,7 @@ class Sync extends Resource implements RetrieveInterface, UpdateInterface
$richiesta = str_replace('\\r\\n', "\n", $richiesta); $richiesta = str_replace('\\r\\n', "\n", $richiesta);
$richiesta = str_replace('\\n', "\n", $richiesta); $richiesta = str_replace('\\n', "\n", $richiesta);
$summary = trim($event['SUMMARY']); $summary = trim((string) $event['SUMMARY']);
$summary = str_replace('\\r\\n', "\n", $summary); $summary = str_replace('\\r\\n', "\n", $summary);
$summary = str_replace('\\n', "\n", $summary); $summary = str_replace('\\n', "\n", $summary);

View File

@ -220,7 +220,7 @@ class Intervento extends Document
// $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice'); // $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice');
if ((strpos($maschera, 'YYYY') == false) or (strpos($maschera, 'yy') == false)) { if ((!str_contains($maschera, 'YYYY')) or (!str_contains($maschera, 'yy'))) {
$ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [ $ultimo = Generator::getPreviousFrom($maschera, 'in_interventi', 'codice', [
'YEAR(data_richiesta) = '.prepare(date('Y', strtotime($data))), 'YEAR(data_richiesta) = '.prepare(date('Y', strtotime($data))),
], $data); ], $data);

View File

@ -33,7 +33,7 @@ if (!empty($rs)) {
</tr>'; </tr>';
foreach ($rs as $r) { foreach ($rs as $r) {
$data_richiesta = $r['data_richiesta'] ? date('d/m/Y', strtotime($r['data_richiesta'])) : ''; $data_richiesta = $r['data_richiesta'] ? date('d/m/Y', strtotime((string) $r['data_richiesta'])) : '';
echo ' echo '
<tr > <tr >

View File

@ -29,7 +29,7 @@ $interventi_da_pianificare = Intervento::doesntHave('sessioni')
$raggruppamenti = $interventi_da_pianificare->groupBy(function ($item, $key) { $raggruppamenti = $interventi_da_pianificare->groupBy(function ($item, $key) {
$data = $item->data_scadenza ?: $item->data_richiesta; $data = $item->data_scadenza ?: $item->data_richiesta;
return ucfirst($data->isoFormat('MMMM YYYY')); return ucfirst((string) $data->isoFormat('MMMM YYYY'));
}); });
$counter = 0; $counter = 0;

View File

@ -86,7 +86,7 @@ switch (filter('op')) {
// Selezione manuale // Selezione manuale
$id_receivers = post('receivers'); $id_receivers = post('receivers');
foreach ($id_receivers as $id_receiver) { foreach ($id_receivers as $id_receiver) {
[$tipo, $id] = explode('_', $id_receiver); [$tipo, $id] = explode('_', (string) $id_receiver);
if ($tipo == 'anagrafica') { if ($tipo == 'anagrafica') {
$type = Anagrafica::class; $type = Anagrafica::class;
} elseif ($tipo == 'sede') { } elseif ($tipo == 'sede') {

View File

@ -34,7 +34,7 @@ class Destinatario extends Model
$model = new static(); $model = new static();
$model->id_list = $lista->id; $model->id_list = $lista->id;
$model->record_type = get_class($origine); $model->record_type = $origine::class;
$model->record_id = $origine->id; $model->record_id = $origine->id;
$model->save(); $model->save();

View File

@ -109,10 +109,10 @@ $segment = $dbo->selectOne('zz_segments_lang', 'title', ['id_record' => $_SESSIO
if ($segment != 'Tutti') { if ($segment != 'Tutti') {
$operations['copy_listino'] = [ $operations['copy_listino'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Copia _TYPE_', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Copia _TYPE_', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'data' => [ 'data' => [
'title' => tr('Copiare i listini selezionati?'), 'title' => tr('Copiare i listini selezionati?'),
'msg' => '{[ "type": "select", "multiple":"1", "label": "<small>'.tr('Selezionare le anagrafiche in cui copiare i listini selezionati:').'</small>", "ajax-source":"'.strtolower($segment).'", "name": "idanagrafica[]" ]}', 'msg' => '{[ "type": "select", "multiple":"1", "label": "<small>'.tr('Selezionare le anagrafiche in cui copiare i listini selezionati:').'</small>", "ajax-source":"'.strtolower((string) $segment).'", "name": "idanagrafica[]" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
'blank' => false, 'blank' => false,
@ -120,7 +120,7 @@ if ($segment != 'Tutti') {
]; ];
} else { } else {
$operations['copy_listino'] = [ $operations['copy_listino'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Copia _TYPE_', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Copia _TYPE_', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'data' => [ 'data' => [
'title' => tr('Selezionare prima un segmento tra "Clienti" e "Fornitori"'), 'title' => tr('Selezionare prima un segmento tra "Clienti" e "Fornitori"'),
'msg' => '', 'msg' => '',

View File

@ -101,7 +101,7 @@ switch (get('op')) {
$descrizione .= '<hr>'; $descrizione .= '<hr>';
$descrizione .= '<b>Data</b>: '.(!empty($rs_sessioni['data']) ? Translator::dateToLocale($rs_sessioni['data']) : Translator::dateToLocale($records[$i]['data_richiesta'])).'<br>'; $descrizione .= '<b>Data</b>: '.(!empty($rs_sessioni['data']) ? Translator::dateToLocale($rs_sessioni['data']) : Translator::dateToLocale($records[$i]['data_richiesta'])).'<br>';
$descrizione .= '<b>Stato</b>: '.$records[$i]['stato'].'<br>'; $descrizione .= '<b>Stato</b>: '.$records[$i]['stato'].'<br>';
$descrizione .= '<b>Richiesta</b>: '.substr(strip_tags($records[$i]['richiesta']), 0, 200).'<br>'; $descrizione .= '<b>Richiesta</b>: '.substr(strip_tags((string) $records[$i]['richiesta']), 0, 200).'<br>';
if (!empty($rs_sessioni['tecnici'])) { if (!empty($rs_sessioni['tecnici'])) {
$descrizione .= '<b>Tecnici</b>: '.$rs_sessioni['tecnici']; $descrizione .= '<b>Tecnici</b>: '.$rs_sessioni['tecnici'];
} }

View File

@ -115,7 +115,7 @@ switch (filter('op')) {
$email->send(); $email->send();
$inviata = true; $inviata = true;
} catch (Exception $e) { } catch (Exception) {
// $mail->delete(); // $mail->delete();
} }
} else { } else {
@ -168,7 +168,7 @@ switch (filter('op')) {
// Selezione manuale // Selezione manuale
$id_receivers = post('receivers'); $id_receivers = post('receivers');
foreach ($id_receivers as $id_receiver) { foreach ($id_receivers as $id_receiver) {
[$tipo, $id] = explode('_', $id_receiver); [$tipo, $id] = explode('_', (string) $id_receiver);
if ($tipo == 'anagrafica') { if ($tipo == 'anagrafica') {
$type = Anagrafica::class; $type = Anagrafica::class;
} elseif ($tipo == 'sede') { } elseif ($tipo == 'sede') {

View File

@ -25,7 +25,7 @@ if (!empty($search)) {
include_once __DIR__.'/select.php'; include_once __DIR__.'/select.php';
$results = collect($results)->mapToGroups(function ($item, $key) { $results = collect($results)->mapToGroups(function ($item, $key) {
[$tipo, $id] = explode('_', $item['id']); [$tipo, $id] = explode('_', (string) $item['id']);
return [$tipo => $id]; return [$tipo => $id];
}); });
@ -120,7 +120,7 @@ foreach ($destinatari_filtrati as $destinatario) {
).' ).'
</div>', </div>',
'<div class="text-center">'.(empty($lista) && !empty($origine->email) && !empty($origine->enable_newsletter) ? ' '<div class="text-center">'.(empty($lista) && !empty($origine->email) && !empty($origine->enable_newsletter) ? '
<a class="btn btn-warning btn-xs" data-type="'.get_class($origine).'" data-id="'.$origine->id.'" data-email="'.$origine->email.'" onclick="testInvio(this)"> <a class="btn btn-warning btn-xs" data-type="'.$origine::class.'" data-id="'.$origine->id.'" data-email="'.$origine->email.'" onclick="testInvio(this)">
<i class="fa fa-paper-plane "></i> <i class="fa fa-paper-plane "></i>
</a>' : '').' </a>' : '').'
<a class="btn btn-danger ask btn-xs" data-backto="record-edit" data-op="remove_receiver" data-type="'.$destinatario->record_type.'" data-id="'.$destinatario->record_id.'"> <a class="btn btn-danger ask btn-xs" data-backto="record-edit" data-op="remove_receiver" data-type="'.$destinatario->record_type.'" data-id="'.$destinatario->record_id.'">

View File

@ -34,7 +34,7 @@ class Destinatario extends Model
$model = new static(); $model = new static();
$model->id_newsletter = $newsletter->id; $model->id_newsletter = $newsletter->id;
$model->record_type = get_class($origine); $model->record_type = $origine::class;
$model->record_id = $origine->id; $model->record_id = $origine->id;
$model->save(); $model->save();

View File

@ -186,7 +186,7 @@ switch (post('op')) {
try { try {
$articolo->qta = post('qta'); $articolo->qta = post('qta');
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
@ -334,7 +334,7 @@ switch (post('op')) {
try { try {
$riga->delete(); $riga->delete();
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }
@ -378,7 +378,7 @@ switch (post('op')) {
$ordine->delete(); $ordine->delete();
flash()->info(tr('Ordine eliminato!')); flash()->info(tr('Ordine eliminato!'));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
} }

View File

@ -210,11 +210,11 @@ switch (post('op')) {
} }
if ($module->getTranslation('title') == 'Ordini cliente') { if ($module->getTranslation('title') == 'Ordini cliente') {
$module_fatture = Module::find($id_modulo_fatture)->getTranslation('title'); $module_fatture = Module::find($id_modulo_fatture)->getTranslation('title');
$module_fatture ? strtolower($module_fatture) : ''; $module_fatture ? strtolower((string) $module_fatture) : '';
$operations['crea_fattura'] = [ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'data' => [ 'data' => [
'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle _TYPE_ non ancora emesse?', ['_TYPE_' => $module_fatture]).'", "placeholder": "'.tr('Aggiungere alle _TYPE_ nello stato bozza?', ['_TYPE_' => $module_fatture]).'</small>", "name": "accodare" ]} 'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle _TYPE_ non ancora emesse?', ['_TYPE_' => $module_fatture]).'", "placeholder": "'.tr('Aggiungere alle _TYPE_ nello stato bozza?', ['_TYPE_' => $module_fatture]).'</small>", "name": "accodare" ]}
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_modulo_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(['id_module' => $id_modulo_fatture, 'is_sezionale' => 1]).', "value": "'.$id_segment.'", "select-options-escape": true ]}
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br> {[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br>

View File

@ -58,7 +58,7 @@ if ($dir == 'entrata') {
<i class="fa fa-file-o"></i> '.tr('Ordine fornitore').' <i class="fa fa-file-o"></i> '.tr('Ordine fornitore').'
</a> </a>
'; ';
} }
echo ' echo '

View File

@ -380,8 +380,8 @@ foreach ($materiali_art as $key => $materiali_array1) {
foreach ($materiali_array1 as $materiali_array2) { foreach ($materiali_array1 as $materiali_array2) {
foreach ($materiali_array2 as $materiale) { foreach ($materiali_array2 as $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo']; $margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / ($materiale['ricavo'] ? $materiale['ricavo'] : 1))) * 100; $margine_prc = (int) (1 - ($materiale['costo'] / ($materiale['ricavo'] ?: 1))) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / ($materiale['costo'] ? $materiale['costo'] : 1)) - 1) * 100) : 100; $ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / ($materiale['costo'] ?: 1)) - 1) * 100) : 100;
echo ' echo '
<tr> <tr>
<td>'.Modules::link('Articoli', $materiale['id'], $key).'</td> <td>'.Modules::link('Articoli', $materiale['id'], $key).'</td>
@ -398,8 +398,8 @@ foreach ($materiali_art as $key => $materiali_array1) {
ksort($materiali_righe); ksort($materiali_righe);
foreach ($materiali_righe as $key => $materiale) { foreach ($materiali_righe as $key => $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo']; $margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / ($materiale['ricavo'] ? $materiale['ricavo'] : 1))) * 100; $margine_prc = (int) (1 - ($materiale['costo'] / ($materiale['ricavo'] ?: 1))) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / ($materiale['costo'] ? $materiale['costo'] : 1)) - 1) * 100) : 100; $ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / ($materiale['costo'] ?: 1)) - 1) * 100) : 100;
echo ' echo '
<tr> <tr>
<td>'.$key.'</td> <td>'.$key.'</td>

View File

@ -86,7 +86,7 @@ foreach ($righe as $riga) {
} }
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.get_class($riga).'" '.$extra.'> <tr data-id="'.$riga->id.'" data-type="'.$riga::class.'" '.$extra.'>
<td class="text-center">'; <td class="text-center">';
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
@ -221,7 +221,7 @@ foreach ($righe as $riga) {
$evasione_bar['in_righe_interventi'] = 'warning'; $evasione_bar['in_righe_interventi'] = 'warning';
$evasione_bar['or_righe_ordini'] = 'success'; $evasione_bar['or_righe_ordini'] = 'success';
foreach ($evasione_bar as $table => $color) { foreach ($evasione_bar as $table => $color) {
$righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', get_class($riga))->get(); $righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', $riga::class)->get();
if ($righe_ev->count() > 0) { if ($righe_ev->count() > 0) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta; $perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
if ($perc_ev > 0) { if ($perc_ev > 0) {

View File

@ -201,13 +201,13 @@ class Ordine extends Document
} else { } else {
$maschera = Generator::getMaschera($id_segment); $maschera = Generator::getMaschera($id_segment);
if (strpos($maschera, 'm') !== false) { if (str_contains($maschera, 'm')) {
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero', [ $ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))), 'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'MONTH(data) = '.prepare(date('m', strtotime($data))), 'MONTH(data) = '.prepare(date('m', strtotime($data))),
'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')', 'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')',
]); ]);
} elseif ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) { } elseif ((str_contains($maschera, 'YYYY')) or (str_contains($maschera, 'yy'))) {
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero', [ $ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))), 'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')', 'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')',
@ -241,13 +241,13 @@ class Ordine extends Document
$maschera = Generator::getMaschera($id_segment); $maschera = Generator::getMaschera($id_segment);
if (strpos($maschera, 'm') !== false) { if (str_contains($maschera, 'm')) {
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [ $ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))), 'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'MONTH(data) = '.prepare(date('m', strtotime($data))), 'MONTH(data) = '.prepare(date('m', strtotime($data))),
'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')', 'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')',
]); ]);
} elseif ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) { } elseif ((str_contains($maschera, 'YYYY')) or (str_contains($maschera, 'yy'))) {
$ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [ $ultimo = Generator::getPreviousFrom($maschera, 'or_ordini', 'numero_esterno', [
'YEAR(data) = '.prepare(date('Y', strtotime($data))), 'YEAR(data) = '.prepare(date('Y', strtotime($data))),
'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')', 'idtipoordine IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` = '.prepare($direzione).')',

View File

@ -61,7 +61,7 @@ class CSV extends CSVImporter
$database = database(); $database = database();
$primary_key = $this->getPrimaryKey(); $primary_key = $this->getPrimaryKey();
$numero = explode('.', $record['numero']); $numero = explode('.', (string) $record['numero']);
$codice_conto2 = $numero[0]; $codice_conto2 = $numero[0];
$codice_conto3 = $numero[1]; $codice_conto3 = $numero[1];

View File

@ -178,7 +178,7 @@ switch (post('op')) {
$preventivo->delete(); $preventivo->delete();
flash()->info(tr('Preventivo eliminato!')); flash()->info(tr('Preventivo eliminato!'));
} catch (InvalidArgumentException $e) { } catch (InvalidArgumentException) {
flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!')); flash()->error(tr('Sono stati utilizzati alcuni serial number nel documento: impossibile procedere!'));
} }
@ -209,7 +209,7 @@ switch (post('op')) {
try { try {
$articolo->qta = $qta; $articolo->qta = $qta;
} catch (UnexpectedValueException $e) { } catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!')); flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
} }

View File

@ -165,9 +165,9 @@ switch (post('op')) {
} }
$operations['crea_fattura'] = [ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura _TYPE_', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'data' => [ 'data' => [
'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower($module->getTranslation('title'))]), 'title' => tr('Fatturare i _TYPE_ selezionati?', ['_TYPE_' => strtolower((string) $module->getTranslation('title'))]),
'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT `zz_segments`.`id`, `zz_segments_lang`.`title` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module`=\''.$id_fatture.'\' ORDER BY `zz_segments_lang`.`title`", "value": "'.$id_segment.'" ]}<br> 'msg' => '{[ "type": "checkbox", "label": "<small>'.tr('Aggiungere alle fatture di vendita non ancora emesse?').'</small>", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT `zz_segments`.`id`, `zz_segments_lang`.`title` AS descrizione FROM `zz_segments` LEFT JOIN `zz_segments_lang` ON (`zz_segments`.`id` = `zz_segments_lang`.`id_record` AND `zz_segments_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `id_module`=\''.$id_fatture.'\' ORDER BY `zz_segments_lang`.`title`", "value": "'.$id_segment.'" ]}<br>
{[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br> {[ "type": "select", "label": "'.tr('Tipo documento').'", "name": "idtipodocumento", "required": 1, "values": "query=SELECT `co_tipidocumento`.`id`, CONCAT(`codice_tipo_documento_fe`, \' - \', `title`) AS descrizione FROM `co_tipidocumento` LEFT JOIN `co_tipidocumento_lang` ON (`co_tipidocumento`.`id` = `co_tipidocumento_lang`.`id_record` AND `co_tipidocumento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `enabled` = 1 AND `dir` =\'entrata\' ORDER BY `codice_tipo_documento_fe`", "value": "'.$idtipodocumento.'" ]}<br>
{[ "type": "select", "label": "'.tr('Raggruppa per').'", "name": "raggruppamento", "required": 1, "values": "list=\"cliente\":\"Cliente\",\"sede\":\"Sede\"" ]}', {[ "type": "select", "label": "'.tr('Raggruppa per').'", "name": "raggruppamento", "required": 1, "values": "list=\"cliente\":\"Cliente\",\"sede\":\"Sede\"" ]}',

View File

@ -45,14 +45,14 @@ if (count($preventivo->revisioni) > 1) {
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT `co_statipreventivi`.`id`, `co_statipreventivi_lang`.`title` AS descrizione, `colore` AS _bgcolor_ FROM `co_statipreventivi` LEFT JOIN `co_statipreventivi_lang` ON (`co_statipreventivi_lang`.`id_record` = `co_statipreventivi`.`id` AND `co_statipreventivi_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) ORDER BY `title`", "value": "$idstato$", "class": "unblockable" ]} {[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT `co_statipreventivi`.`id`, `co_statipreventivi_lang`.`title` AS descrizione, `colore` AS _bgcolor_ FROM `co_statipreventivi` LEFT JOIN `co_statipreventivi_lang` ON (`co_statipreventivi_lang`.`id_record` = `co_statipreventivi`.`id` AND `co_statipreventivi_lang`.`id_lang` = <?php echo prepare(Models\Locale::getDefault()->id); ?>) ORDER BY `title`", "value": "$idstato$", "class": "unblockable" ]}
</div> </div>
</div> </div>
<?php echo' <?php echo '
<!-- DATI INTESTAZIONE --> <!-- DATI INTESTAZIONE -->
<div class="card card-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'"> <div class="card card-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'">
<div class="card-header with-border"> <div class="card-header with-border">
<h3 class="card-title">'.tr('Dati cliente').'</h3> <h3 class="card-title">'.tr('Dati cliente').'</h3>
<div class="card-tools pull-right"> <div class="card-tools pull-right">
<button type="button" class="btn btn-card-tool" data-card-widget="collapse"> <button type="button" class="btn btn-card-tool" data-card-widget="collapse">
<i class="fa fa-'. (empty($espandi_dettagli) ? 'plus' : 'minus').'"></i> <i class="fa fa-'.(empty($espandi_dettagli) ? 'plus' : 'minus').'"></i>
</button> </button>
</div> </div>
</div> </div>
@ -520,7 +520,7 @@ UNION
\'Interventi\' \'Interventi\'
FROM `in_interventi` FROM `in_interventi`
JOIN `in_righe_interventi` ON `in_righe_interventi`.`idintervento` = `in_interventi`.`id` JOIN `in_righe_interventi` ON `in_righe_interventi`.`idintervento` = `in_interventi`.`id`
WHERE (`in_righe_interventi`.`original_document_id` = '.prepare($preventivo->id).' AND `in_righe_interventi`.`original_document_type` = '.prepare(get_class($preventivo)).') OR `in_interventi`.`id_preventivo` = '.prepare($id_record).' WHERE (`in_righe_interventi`.`original_document_id` = '.prepare($preventivo->id).' AND `in_righe_interventi`.`original_document_type` = '.prepare($preventivo::class).') OR `in_interventi`.`id_preventivo` = '.prepare($id_record).'
ORDER BY `data`'); ORDER BY `data`');

View File

@ -25,9 +25,9 @@ use Models\Upload;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede; use Modules\Anagrafiche\Sede;
use Modules\Contratti\Contratto; use Modules\Contratti\Contratto;
use Modules\Interventi\Intervento;
use Modules\Ordini\Ordine; use Modules\Ordini\Ordine;
use Modules\Scadenzario\Scadenza; use Modules\Scadenzario\Scadenza;
use Modules\Interventi\Intervento;
// Anagrafica // Anagrafica
$anagrafica = $preventivo->anagrafica; $anagrafica = $preventivo->anagrafica;
@ -154,7 +154,6 @@ if ($contratto) {
</p>'; </p>';
} }
// Ordine // Ordine
if ($ordine) { if ($ordine) {
echo ' echo '

View File

@ -76,7 +76,7 @@ foreach ($righe as $key => $riga) {
++$num; ++$num;
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.get_class($riga).'" '.$style_titolo.'> <tr data-id="'.$riga->id.'" data-type="'.$riga::class.'" '.$style_titolo.'>
<td class="text-center">'; <td class="text-center">';
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
@ -177,7 +177,7 @@ foreach ($righe as $key => $riga) {
$evasione_bar['in_righe_interventi'] = 'warning'; $evasione_bar['in_righe_interventi'] = 'warning';
$evasione_bar['or_righe_ordini'] = 'success'; $evasione_bar['or_righe_ordini'] = 'success';
foreach ($evasione_bar as $table => $color) { foreach ($evasione_bar as $table => $color) {
$righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', get_class($riga))->get(); $righe_ev = $dbo->table($table)->where('original_id', $riga->id)->where('original_type', $riga::class)->get();
if ($righe_ev->count() > 0) { if ($righe_ev->count() > 0) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta; $perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
if ($perc_ev > 0) { if ($perc_ev > 0) {

View File

@ -303,14 +303,14 @@ class Preventivo extends Document
{ {
$maschera = Generator::getMaschera($id_segment); $maschera = Generator::getMaschera($id_segment);
if (strpos($maschera, 'm') !== false) { if (str_contains($maschera, 'm')) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero', [ $ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))), 'YEAR(data_bozza) = '.prepare(date('Y', strtotime((string) $data))),
'MONTH(data_bozza) = '.prepare(date('m', strtotime($data))), 'MONTH(data_bozza) = '.prepare(date('m', strtotime((string) $data))),
]); ]);
} elseif ((strpos($maschera, 'YYYY') !== false) or (strpos($maschera, 'yy') !== false)) { } elseif ((str_contains($maschera, 'YYYY')) or (str_contains($maschera, 'yy'))) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero', [ $ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))), 'YEAR(data_bozza) = '.prepare(date('Y', strtotime((string) $data))),
]); ]);
} else { } else {
$ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero'); $ultimo = Generator::getPreviousFrom($maschera, 'co_preventivi', 'numero');

View File

@ -58,10 +58,10 @@ $singola_scadenza = get('single') != null;
$is_insoluto = get('is_insoluto') != null; $is_insoluto = get('is_insoluto') != null;
$id_documenti = $id_documenti ?: get('id_documenti'); $id_documenti = $id_documenti ?: get('id_documenti');
$id_documenti = $id_documenti ? explode(',', $id_documenti) : []; $id_documenti = $id_documenti ? explode(',', (string) $id_documenti) : [];
$id_scadenze = $id_scadenze ?: get('id_scadenze'); $id_scadenze = $id_scadenze ?: get('id_scadenze');
$id_scadenze = $id_scadenze ? explode(',', $id_scadenze) : []; $id_scadenze = $id_scadenze ? explode(',', (string) $id_scadenze) : [];
// Controllo per l'utilizzo dei modelli di Prima Nota (per singolo documento o singola scadenza) // Controllo per l'utilizzo dei modelli di Prima Nota (per singolo documento o singola scadenza)
$permetti_modelli = (count($id_documenti) + count($id_scadenze)) <= 1; $permetti_modelli = (count($id_documenti) + count($id_scadenze)) <= 1;
@ -230,7 +230,7 @@ if ($numero_documenti + $numero_scadenze > 1) {
$descrizione = tr('_OP_ _DOC_ num. _NUM_ del _DATE_ (_NAME_)', [ $descrizione = tr('_OP_ _DOC_ num. _NUM_ del _DATE_ (_NAME_)', [
'_OP_' => $operation, '_OP_' => $operation,
'_DOC_' => strtolower($tipo_fattura), '_DOC_' => strtolower((string) $tipo_fattura),
'_NUM_' => $numero_fattura, '_NUM_' => $numero_fattura,
'_DATE_' => Translator::dateToLocale($fattura['data']), '_DATE_' => Translator::dateToLocale($fattura['data']),
'_NAME_' => $fattura->anagrafica['ragione_sociale'], '_NAME_' => $fattura->anagrafica['ragione_sociale'],

Some files were not shown because too many files have changed in this diff Show More