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');
}
json_decode($response);
json_decode((string) $response);
// Impostazioni di Content-Type e Charset Header
if (json_last_error() == JSON_ERROR_NONE) {

View File

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

View File

@ -95,7 +95,7 @@ echo '
</html>';
// 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['errors']);
unset($_SESSION['warnings']);

View File

@ -76,7 +76,7 @@ echo '
<input type="hidden" name="id_documento" value="'.$documento->id.'">
<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">';
// Creazione fattura dal documento

View File

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

View File

@ -31,47 +31,18 @@ $modules = [
$sapi_name = php_sapi_name();
$php_interface = '';
switch (true) {
case strpos($sapi_name, 'apache') !== false:
// PHP è in esecuzione come modulo Apache (4)
$php_interface = 'apache';
break;
case strpos($sapi_name, 'fpm-fcgi') !== false:
// PHP è in esecuzione come PHP-FPM FastCGI (3)
$php_interface = 'fpm-fcgi';
break;
case strpos($sapi_name, 'fpm') !== false:
// PHP è in esecuzione come PHP-FPM (9)
$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.';
}
$php_interface = match (true) {
str_contains($sapi_name, 'apache') => 'apache',
str_contains($sapi_name, 'fpm-fcgi') => 'fpm-fcgi',
str_contains($sapi_name, 'fpm') => 'fpm',
str_contains($sapi_name, 'cgi-fcgi') => 'cgi-fcgi',
str_contains($sapi_name, 'cgi') => 'cgi',
str_contains($sapi_name, 'cli') => 'cli',
str_contains($sapi_name, 'embed') => 'embed',
str_contains($sapi_name, 'litespeed') => 'litespeed',
str_contains($sapi_name, 'isapi') => 'isapi',
default => 'n.d.',
};
if (function_exists('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) {
$attr_td = '';
$name = trim($field);
$name = trim((string) $field);
// Check per tipologie di campi particolari
if (preg_match('/^color_/', $field)) {
if (preg_match('/^color_/', (string) $field)) {
$attr_td .= " width='140'";
$field = str_replace('color_', '', $field);
}
// Data (larghezza fissa)
elseif (preg_match('/^Data/', $field)) {
elseif (preg_match('/^Data/', (string) $field)) {
$attr_td .= " width='100'";
}
// Icona di stampa
elseif (trim($field) == '_print_') {
elseif (trim((string) $field) == '_print_') {
$attr_td .= " width='30'";
$field = str_replace('_print_', '', $field);
} elseif (preg_match('/^icon_/', $field)) {
} elseif (preg_match('/^icon_/', (string) $field)) {
$attr_td .= " width='30'";
$name = str_replace('icon_', 'icon_title_', $name);
$field = str_replace('icon_', '', $field);

View File

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

View File

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

View File

@ -43,12 +43,12 @@ if (!$riferimenti->isEmpty()) {
foreach ($riferimenti as $riferimento) {
$riga = $riferimento->target;
$riga_class = get_class($source);
$riga_class = $source::class;
echo '
<tr data-id="'.$riga->id.'" data-type="'.$riga_class.'">
<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>
</button>

View File

@ -75,7 +75,7 @@ if (Auth::check()) {
echo '
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,
translations: translations,
locale: "'.explode('_', $lang)[0].'",
locale: "'.explode('_', (string) $lang)[0].'",
full_locale: "'.$lang.'",
start_date: "'.$_SESSION['period_start'].'",
@ -276,7 +276,7 @@ if (Auth::check()) {
date_format: "'.formatter()->getDatePattern().'",
time_format: "'.formatter()->getTimePattern().'",
locale: "'.explode('_', $lang)[0].'",
locale: "'.explode('_', (string) $lang)[0].'",
full_locale: "'.$lang.'",
};
</script>';
@ -530,9 +530,9 @@ if (Auth::check()) {
$count = 0;
$opt = '';
if (!empty($plugin['options2'])) {
$opt = json_decode($plugin['options2'], true);
$opt = json_decode((string) $plugin['options2'], true);
} elseif (!empty($plugin['options'])) {
$opt = json_decode($plugin['options'], true);
$opt = json_decode((string) $plugin['options'], true);
}
if (!empty($opt)) {
@ -568,13 +568,13 @@ if (Auth::check()) {
if ($structure->permission != '-' && $structure->use_checklists) {
$checklists_unchecked = $structure->recordChecks($id_record)->where('checked_at', null);
$checklists_total = $structure->recordChecks($id_record);
echo '
<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">
'.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>
</li>';
}

View File

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

View File

@ -78,7 +78,7 @@ function delete($files)
// Eliminazione
try {
$fs->remove($files);
} catch (IOException $e) {
} catch (IOException) {
return false;
}
@ -129,16 +129,16 @@ function copyr($source, $destination, $ignores = [])
try {
$fs->chmod($destination, 0777, 0000, true);
} catch (IOException $e) {
} catch (IOException) {
}
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
try {
$fs->copy($file, $filename, true);
} catch (IOException $e) {
} catch (IOException) {
$result = false;
}
}
@ -175,7 +175,7 @@ function getOS()
];
foreach ($os as $key => $value) {
if (strpos($_SERVER['HTTP_USER_AGENT'], $key)) {
if (strpos((string) $_SERVER['HTTP_USER_AGENT'], $key)) {
return $value;
}
}
@ -209,7 +209,7 @@ function get_client_ip()
$ipaddress = 'UNKNOWN';
}
return strip_tags($ipaddress);
return strip_tags((string) $ipaddress);
}
/**
@ -351,7 +351,7 @@ function prepareToField($string)
*/
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()
{
$path = $_SERVER['SCRIPT_FILENAME'];
$prefix = rtrim($_SERVER['DOCUMENT_ROOT'], '/\\');
$prefix = rtrim((string) $_SERVER['DOCUMENT_ROOT'], '/\\');
if (substr($path, 0, strlen($prefix)) == $prefix) {
$path = substr($path, strlen($prefix));
if (str_starts_with((string) $path, $prefix)) {
$path = substr((string) $path, strlen($prefix));
} else {
$path = str_replace(base_dir(), base_path(), $path);
}
@ -406,7 +406,7 @@ function clean($string, $permitted = '')
function check_query($query)
{
$query = mb_strtoupper($query);
$query = mb_strtoupper((string) $query);
$blacklist = ['INSERT', 'UPDATE', 'TRUNCATE', 'DELETE', 'DROP', 'GRANT', 'CREATE', 'REVOKE'];
foreach ($blacklist as $value) {
@ -449,11 +449,10 @@ function session_get($name, $default = null)
* Imposta un parametro nella sessione secondo un nome indicato.
*
* @param string $name Nome del parametro in dot-notation
* @param mixed $value Valore da impostare
*
* @return void
*/
function session_set($name, $value)
function session_set($name, mixed $value)
{
$session = &$_SESSION;

View File

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

View File

@ -30,7 +30,7 @@ include_once __DIR__.'/../../core.php';
</div>
<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 class="col-md-2">

View File

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

View File

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

View File

@ -35,7 +35,7 @@ class OSMFilesystem extends Filesystem
public function upload($directory, $filename, $contents)
{
// Verifico se l'esensione non è consentita
$extension = pathinfo($filename, PATHINFO_EXTENSION);
$extension = pathinfo((string) $filename, PATHINFO_EXTENSION);
$extension = strtolower($extension);
// Controllo sulle estensioni permesse
@ -49,7 +49,7 @@ class OSMFilesystem extends Filesystem
if (!$this->directoryExists($directory)) {
try {
$this->createDirectory($directory);
} catch (\Exception $e) {
} catch (\Exception) {
flash()->error(tr('Impossibile creare la cartella controllare i permessi!'));
return false;
@ -67,6 +67,6 @@ class OSMFilesystem extends Filesystem
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,
]);
}
} catch (\Exception $e) {
} catch (\Exception) {
$this->addResult([
'id' => $fattura_vendita->id,
'nome' => $fattura_vendita->getReference(),
@ -163,7 +163,7 @@ class DatiFattureElettroniche extends Controllo
protected function htmlDiff($old, $new)
{
$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) {
if (is_array($k)) {
$ret .= (!empty($k['d']) ? '<del>'.implode(' ', $k['d']).'</del> ' : '').

View File

@ -69,7 +69,7 @@ class PianoConti extends Controllo
GROUP BY `an_anagrafiche`.`idanagrafica`');
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']);
$fornitore = in_array('Fornitore', $tipi) && empty($anagrafica['idconto_fornitore']);

View File

@ -72,7 +72,7 @@ class UpdateHook extends CachedManager
$api = self::getAPI();
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';
$current = \Update::getVersion();

View File

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

View File

@ -548,9 +548,9 @@ switch ($resource) {
$rs = $data['results'];
foreach ($rs as $k => $r) {
$currentDate = date('Y-m-d', strtotime($superselect['data']));
$startDate = date('Y-m-d', strtotime($r['data_inizio']));
$endDate = date('Y-m-d', strtotime($r['data_fine']));
$currentDate = date('Y-m-d', strtotime((string) $superselect['data']));
$startDate = date('Y-m-d', strtotime((string) $r['data_inizio']));
$endDate = date('Y-m-d', strtotime((string) $r['data_fine']));
$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']).']',

View File

@ -87,7 +87,7 @@ switch (post('op')) {
$anagrafica->lat = $coordinates->getLatitude();
$anagrafica->lng = $coordinates->getLongitude();
$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);
}
}

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>';
}
echo'
echo '
</div>
</div>';
}
if (in_array($id_agente, $tipi_anagrafica)) {

View File

@ -214,7 +214,7 @@ if (in_array($id_azienda, $tipi_anagrafica)) {
</div>
<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 class="col-md-4">
@ -482,7 +482,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
</div>
<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>
</a>
</div>

View File

@ -25,7 +25,7 @@ use Modules\Anagrafiche\Tipo;
$rs = Tipo::get();
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)) {

View File

@ -237,22 +237,22 @@ class Anagrafica extends Model
$value = null;
}
$this->attributes['piva'] = trim(strtoupper($value));
$this->attributes['piva'] = trim(strtoupper((string) $value));
}
public function setNomeAttribute($value)
{
$this->attributes['nome'] = trim($value);
$this->attributes['nome'] = trim((string) $value);
}
public function setCognomeAttribute($value)
{
$this->attributes['cognome'] = trim($value);
$this->attributes['cognome'] = trim((string) $value);
}
public function setCodiceFiscaleAttribute($value)
{
$this->attributes['codice_fiscale'] = trim(strtoupper($value));
$this->attributes['codice_fiscale'] = trim(strtoupper((string) $value));
}
public function setCodiceDestinatarioAttribute($value)
@ -261,7 +261,7 @@ class Anagrafica extends Model
$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
$tipologie = [];
if (!empty($record['tipologia'])) {
$tipi_selezionati = explode(',', $record['tipologia']);
$tipi_selezionati = explode(',', (string) $record['tipologia']);
foreach ($tipi_selezionati as $tipo) {
$id_tipo = (new Tipo())->getByField('title', $tipo);
@ -324,7 +324,7 @@ class CSV extends CSVImporter
foreach ($campi_sede as $field) {
if ($primary_key != $field) {
if (isset($record[$field])) {
$dati_sede[$field] = trim($record[$field]);
$dati_sede[$field] = trim((string) $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)
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

View File

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

View File

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

View File

@ -31,7 +31,7 @@ foreach ($rs as $r) {
// Campi da evidenziare
$result['labels'] = [];
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]);
$result['labels'][] = $name.': '.$text.'<br/>';

View File

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

View File

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

View File

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

View File

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

View File

@ -190,7 +190,7 @@ switch (post('op')) {
try {
$articolo->qta = $qta;
} catch (UnexpectedValueException $e) {
} catch (UnexpectedValueException) {
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));
flash()->info(tr('Contratto eliminato!'));
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
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'] = [
'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' => [
'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>
{[ "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>

View File

@ -21,15 +21,15 @@ include_once __DIR__.'/../../core.php';
use Models\Module;
$block_edit = $record['is_completato'];
$data_accettazione = $record['data_accettazione'] ? strtotime($record['data_accettazione']) : '';
$data_conclusione = $record['data_conclusione'] ? strtotime($record['data_conclusione']) : '';
$data_accettazione = $record['data_accettazione'] ? strtotime((string) $record['data_accettazione']) : '';
$data_conclusione = $record['data_conclusione'] ? strtotime((string) $record['data_conclusione']) : '';
if ($data_conclusione < $data_accettazione && !empty($data_accettazione) && !empty($data_conclusione)) {
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>';
}
echo'
echo '
<form action="" method="post" id="edit-form">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="op" value="update">
@ -47,7 +47,7 @@ echo'
<h3 class="card-title">'.tr('Dati cliente').'</h3>
<div class="card-tools pull-right">
<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>
</div>
</div>
@ -71,8 +71,7 @@ echo'
<div class="col-md-3">';
if ($record['idagente'] != 0) {
echo
Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
echo 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$" ]}
@ -584,7 +583,7 @@ $elementi = $dbo->fetchArray('
\'Interventi\'
FROM `in_interventi`
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).'
ORDER BY `data`');

View File

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

View File

@ -72,7 +72,7 @@ foreach ($righe as $riga) {
}
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">';
if (!$block_edit) {
echo '
@ -147,7 +147,7 @@ foreach ($righe as $riga) {
$evasione_bar['in_righe_interventi'] = 'warning';
$evasione_bar['or_righe_ordini'] = 'success';
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) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
echo '

View File

@ -274,14 +274,14 @@ class Contratto extends Document
{
$maschera = Generator::getMaschera($id_segment);
if (strpos($maschera, 'm') !== false) {
if (str_contains($maschera, 'm')) {
$ultimo = Generator::getPreviousFrom($maschera, 'co_contratti', 'numero', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))),
'MONTH(data_bozza) = '.prepare(date('m', strtotime($data))),
'YEAR(data_bozza) = '.prepare(date('Y', strtotime((string) $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', [
'YEAR(data_bozza) = '.prepare(date('Y', strtotime($data))),
'YEAR(data_bozza) = '.prepare(date('Y', strtotime((string) $data))),
]);
} else {
$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']) : '';
// 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'])) {
// Se ore finite, segna la riga in rosso

View File

@ -98,11 +98,11 @@ switch (filter('op')) {
$results = [];
foreach ($sessioni as $sessione) {
if (setting('Visualizzazione colori sessioni') == 'Sfondo colore stato - bordo colore tecnico') {
$backgroundcolor = strtoupper($sessione['colore']);
$bordercolor = strtoupper($sessione['colore_tecnico']);
$backgroundcolor = strtoupper((string) $sessione['colore']);
$bordercolor = strtoupper((string) $sessione['colore_tecnico']);
} else {
$backgroundcolor = strtoupper($sessione['colore_tecnico']);
$bordercolor = strtoupper($sessione['colore']);
$backgroundcolor = strtoupper((string) $sessione['colore_tecnico']);
$bordercolor = strtoupper((string) $sessione['colore']);
}
$results[] = [
@ -210,7 +210,7 @@ switch (filter('op')) {
$results[] = [
'id' => $modulo_eventi->id.'_'.$evento['id'],
'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'],
'extendedProps' => [
'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('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/>';
@ -338,25 +338,25 @@ switch (filter('op')) {
}
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'] != '') {
$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'] != '') {
$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'])) {
$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'])) {
$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'])) {
@ -364,7 +364,7 @@ switch (filter('op')) {
}
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 {
@ -492,7 +492,7 @@ switch (filter('op')) {
// Elenco interventi da pianificare
foreach ($promemoria as $sessione) {
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';
} else {
$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"')).'
<b>'.$sessione['ragione_sociale'].'</b>
<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>' : '').'
</div>';
}
@ -551,7 +551,7 @@ switch (filter('op')) {
$results[] = [
'id' => $evento['id'],
'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')),
'display' => 'background',
'allDay' => true,

View File

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

View File

@ -178,7 +178,7 @@ switch (filter('op')) {
try {
$articolo->qta = post('qta');
} catch (UnexpectedValueException $e) {
} catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
}
@ -381,7 +381,7 @@ switch (filter('op')) {
$riga = $riga ?: Sconto::find($id_riga);
try {
$riga->delete();
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
}
@ -442,7 +442,7 @@ switch (filter('op')) {
$ddt->delete();
flash()->info(tr('Ddt eliminato!'));
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
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);
try {
$documento->delete();
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
}
}
@ -190,9 +190,9 @@ if (App::debug()) {
}
$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' => [
'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>
{[ "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>

View File

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

View File

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

View File

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

View File

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

View File

@ -128,7 +128,7 @@ switch (post('op')) {
$file = $fattura_elettronica->save();
$added[] = $fattura->numero_esterno;
}
} catch (UnexpectedValueException $e) {
} catch (UnexpectedValueException) {
$failed[] = $fattura->numero_esterno;
}
}
@ -162,7 +162,7 @@ switch (post('op')) {
$added[] = $fattura->numero_esterno;
}
} catch (UnexpectedValueException $e) {
} catch (UnexpectedValueException) {
$failed[] = $fattura->numero_esterno;
}
}
@ -201,7 +201,7 @@ switch (post('op')) {
} else {
$include = $fattura->isFE();
}
} catch (UnexpectedValueException $e) {
} catch (UnexpectedValueException) {
$include = false;
}
@ -440,7 +440,7 @@ switch (post('op')) {
$documento = Fattura::find($id);
try {
$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) {
echo '
<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>';
}
@ -282,13 +282,13 @@ $query .= ' ORDER BY `title`';
<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'; ?> >
{[ "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>
<?php }
echo'
echo '
<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()\"" ]}
</div>
@ -300,7 +300,7 @@ $query .= ' ORDER BY `title`';
<h3 class="card-title">'.tr('Dati cliente').'</h3>
<div class="card-tools pull-right">
<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>
</div>
</div>
@ -312,7 +312,7 @@ $query .= ' ORDER BY `title`';
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
} 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'); ?>" ]}
</div>
<?php
<?php
// 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));
$id_plugin_sedi = (new Plugin())->getByField('title', 'Sedi', Models\Locale::getPredefined()->id);
@ -462,7 +462,7 @@ if ($dir == 'entrata') {
if ($dir == 'entrata') {
?>
<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>
<?php

View File

@ -22,7 +22,7 @@ echo '
<tbody>
<tr class="fourth-level">
<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,
]);
@ -40,7 +40,7 @@ echo '
// Tipo Dato
echo '
<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>
{[ "type": "text", "name": "altri_dati['.$key.'][tipo_dato]", "value": "'.$dato['tipo_dato'].'", "maxlength": 10 ]}
</td>
@ -49,7 +49,7 @@ echo '
// Riferimento Testo
echo '
<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>
{[ "type": "text", "name": "altri_dati['.$key.'][riferimento_testo]", "value": "'.$dato['riferimento_testo'].'", "maxlength": 60 ]}
</td>
@ -58,7 +58,7 @@ echo '
// Riferimento Numero
echo '
<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>
{[ "type": "number", "name": "altri_dati['.$key.'][riferimento_numero]", "value": "'.$dato['riferimento_numero'].'" ]}
</td>
@ -67,7 +67,7 @@ echo '
// Riferimento Data
echo '
<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>
{[ "type": "date", "name": "altri_dati['.$key.'][riferimento_data]", "value": "'.$dato['riferimento_data'].'"]}
</td>

View File

@ -22,7 +22,7 @@ echo '
<tbody>
<tr class="fourth-level">
<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,
]);
@ -47,7 +47,7 @@ foreach ($dato['riferimento_linea'] as $linea) {
echo '
<tr class="fifth-level" title="RiferimentoNumeroLinea-'.$nome.'-'.$key.'">
<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,
]);
@ -71,7 +71,7 @@ foreach ($dato['riferimento_linea'] as $linea) {
// IdDocumento
echo '
<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>
{[ "type": "text", "name": "'.$nome.'['.$key.'][id_documento]", "value": "'.$dato['id_documento'].'", "maxlength": 20 ]}
</td>
@ -80,7 +80,7 @@ echo '
// Data
echo '
<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>
{[ "type": "date", "name": "'.$nome.'['.$key.'][data]", "value": "'.$dato['data'].'", "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td>
@ -89,7 +89,7 @@ echo '
// NumItem
echo '
<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>
{[ "type": "text", "name": "'.$nome.'['.$key.'][num_item]", "value": "'.$dato['num_item'].'", "maxlength": 20, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td>
@ -98,7 +98,7 @@ echo '
// CodiceCommessaConvenzione
echo '
<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>
{[ "type": "text", "name": "'.$nome.'['.$key.'][codice_commessa]", "value": "'.$dato['codice_commessa'].'", "maxlength": 100, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td>
@ -107,7 +107,7 @@ echo '
// CodiceCUP
echo '
<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>
{[ "type": "text", "name": "'.$nome.'['.$key.'][codice_cup]", "value": "'.$dato['codice_cup'].'", "maxlength": 15, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td>
@ -116,7 +116,7 @@ echo '
// CodiceCIG
echo '
<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>
{[ "type": "text", "name": "'.$nome.'['.$key.'][codice_cig]", "value": "'.$dato['codice_cig'].'", "maxlength": 15, "readonly": '.(empty($dato['id_documento']) ? 1 : 0).' ]}
</td>

View File

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

View File

@ -81,7 +81,7 @@ if (!empty($id_record)) {
$fattura_acquisto_originale = null;
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);
$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);
}
$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);
// 2) Aggiungo il totale sul conto dei ricavi/spese scelto
@ -322,7 +322,7 @@ if (!function_exists('aggiungi_movimento')) {
$idconto_riga = $riga['idconto'];
$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);
}
@ -332,7 +332,7 @@ if (!function_exists('aggiungi_movimento')) {
$descrizione_conto_iva = ($dir == 'entrata') ? 'Iva su vendite' : 'Iva su acquisti';
$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);
}
@ -340,7 +340,7 @@ if (!function_exists('aggiungi_movimento')) {
if ($iva_indetraibile_fattura != 0 && !$split_payment) {
$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);
}
@ -349,7 +349,7 @@ if (!function_exists('aggiungi_movimento')) {
if ($totale_rivalsainps != 0) {
$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);
}
@ -359,11 +359,11 @@ if (!function_exists('aggiungi_movimento')) {
$idconto_ritenutaacconto = setting("Conto per Erario c/ritenute d'acconto");
// 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);
// 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);
}
@ -373,11 +373,11 @@ if (!function_exists('aggiungi_movimento')) {
$idconto_ritenutaenasarco = setting('Conto per Erario c/enasarco');
// 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);
// 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);
}
}

View File

@ -112,7 +112,7 @@ foreach ($righe as $riga) {
}
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">';
if (!$block_edit) {
echo '
@ -184,8 +184,8 @@ foreach ($righe as $riga) {
if (!empty($riga->note)) {
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);
$seconda_parte = substr($riga->note, (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) && (!str_starts_with($riga->note, ' ')) ? strpos($riga->note, ' ', 50) : 50);
$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>';
} else {

View File

@ -48,7 +48,7 @@ trait RelationTrait
*/
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;
}

View File

@ -362,7 +362,7 @@ class Fattura extends Document
*/
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;
}
@ -494,7 +494,7 @@ class Fattura extends Document
{
$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
{
private $fattura;
public function __construct(Fattura $fattura)
public function __construct(private readonly Fattura $fattura)
{
$this->fattura = $fattura;
}
/**

View File

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

View File

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

View File

@ -115,7 +115,7 @@ class CSV extends CSVImporter
$sottocategoria = null;
if (!empty($record['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)) {
$categoria = Categoria::build();
@ -125,7 +125,7 @@ class CSV extends CSVImporter
// Sotto-categoria
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)) {
$sottocategoria = Categoria::build();

View File

@ -49,7 +49,7 @@ switch (filter('op')) {
if (!empty($import_manager)) {
// 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;
// Generazione del file

View File

@ -66,7 +66,7 @@ switch (filter('op')) {
foreach (post('setting') as $id => $value) {
$result = Settings::get($id);
if (preg_match("/multiple\[(.+?)\]/", $result['tipo'], $m)) {
if (preg_match("/multiple\[(.+?)\]/", (string) $result['tipo'], $m)) {
$value = implode(',', $value);
}
@ -84,7 +84,7 @@ switch (filter('op')) {
// list
// 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!', [
'_NAME_' => '"'.$result['nome'].'"',
]));

View File

@ -388,9 +388,9 @@ switch (post('op')) {
foreach ($sessioni as $sessione) {
// Se è la prima sessione che copio importo la data con quella della richiesta
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 {
$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);
}
@ -449,7 +449,7 @@ switch (post('op')) {
$dbo->query('DELETE FROM my_impianti_interventi WHERE idintervento='.prepare($id_record));
flash()->info(tr('Intervento eliminato!'));
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
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);
try {
$riga->delete();
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
}
@ -527,7 +527,7 @@ switch (post('op')) {
try {
$articolo->qta = $qta;
} catch (UnexpectedValueException $e) {
} catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
}
@ -1071,7 +1071,7 @@ switch (post('op')) {
if ($numero_sessione == 0) {
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
} 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);
}

View File

@ -219,7 +219,7 @@ echo input([
'name' => 'richiesta',
'id' => 'richiesta_add',
'required' => 1,
'value' => htmlentities($richiesta),
'value' => htmlentities((string) $richiesta),
'extra' => 'style=\'max-height:80px;\'',
]);
echo '
@ -230,7 +230,7 @@ echo input([
'label' => tr('Descrizione'),
'name' => 'descrizione',
'id' => 'descrizione_add',
'value' => htmlentities($descrizione),
'value' => htmlentities((string) $descrizione),
'extra' => 'style=\'max-height:80px;\'',
]);
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'],
'_DATE_' => Translator::dateToLocale($intervento['data']),
]);
@ -265,7 +265,7 @@ switch (post('op')) {
if ($numero_sessione == 0) {
$orario_inizio = date('Y-m-d', strtotime($data_richiesta)).' '.date('H:i:s', strtotime($sessione->orario_inizio));
} 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);
}
@ -336,7 +336,7 @@ switch (post('op')) {
// Eliminazione associazione interventi e my_impianti
$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'] = [
'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' => [
'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>
{[ "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>

View File

@ -225,7 +225,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$riga->qta = round($qta_gruppo, $decimals);
// 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->save();
@ -256,7 +256,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$riga->qta = $gruppo->count();
// 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->save();
@ -292,7 +292,7 @@ if (!function_exists('aggiungi_intervento_in_fattura')) {
$riga->setSconto($viaggio->scontokm_unitario, $viaggio->tipo_scontokm);
// 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->qta = $qta_trasferta;
@ -351,7 +351,7 @@ if (!function_exists('verifica_numero_intervento')) {
// Recupero maschera per questo segmento
$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', [
'DATE(data_richiesta) < '.prepare($data->format('Y-m-d')),
'YEAR(data_richiesta) = '.prepare($data->format('Y')),

View File

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

View File

@ -67,7 +67,7 @@ foreach ($righe as $riga) {
$descrizione = (!empty($riga->articolo) ? $riga->codice.' - ' : '').$riga['descrizione'];
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">';
if (!$block_edit) {
echo '

View File

@ -54,7 +54,7 @@ class Sessioni extends Resource implements RetrieveInterface, CreateInterface, D
try {
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";
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("\n", '\\n', $richiesta);
@ -120,7 +120,7 @@ class Sync extends Resource implements RetrieveInterface, UpdateInterface
$richiesta = str_replace('\\r\\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('\\n', "\n", $summary);

View File

@ -220,7 +220,7 @@ class Intervento extends Document
// $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', [
'YEAR(data_richiesta) = '.prepare(date('Y', strtotime($data))),
], $data);

View File

@ -33,7 +33,7 @@ if (!empty($rs)) {
</tr>';
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 '
<tr >

View File

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

View File

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

View File

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

View File

@ -109,10 +109,10 @@ $segment = $dbo->selectOne('zz_segments_lang', 'title', ['id_record' => $_SESSIO
if ($segment != 'Tutti') {
$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' => [
'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'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
@ -120,7 +120,7 @@ if ($segment != 'Tutti') {
];
} else {
$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' => [
'title' => tr('Selezionare prima un segmento tra "Clienti" e "Fornitori"'),
'msg' => '',

View File

@ -101,7 +101,7 @@ switch (get('op')) {
$descrizione .= '<hr>';
$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>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'])) {
$descrizione .= '<b>Tecnici</b>: '.$rs_sessioni['tecnici'];
}

View File

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

View File

@ -25,7 +25,7 @@ if (!empty($search)) {
include_once __DIR__.'/select.php';
$results = collect($results)->mapToGroups(function ($item, $key) {
[$tipo, $id] = explode('_', $item['id']);
[$tipo, $id] = explode('_', (string) $item['id']);
return [$tipo => $id];
});
@ -120,7 +120,7 @@ foreach ($destinatari_filtrati as $destinatario) {
).'
</div>',
'<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>
</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.'">

View File

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

View File

@ -186,7 +186,7 @@ switch (post('op')) {
try {
$articolo->qta = post('qta');
} catch (UnexpectedValueException $e) {
} catch (UnexpectedValueException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
}
@ -334,7 +334,7 @@ switch (post('op')) {
try {
$riga->delete();
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
flash()->error(tr('Alcuni serial number sono già stati utilizzati!'));
}
@ -378,7 +378,7 @@ switch (post('op')) {
$ordine->delete();
flash()->info(tr('Ordine eliminato!'));
} catch (InvalidArgumentException $e) {
} catch (InvalidArgumentException) {
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') {
$module_fatture = Module::find($id_modulo_fatture)->getTranslation('title');
$module_fatture ? strtolower($module_fatture) : '';
$module_fatture ? strtolower((string) $module_fatture) : '';
$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' => [
'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" ]}
{[ "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>

View File

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

View File

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

View File

@ -86,7 +86,7 @@ foreach ($righe as $riga) {
}
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">';
if (!$block_edit) {
echo '
@ -221,7 +221,7 @@ foreach ($righe as $riga) {
$evasione_bar['in_righe_interventi'] = 'warning';
$evasione_bar['or_righe_ordini'] = 'success';
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) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
if ($perc_ev > 0) {

View File

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

View File

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

View File

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

View File

@ -165,9 +165,9 @@ switch (post('op')) {
}
$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' => [
'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>
{[ "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\"" ]}',

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" ]}
</div>
</div>
<?php echo'
<?php echo '
<!-- DATI INTESTAZIONE -->
<div class="card card-primary collapsable '.(empty($espandi_dettagli) ? 'collapsed-card' : '').'">
<div class="card-header with-border">
<h3 class="card-title">'.tr('Dati cliente').'</h3>
<div class="card-tools pull-right">
<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>
</div>
</div>
@ -520,7 +520,7 @@ UNION
\'Interventi\'
FROM `in_interventi`
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`');

View File

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

View File

@ -76,7 +76,7 @@ foreach ($righe as $key => $riga) {
++$num;
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">';
if (!$block_edit) {
echo '
@ -177,7 +177,7 @@ foreach ($righe as $key => $riga) {
$evasione_bar['in_righe_interventi'] = 'warning';
$evasione_bar['or_righe_ordini'] = 'success';
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) {
$perc_ev = $righe_ev->sum('qta') * 100 / $riga->qta;
if ($perc_ev > 0) {

View File

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

View File

@ -58,10 +58,10 @@ $singola_scadenza = get('single') != null;
$is_insoluto = get('is_insoluto') != null;
$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 ? 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)
$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_)', [
'_OP_' => $operation,
'_DOC_' => strtolower($tipo_fattura),
'_DOC_' => strtolower((string) $tipo_fattura),
'_NUM_' => $numero_fattura,
'_DATE_' => Translator::dateToLocale($fattura['data']),
'_NAME_' => $fattura->anagrafica['ragione_sociale'],

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