Formattazione codice

This commit is contained in:
Pek5892 2024-01-15 15:30:45 +01:00
parent 453b3603cc
commit b3c6cb7110
346 changed files with 2889 additions and 3287 deletions

View File

@ -54,7 +54,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
// Gestione delle operazioni // Gestione delle operazioni
else { else {
//UPLOAD PER CKEDITOR // UPLOAD PER CKEDITOR
if (filter('op') == 'aggiungi-allegato' && !empty($_FILES) && !empty($_FILES['upload']['name'])) { if (filter('op') == 'aggiungi-allegato' && !empty($_FILES) && !empty($_FILES['upload']['name'])) {
$CKEditor = get('CKEditor'); $CKEditor = get('CKEditor');
$funcNum = get('CKEditorFuncNum'); $funcNum = get('CKEditorFuncNum');
@ -63,8 +63,8 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
'png', 'jpg', 'jpeg', 'png', 'jpg', 'jpeg',
]; ];
//Maximum file limit (unit: byte) // Maximum file limit (unit: byte)
$max_size = '2097152'; //2MB $max_size = '2097152'; // 2MB
// Get image file extension // Get image file extension
$file_extension = pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION); $file_extension = pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION);
@ -86,7 +86,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
// Creazione file fisico // Creazione file fisico
if (!empty($upload)) { if (!empty($upload)) {
//flash()->info(tr('File caricato correttamente!')); // flash()->info(tr('File caricato correttamente!'));
$id_allegato = $dbo->lastInsertedID(); $id_allegato = $dbo->lastInsertedID();
$upload = Upload::find($id_allegato); $upload = Upload::find($id_allegato);
@ -113,15 +113,15 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
echo json_encode($response); echo json_encode($response);
} }
} else { } else {
//flash()->error(tr('Errore durante il caricamento del file!')); // flash()->error(tr('Errore durante il caricamento del file!'));
echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Errore durante il caricamento del file!').'"); </script>'; echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Errore durante il caricamento del file!').'"); </script>';
} }
} else { } else {
//flash()->error(tr('Estensione non permessa!')); // flash()->error(tr('Estensione non permessa!'));
echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Estensione non permessa').'"); </script>'; echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Estensione non permessa').'"); </script>';
} }
exit(); exit;
} }
// UPLOAD // UPLOAD
@ -359,7 +359,7 @@ elseif (filter('op') == 'ordina-checks') {
elseif (post('op') == 'send-email') { elseif (post('op') == 'send-email') {
$template = Template::find(post('template')); $template = Template::find(post('template'));
$mail = \Modules\Emails\Mail::build($user, $template, $id_record); $mail = Modules\Emails\Mail::build($user, $template, $id_record);
// Rimozione allegati predefiniti // Rimozione allegati predefiniti
$mail->resetPrints(); $mail->resetPrints();

View File

@ -52,7 +52,7 @@ switch (filter('op')) {
break; break;
// Imposta un valore ad una sessione // Imposta un valore ad una sessione
case 'session_set': case 'session_set':
$array = explode(',', get('session')); $array = explode(',', get('session'));
$value = get('value', true); $value = get('value', true);

View File

@ -31,7 +31,7 @@ if (!empty(filter('order'))) {
} }
array_shift($columns); array_shift($columns);
$total = Util\Query::readQuery($structure); $total = Query::readQuery($structure);
// Ricerca // Ricerca
$search = []; $search = [];
@ -74,7 +74,7 @@ if (!empty($query)) {
$results['recordsFiltered'] = $data['count']; $results['recordsFiltered'] = $data['count'];
// SOMME // SOMME
$results['summable'] = Util\Query::getSums($structure, $search); $results['summable'] = Query::getSums($structure, $search);
// Allineamento delle righe // Allineamento delle righe
$align = []; $align = [];

View File

@ -43,7 +43,7 @@ try {
} catch (Exception $e) { } catch (Exception $e) {
// Log dell'errore // Log dell'errore
$logger = logger(); $logger = logger();
$logger->addRecord(\Monolog\Logger::ERROR, $e); $logger->addRecord(Monolog\Logger::ERROR, $e);
$response = Response::error('serverError'); $response = Response::error('serverError');
} }

View File

@ -22,9 +22,9 @@ $db_host = '|host|';
$db_username = '|username|'; $db_username = '|username|';
$db_password = '|password|'; $db_password = '|password|';
$db_name = '|database|'; $db_name = '|database|';
//$port = '|port|'; // $port = '|port|';
$db_options = [ $db_options = [
//'sort_buffer_size' => '2M', // 'sort_buffer_size' => '2M',
]; ];
// Percorso della cartella di backup // Percorso della cartella di backup

View File

@ -30,7 +30,7 @@ if (version_compare(phpversion(), $minimum) < 0) {
<p>Stai utilizzando la versione PHP '.phpversion().', non compatibile con OpenSTAManager.</p> <p>Stai utilizzando la versione PHP '.phpversion().', non compatibile con OpenSTAManager.</p>
<p>Aggiorna PHP alla versione >= '.$minimum.'.</p>'; <p>Aggiorna PHP alla versione >= '.$minimum.'.</p>';
exit(); exit;
} }
// Caricamento delle impostazioni personalizzabili // Caricamento delle impostazioni personalizzabili
@ -69,7 +69,7 @@ $config = App::getConfig();
if (!empty($config['redirectHTTPS']) && !isHTTPS(true)) { if (!empty($config['redirectHTTPS']) && !isHTTPS(true)) {
header('HTTP/1.1 301 Moved Permanently'); header('HTTP/1.1 301 Moved Permanently');
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit(); exit;
} }
/* GESTIONE DEGLI ERRORI */ /* GESTIONE DEGLI ERRORI */
@ -181,7 +181,7 @@ if (!$continue && getURLPath() != slashes(base_path().'/index.php') && !Permissi
} }
redirect(base_path().'/index.php'); redirect(base_path().'/index.php');
exit(); exit;
} }
/* INIZIALIZZAZIONE GENERALE */ /* INIZIALIZZAZIONE GENERALE */

View File

@ -34,7 +34,7 @@ WHERE mg_articoli.id = '.prepare($result['idarticolo']));
$qta_minima = $articolo['qta_minima']; $qta_minima = $articolo['qta_minima'];
echo ' echo '
{[ "type": "select", "disabled":"1", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$result['idarticolo'].'", "ajax-source": "articoli", "select-options": '.json_encode($options['select-options']['articoli']).' ]} {[ "type": "select", "disabled":"1", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$result['idarticolo'].'", "ajax-source": "articoli", "select-options": '.json_encode($options['select-options']['articoli']).' ]}
<script> <script>
@ -382,7 +382,7 @@ function verificaPrezzoArticolo() {
let table = $(".table-prezzi"); let table = $(".table-prezzi");
if (prezzo_anagrafica) { if (prezzo_anagrafica) {
table.append(`<tr><td class="pr_anagrafica"><small>'.($options['dir'] == 'uscita' ? tr('Prezzo listino') : tr('Netto cliente')).': '.Plugins::link(($options['dir'] == 'uscita' ? 'Listino Fornitori' : 'Netto Clienti'), $result['idarticolo'], tr('Visualizza'), null, '').'</small></td><td align="right" class="pr_anagrafica"><small>` + prezzo_anagrafica.toLocale() + ` ` + globals.currency + `</small></td>`); table.append(`<tr><td class="pr_anagrafica"><small>'.($options['dir'] == 'uscita' ? tr('Prezzo listino') : tr('Netto cliente')).': '.Plugins::link($options['dir'] == 'uscita' ? 'Listino Fornitori' : 'Netto Clienti', $result['idarticolo'], tr('Visualizza'), null, '').'</small></td><td align="right" class="pr_anagrafica"><small>` + prezzo_anagrafica.toLocale() + ` ` + globals.currency + `</small></td>`);
let tr = $(".pr_anagrafica").parent(); let tr = $(".pr_anagrafica").parent();
if (prezzo_unitario == prezzo_anagrafica.toFixed(2)) { if (prezzo_unitario == prezzo_anagrafica.toFixed(2)) {

View File

@ -48,25 +48,25 @@ $calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto ?: setting("Metodologia ca
echo ' echo '
<div class="row">'; <div class="row">';
// Cassa previdenziale // Cassa previdenziale
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Cassa previdenziale').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalse", "help": "'.(($options['dir'] == 'entrata') ? setting('Tipo Cassa Previdenziale') : null).'" ]} {[ "type": "select", "label": "'.tr('Cassa previdenziale').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalse", "help": "'.(($options['dir'] == 'entrata') ? setting('Tipo Cassa Previdenziale') : null).'" ]}
</div>'; </div>';
// Ritenuta d'acconto // Ritenuta d'acconto
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "id_ritenuta_acconto", "value": "'.$id_ritenuta_acconto.'", "values": "query=SELECT * FROM co_ritenutaacconto" ]} {[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "id_ritenuta_acconto", "value": "'.$id_ritenuta_acconto.'", "values": "query=SELECT * FROM co_ritenutaacconto" ]}
</div>'; </div>';
// Calcola ritenuta d'acconto su // Calcola ritenuta d'acconto su
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenuta_acconto", "value": "'.$calcolo_ritenuta_acconto.'", "values": "list=\"IMP\":\"Imponibile\", \"IMP+RIV\":\"Imponibile + rivalsa\""]} {[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenuta_acconto", "value": "'.$calcolo_ritenuta_acconto.'", "values": "list=\"IMP\":\"Imponibile\", \"IMP+RIV\":\"Imponibile + rivalsa\""]}
</div>'; </div>';
echo ' echo '
</div>'; </div>';
if (!empty($options['show-ritenuta-contributi']) || empty($options['hide_conto'])) { if (!empty($options['show-ritenuta-contributi']) || empty($options['hide_conto'])) {

View File

@ -73,8 +73,8 @@ if (post('db_host') !== null) {
$privileges = current($result); $privileges = current($result);
if ( if (
string_contains($privileges, ' ON `'.$db_name.'`.*') || string_contains($privileges, ' ON `'.$db_name.'`.*')
string_contains($privileges, ' ON *.*') || string_contains($privileges, ' ON *.*')
) { ) {
$pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', $privileges))[0]); $pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', $privileges))[0]);
@ -110,7 +110,7 @@ if (post('db_host') !== null) {
} }
echo $state; echo $state;
exit(); exit;
} }
// Creazione della configurazione // Creazione della configurazione
@ -182,7 +182,7 @@ if (post('db_host') !== null) {
// Creazione manifest.json // Creazione manifest.json
include_once App::filepath('include/init', 'manifest.php'); include_once App::filepath('include/init', 'manifest.php');
redirect(base_path().'/index.php'); redirect(base_path().'/index.php');
exit(); exit;
} }
} }
} }
@ -587,4 +587,4 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
include_once App::filepath('include|custom|', 'bottom.php'); include_once App::filepath('include|custom|', 'bottom.php');
exit(); exit;

View File

@ -116,7 +116,7 @@ if (post('action') == 'init') {
} }
redirect(base_path(), 'js'); redirect(base_path(), 'js');
exit(); exit;
} }
$img = App::getPaths()['img']; $img = App::getPaths()['img'];
@ -263,4 +263,4 @@ echo '
include_once App::filepath('include|custom|', 'bottom.php'); include_once App::filepath('include|custom|', 'bottom.php');
exit(); exit;

View File

@ -43,5 +43,5 @@ if ($config['maintenance_ip'] != $_SERVER['REMOTE_ADDR']) {
include_once App::filepath('include|custom|', 'bottom.php'); include_once App::filepath('include|custom|', 'bottom.php');
exit(); exit;
} }

View File

@ -47,7 +47,7 @@ foreach ($modules as $name => $values) {
]; ];
} }
//PHP // PHP
$settings = [ $settings = [
'php_version' => [ 'php_version' => [
'type' => 'version', 'type' => 'version',
@ -101,10 +101,10 @@ $settings = [
'description' => tr('Permette la creazione dell\'immagine della firma per il rapportino d\'intervento (facoltativo)'), 'description' => tr('Permette la creazione dell\'immagine della firma per il rapportino d\'intervento (facoltativo)'),
], ],
//'display_errors' => [ // 'display_errors' => [
// 'type' => 'value', // 'type' => 'value',
// 'description' => true, // 'description' => true,
//], // ],
'allow_url_fopen' => [ 'allow_url_fopen' => [
'type' => 'value', 'type' => 'value',
@ -233,7 +233,7 @@ foreach ($db as $name => $values) {
} else { } else {
$type = tr('Impostazione'); $type = tr('Impostazione');
//Vedo se riesco a recuperare l'impostazione dalle variabili di sessione o globali di mysql // Vedo se riesco a recuperare l'impostazione dalle variabili di sessione o globali di mysql
$rs_session_variabile = $dbo->fetchArray('SHOW SESSION VARIABLES LIKE '.prepare($name)); $rs_session_variabile = $dbo->fetchArray('SHOW SESSION VARIABLES LIKE '.prepare($name));
$rs_global_variabile = $dbo->fetchArray('SHOW GLOBAL VARIABLES LIKE '.prepare($name)); $rs_global_variabile = $dbo->fetchArray('SHOW GLOBAL VARIABLES LIKE '.prepare($name));
@ -263,7 +263,7 @@ foreach ($db as $name => $values) {
$description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INC_)', [ $description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INC_)', [
'_VALUE_' => $description, '_VALUE_' => $description,
'_INC_' => \Util\FileSystem::formatBytes($inc), '_INC_' => Util\FileSystem::formatBytes($inc),
]); ]);
} }
@ -364,7 +364,7 @@ foreach ($config_to_check as $name => $values) {
]); ]);
} }
$status = ($values['operator']((!empty($values['section']) ? ${$values['section']}[$name] : $$name), $values['value_to_check']) ? 1 : 0); $status = ($values['operator'](!empty($values['section']) ? ${$values['section']}[$name] : $$name, $values['value_to_check']) ? 1 : 0);
$config[] = [ $config[] = [
'name' => $name, 'name' => $name,

View File

@ -109,7 +109,7 @@ if (filter('action') == 'do_update') {
</a>'; </a>';
} }
exit(); exit;
} elseif (Update::isUpdateAvailable()) { } elseif (Update::isUpdateAvailable()) {
// Controllo se l'aggiornamento è in esecuzione // Controllo se l'aggiornamento è in esecuzione
if (Update::isUpdateLocked() && filter('force') === null) { if (Update::isUpdateLocked() && filter('force') === null) {
@ -131,7 +131,7 @@ if (filter('action') == 'do_update') {
include_once App::filepath('include|custom|', 'bottom.php'); include_once App::filepath('include|custom|', 'bottom.php');
exit(); exit;
} }
$firstuse = !$dbo->isInstalled() ? 'true' : 'false'; $firstuse = !$dbo->isInstalled() ? 'true' : 'false';

View File

@ -29,23 +29,23 @@ echo '
<input type="hidden" name="op" value="modifica-allegato"> <input type="hidden" name="op" value="modifica-allegato">
<div class="row">'; <div class="row">';
if (sizeof($id_allegati) == 1) { if (sizeof($id_allegati) == 1) {
$allegato = Upload::find($id_allegati[0]); $allegato = Upload::find($id_allegati[0]);
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome_allegato", "value": "'.$allegato->name.'" ]} {[ "type": "text", "label": "'.tr('Nome').'", "name": "nome_allegato", "value": "'.$allegato->name.'" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Categoria').'", "name": "categoria_allegato", "value": "'.$allegato->category.'", "disabled": "'.intval(in_array($allegato->category, ['Fattura Elettronica'])).'" ]} {[ "type": "text", "label": "'.tr('Categoria').'", "name": "categoria_allegato", "value": "'.$allegato->category.'", "disabled": "'.intval(in_array($allegato->category, ['Fattura Elettronica'])).'" ]}
</div>'; </div>';
} else { } else {
$allegato = Upload::find($id_allegati[0]); $allegato = Upload::find($id_allegati[0]);
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "'.tr('Categoria').'", "name": "categoria_allegato", "value": "" ]} {[ "type": "text", "label": "'.tr('Categoria').'", "name": "categoria_allegato", "value": "" ]}
</div>'; </div>';
} }
echo ' echo '
</div> </div>
<!-- PULSANTI --> <!-- PULSANTI -->

View File

@ -42,14 +42,14 @@ echo '
<tbody>'; <tbody>';
$righe = $documento->getRighe(); $righe = $documento->getRighe();
foreach ($righe as $riga) { foreach ($righe as $riga) {
$riga_class = get_class($riga); $riga_class = get_class($riga);
$riferimento_locale = $riga_class.'|'.$riga->id; $riferimento_locale = $riga_class.'|'.$riga->id;
$presente = in_array($riferimento_locale, $riferimenti); $presente = in_array($riferimento_locale, $riferimenti);
echo ' echo '
<tr data-id="'.$riga->id.'" data-type="'.$riga_class.'"> <tr data-id="'.$riga->id.'" data-type="'.$riga_class.'">
<td>'.$riga->descrizione.'</td> <td>'.$riga->descrizione.'</td>
<td>'.numberFormat($riga->qta_rimanente, 'qta').' / '.numberFormat($riga->qta, 'qta').'</td> <td>'.numberFormat($riga->qta_rimanente, 'qta').' / '.numberFormat($riga->qta, 'qta').'</td>
@ -59,8 +59,8 @@ echo '
</button> </button>
</td> </td>
</tr>'; </tr>';
} }
echo ' echo '
</tbody> </tbody>
</table>'; </table>';

View File

@ -204,7 +204,7 @@ if (Auth::check()) {
search: search, search: search,
translations: translations, translations: translations,
locale: "'.(explode('_', $lang)[0]).'", locale: "'.explode('_', $lang)[0].'",
full_locale: "'.$lang.'", full_locale: "'.$lang.'",
start_date: "'.$_SESSION['period_start'].'", start_date: "'.$_SESSION['period_start'].'",
@ -274,7 +274,7 @@ if (Auth::check()) {
date_format: "'.formatter()->getDatePattern().'", date_format: "'.formatter()->getDatePattern().'",
time_format: "'.formatter()->getTimePattern().'", time_format: "'.formatter()->getTimePattern().'",
locale: "'.(explode('_', $lang)[0]).'", locale: "'.explode('_', $lang)[0].'",
full_locale: "'.$lang.'", full_locale: "'.$lang.'",
}; };
</script>'; </script>';
@ -518,7 +518,7 @@ if (Auth::check()) {
if (!empty($id_record)) { if (!empty($id_record)) {
$plugins = $dbo->fetchArray('SELECT id, title, options, options2 FROM zz_plugins WHERE idmodule_to='.prepare($id_module)." AND position='tab' AND enabled = 1 ORDER BY zz_plugins.order DESC"); $plugins = $dbo->fetchArray('SELECT id, title, options, options2 FROM zz_plugins WHERE idmodule_to='.prepare($id_module)." AND position='tab' AND enabled = 1 ORDER BY zz_plugins.order DESC");
foreach ($plugins as $plugin) { foreach ($plugins as $plugin) {
//Badge count per record plugin // Badge count per record plugin
$count = 0; $count = 0;
$opt = ''; $opt = '';
if (!empty($plugin['options2'])) { if (!empty($plugin['options2'])) {
@ -565,7 +565,7 @@ if (Auth::check()) {
<a class="bg-info" data-toggle="tab" href="#tab_checks" id="link-tab_checks"> <a class="bg-info" data-toggle="tab" href="#tab_checks" id="link-tab_checks">
'.tr('Checklist').' '.tr('Checklist').'
'.(($checklists_total->count() > 0) ? '.(($checklists_total->count() > 0) ?
'<span class="badge pull-right">'.$checklists_unchecked->count().tr(' / ').($checklists_total->count()).'</span>' : '').' '<span class="badge pull-right">'.$checklists_unchecked->count().tr(' / ').$checklists_total->count().'</span>' : '').'
</a> </a>
</li>'; </li>';
} }

View File

@ -45,15 +45,15 @@ switch ($op) {
$_SESSION['period_end'] = date('Y').'-12-31'; $_SESSION['period_end'] = date('Y').'-12-31';
} }
// Rimozione log vecchi // Rimozione log vecchi
//$dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()'); // $dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()');
} else { } else {
$status = auth()->getCurrentStatus(); $status = auth()->getCurrentStatus();
flash()->error(Auth::getStatus()[$status]['message']); flash()->error(Auth::getStatus()[$status]['message']);
redirect(base_path().'/index.php'); redirect(base_path().'/index.php');
exit(); exit;
} }
break; break;
@ -62,7 +62,7 @@ switch ($op) {
Auth::logout(); Auth::logout();
redirect(base_path().'/index.php'); redirect(base_path().'/index.php');
exit(); exit;
} }
if (Auth::check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled()) { if (Auth::check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled()) {
@ -73,7 +73,7 @@ if (Auth::check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled())
} else { } else {
redirect(base_path().'/index.php?op=logout'); redirect(base_path().'/index.php?op=logout');
} }
exit(); exit;
} }
// Modalità manutenzione // Modalità manutenzione

View File

@ -95,12 +95,6 @@ function calcola_sconto($data)
/** /**
* Individua il valore della colonna order per i nuovi elementi di una tabella. * Individua il valore della colonna order per i nuovi elementi di una tabella.
*
* @param $table
* @param $field
* @param $id
*
* @return mixed
*/ */
function orderValue($table, $field, $id) function orderValue($table, $field, $id)
{ {
@ -109,10 +103,6 @@ function orderValue($table, $field, $id)
/** /**
* Ricalcola il riordinamento righe di una tabella. * Ricalcola il riordinamento righe di una tabella.
*
* @param $table
*
* @return mixed
*/ */
function reorderRows($table, $field, $id) function reorderRows($table, $field, $id)
{ {
@ -172,14 +162,13 @@ function provvigioneInfo(Accounting $riga, $mostra_provigione = true)
/** /**
* Genera i riferimenti ai documenti del gestionale, attraverso l'interfaccia Common\ReferenceInterface. * Genera i riferimenti ai documenti del gestionale, attraverso l'interfaccia Common\ReferenceInterface.
* *
* @param $document
* @param string $text Formato "Contenuto descrittivo _DOCUMENT_" * @param string $text Formato "Contenuto descrittivo _DOCUMENT_"
* *
* @return string * @return string
*/ */
function reference($document, $text = null) function reference($document, $text = null)
{ {
if (!empty($document) && !($document instanceof \Common\ReferenceInterface)) { if (!empty($document) && !($document instanceof Common\ReferenceInterface)) {
return null; return null;
} }
@ -208,8 +197,6 @@ function reference($document, $text = null)
* Funzione che gestisce il parsing di uno sconto combinato e la relativa trasformazione in sconto fisso. * Funzione che gestisce il parsing di uno sconto combinato e la relativa trasformazione in sconto fisso.
* Esempio: (40 + 10) % = 44 %. * Esempio: (40 + 10) % = 44 %.
* *
* @param $combinato
*
* @return float|int * @return float|int
*/ */
function parseScontoCombinato($combinato) function parseScontoCombinato($combinato)
@ -234,8 +221,6 @@ function parseScontoCombinato($combinato)
/** /**
* Visualizza le informazioni del segmento. * Visualizza le informazioni del segmento.
* *
* @param $id_module
*
* @return float|int * @return float|int
*/ */
function getSegmentPredefined($id_module) function getSegmentPredefined($id_module)
@ -248,11 +233,6 @@ function getSegmentPredefined($id_module)
/** /**
* Funzione che visualizza i prezzi degli articoli nei listini. * Funzione che visualizza i prezzi degli articoli nei listini.
* *
* @param $id_anagrafica
* @param $direzione
* @param $id_articolo
* @param $riga
*
* @return array * @return array
*/ */
function getPrezzoConsigliato($id_anagrafica, $direzione, $id_articolo, $riga = null) function getPrezzoConsigliato($id_anagrafica, $direzione, $id_articolo, $riga = null)

View File

@ -40,13 +40,9 @@ function get_next_code($str, $qty = 1, $mask = '')
* Se descrizione = 1 e il tipo è 'query=' mi restituisce il valore del campo descrizione della query. * Se descrizione = 1 e il tipo è 'query=' mi restituisce il valore del campo descrizione della query.
* *
* @deprecated 2.4.2 * @deprecated 2.4.2
* *
* @param string $name
* @param string $sezione * @param string $sezione
* @param string $descrizione * @param string $descrizione
*
* @return mixed
*/ */
function get_var($nome, $sezione = null, $descrizione = false, $again = false) function get_var($nome, $sezione = null, $descrizione = false, $again = false)
{ {
@ -163,7 +159,7 @@ function datediff($interval, $datefrom, $dateto, $using_timestamps = false)
break; break;
case 'm': // Number of full months case 'm': // Number of full months
$months_difference = floor($difference / 2678400); $months_difference = floor($difference / 2678400);
while (mktime(date('H', $datefrom), date('i', $datefrom), date('s', $datefrom), date('n', $datefrom) + ($months_difference), date('j', $dateto), date('Y', $datefrom)) < $dateto) { while (mktime(date('H', $datefrom), date('i', $datefrom), date('s', $datefrom), date('n', $datefrom) + $months_difference, date('j', $dateto), date('Y', $datefrom)) < $dateto) {
++$months_difference; ++$months_difference;
} }
--$months_difference; --$months_difference;
@ -207,12 +203,6 @@ function datediff($interval, $datefrom, $dateto, $using_timestamps = false)
} }
/** /**
* @param $field
* @param $id_riga
* @param $old_qta
* @param $new_qta
* @param $dir
*
* @throws Exception * @throws Exception
* *
* @return bool * @return bool
@ -274,8 +264,6 @@ function seriali_non_rimuovibili($field, $id_riga, $dir)
/** /**
* Restistuisce le informazioni sull'eventuale riferimento ai documenti. * Restistuisce le informazioni sull'eventuale riferimento ai documenti.
* *
* @param $info
* @param $dir
* @param array $ignore * @param array $ignore
* *
* @deprecated * @deprecated

View File

@ -54,8 +54,6 @@ function redirect($url, $type = 'php')
* Verifica e corregge il nome di un file. * Verifica e corregge il nome di un file.
* *
* @param string $filename * @param string $filename
*
* @return mixed
*/ */
function sanitizeFilename($filename) function sanitizeFilename($filename)
{ {
@ -96,14 +94,13 @@ function delete($files)
*/ */
function directory($path) function directory($path)
{ {
return Util\FileSystem::directory($path); return FileSystem::directory($path);
} }
/** /**
* Copy a file, or recursively copy a folder and its contents. * Copy a file, or recursively copy a folder and its contents.
* *
* @param array|string $source Source path * @param array|string $source Source path
* @param string $dest Destination path
* @param array|string $ignores Paths to ingore * @param array|string $ignores Paths to ingore
* *
* @return bool Returns TRUE on success, FALSE on failure * @return bool Returns TRUE on success, FALSE on failure
@ -271,7 +268,7 @@ function translateTemplate()
// Annullo le notifiche (AJAX) // Annullo le notifiche (AJAX)
if (isAjaxRequest()) { if (isAjaxRequest()) {
//flash()->clearMessage('info'); // flash()->clearMessage('info');
} }
echo $template; echo $template;
@ -300,7 +297,7 @@ function slashes($string)
*/ */
function isAjaxRequest() function isAjaxRequest()
{ {
return \Whoops\Util\Misc::isAjaxRequest() && filter('ajax') !== null; return Whoops\Util\Misc::isAjaxRequest() && filter('ajax') !== null;
} }
/** /**
@ -327,7 +324,7 @@ function redirectOperation($id_module, $id_record)
redirect(base_path().'/controller.php?id_module='.$id_module.$hash); redirect(base_path().'/controller.php?id_module='.$id_module.$hash);
} }
exit(); exit;
} }
} }

View File

@ -27,11 +27,11 @@ use HTMLBuilder\HTMLBuilder;
/** /**
* Restituisce l'oggetto dedicato alla gestione della connessione con il database. * Restituisce l'oggetto dedicato alla gestione della connessione con il database.
* *
* @return \Database * @return Database
*/ */
function database() function database()
{ {
return \Database::getConnection(); return Database::getConnection();
} }
/** /**
@ -41,8 +41,6 @@ function database()
* @param string $parameter * @param string $parameter
* *
* @since 2.3 * @since 2.3
*
* @return mixed
*/ */
function prepare($parameter) function prepare($parameter)
{ {
@ -62,7 +60,7 @@ function prepare($parameter)
*/ */
function filter($param, $method = null, $raw = false) function filter($param, $method = null, $raw = false)
{ {
return \Filter::getValue($param, $method, $raw); return Filter::getValue($param, $method, $raw);
} }
/** /**
@ -77,7 +75,7 @@ function filter($param, $method = null, $raw = false)
*/ */
function post($param, $raw = false) function post($param, $raw = false)
{ {
return \Filter::getValue($param, 'post', $raw); return Filter::getValue($param, 'post', $raw);
} }
/** /**
@ -92,7 +90,7 @@ function post($param, $raw = false)
*/ */
function get($param, $raw = false) function get($param, $raw = false)
{ {
return \Filter::getValue($param, 'get', $raw); return Filter::getValue($param, 'get', $raw);
} }
/** /**
@ -107,7 +105,7 @@ function get($param, $raw = false)
*/ */
function setting($name, $again = false) function setting($name, $again = false)
{ {
return \Settings::getValue($name); return Settings::getValue($name);
} }
/** /**
@ -115,7 +113,7 @@ function setting($name, $again = false)
* *
* @since 2.4.2 * @since 2.4.2
* *
* @return \Util\Messages * @return Util\Messages
*/ */
function flash() function flash()
{ {
@ -127,11 +125,11 @@ function flash()
* *
* @since 2.4.2 * @since 2.4.2
* *
* @return \Auth * @return Auth
*/ */
function auth() function auth()
{ {
return \Auth::getInstance(); return Auth::getInstance();
} }
/** /**
@ -139,11 +137,11 @@ function auth()
* *
* @since 2.4.2 * @since 2.4.2
* *
* @return \Translator * @return Translator
*/ */
function trans() function trans()
{ {
return \Translator::getInstance(); return Translator::getInstance();
} }
/** /**
@ -151,11 +149,11 @@ function trans()
* *
* @since 2.4.2 * @since 2.4.2
* *
* @return \Intl\Formatter * @return Intl\Formatter
*/ */
function formatter() function formatter()
{ {
return \Translator::getFormatter(); return Translator::getFormatter();
} }
/** /**
@ -171,7 +169,7 @@ function formatter()
*/ */
function tr($string, $parameters = [], $operations = []) function tr($string, $parameters = [], $operations = [])
{ {
return \Translator::translate($string, $parameters, $operations); return Translator::translate($string, $parameters, $operations);
} }
// Retrocompatibilità (con la funzione gettext) // Retrocompatibilità (con la funzione gettext)
@ -187,7 +185,7 @@ if (!function_exists('_')) {
* *
* @since 2.4.2 * @since 2.4.2
* *
* @return \Monolog\Logger * @return Monolog\Logger
*/ */
function logger() function logger()
{ {
@ -213,7 +211,8 @@ function numberFormat($number, $decimals = null)
* Restituisce il timestamp indicato formattato secondo la configurazione del sistema. * Restituisce il timestamp indicato formattato secondo la configurazione del sistema.
* *
* @param string $timestamp * @param string $timestamp
+ * * + *
*
* @return string * @return string
* *
* @since 2.4.8 * @since 2.4.8
@ -260,14 +259,12 @@ function timeFormat($time)
*/ */
function currency() function currency()
{ {
return \Translator::getCurrency(); return Translator::getCurrency();
} }
/** /**
* Restituisce il numero indicato formattato come una valuta secondo la configurazione del sistema. * Restituisce il numero indicato formattato come una valuta secondo la configurazione del sistema.
* *
* @param string $time
*
* @return string * @return string
* *
* @since 2.4.9 * @since 2.4.9

View File

@ -48,8 +48,6 @@ if (!function_exists('array_clean')) {
/** /**
* Pulisce i contenuti vuoti di un array. * Pulisce i contenuti vuoti di un array.
* *
* @param $array
*
* @since 2.3.2 * @since 2.3.2
* *
* @return array * @return array
@ -68,8 +66,6 @@ if (!function_exists('array_deep_clean')) {
/** /**
* Pulisce i contenuti vuoti di un array. * Pulisce i contenuti vuoti di un array.
* *
* @param $array
*
* @since 2.4.11 * @since 2.4.11
* *
* @return array * @return array
@ -111,7 +107,7 @@ if (!function_exists('string_starts_with')) {
*/ */
function string_starts_with($string, $starts_with) function string_starts_with($string, $starts_with)
{ {
//return strpos($string, $string_starts_with) === 0; // return strpos($string, $string_starts_with) === 0;
return S::create($string)->startsWith($starts_with); return S::create($string)->startsWith($starts_with);
} }
} }
@ -127,7 +123,7 @@ if (!function_exists('string_ends_with')) {
*/ */
function string_ends_with($string, $ends_with) function string_ends_with($string, $ends_with)
{ {
//return substr($string, -strlen($string_ends_with)) === $string_ends_with; // return substr($string, -strlen($string_ends_with)) === $string_ends_with;
return S::create($string)->endsWith($ends_with); return S::create($string)->endsWith($ends_with);
} }
} }
@ -143,7 +139,7 @@ if (!function_exists('string_contains')) {
*/ */
function string_contains($string, $contains) function string_contains($string, $contains)
{ {
//return strpos($string, $contains) !== false; // return strpos($string, $contains) !== false;
return S::create($string)->contains($contains); return S::create($string)->contains($contains);
} }
} }
@ -240,7 +236,7 @@ if (!function_exists('random_string')) {
// Don't allow duplicate letters to be disabled if the length is // Don't allow duplicate letters to be disabled if the length is
// longer than the available characters // longer than the available characters
if ($no_duplicate_chars && strlen($pool) < $length) { if ($no_duplicate_chars && strlen($pool) < $length) {
throw new \LengthException('$length exceeds the size of the pool and $no_duplicate_chars is enabled'); throw new LengthException('$length exceeds the size of the pool and $no_duplicate_chars is enabled');
} }
// Convert the pool of characters into an array of characters and // Convert the pool of characters into an array of characters and
@ -286,7 +282,7 @@ if (!function_exists('secure_random_string')) {
$bytes = openssl_random_pseudo_bytes($length * 2); $bytes = openssl_random_pseudo_bytes($length * 2);
if ($bytes === false) { if ($bytes === false) {
throw new \LengthException('$length is not accurate, unable to generate random string'); throw new LengthException('$length is not accurate, unable to generate random string');
} }
return substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $length); return substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $length);
@ -304,9 +300,6 @@ if (!function_exists('download')) {
* *
* @param string $filename The name of the filename to display to * @param string $filename The name of the filename to display to
* browsers * browsers
* @param string $content The content to output for the download.
* If you don't specify this, just the
* headers will be sent
* *
* @since 2.3 * @since 2.3
* *
@ -427,7 +420,7 @@ if (!function_exists('color_darken')) {
} }
$rgb = ''; $rgb = '';
for ($x = 0; $x < 3; ++$x) { for ($x = 0; $x < 3; ++$x) {
$c = hexdec(substr($color, (2 * $x), 2)) - $dif; $c = hexdec(substr($color, 2 * $x, 2)) - $dif;
$c = ($c < 0) ? 0 : dechex($c); $c = ($c < 0) ? 0 : dechex($c);
$rgb .= (strlen($c) < 2) ? '0'.$c : $c; $rgb .= (strlen($c) < 2) ? '0'.$c : $c;
} }
@ -448,7 +441,7 @@ if (!function_exists('color_inverse')) {
*/ */
function color_inverse($start_colour) function color_inverse($start_colour)
{ {
if (preg_match('/^#[a-f0-9]{6}$/i', $start_colour)) { //hex color is valid if (preg_match('/^#[a-f0-9]{6}$/i', $start_colour)) { // hex color is valid
$R1 = hexdec(substr($start_colour, 1, 2)); $R1 = hexdec(substr($start_colour, 1, 2));
$G1 = hexdec(substr($start_colour, 3, 2)); $G1 = hexdec(substr($start_colour, 3, 2));
$B1 = hexdec(substr($start_colour, 5, 2)); $B1 = hexdec(substr($start_colour, 5, 2));
@ -543,9 +536,6 @@ if (!function_exists('temp_file')) {
/** /**
* Crea un file temporaneo e lo imposta per la rimozione alla fine dell'esecuzione. * Crea un file temporaneo e lo imposta per la rimozione alla fine dell'esecuzione.
* *
* @param $name
* @param $content
*
* @return string * @return string
*/ */
function temp_file($name = null, $content = null) function temp_file($name = null, $content = null)

View File

@ -112,21 +112,21 @@ echo '
<b>'.tr('Destinatari').' <span class="tip" title="'.tr('Email delle sedi, dei referenti o agente collegato all\'anagrafica.').'"><i class="fa fa-question-circle-o"></i></span></b> <b>'.tr('Destinatari').' <span class="tip" title="'.tr('Email delle sedi, dei referenti o agente collegato all\'anagrafica.').'"><i class="fa fa-question-circle-o"></i></span></b>
<div class="row" id="lista-destinatari">'; <div class="row" id="lista-destinatari">';
$idx = 0; $idx = 0;
foreach ($emails as $email) { foreach ($emails as $email) {
echo ' echo '
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]} {[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
</div>'; </div>';
} }
if (empty($emails)) { if (empty($emails)) {
echo ' echo '
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]} {[ "type": "email", "name": "destinatari['.$idx++.']", "value": "", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
</div>'; </div>';
} }
echo ' echo '
</div> </div>
@ -171,16 +171,16 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-12">'; <div class="col-md-12">';
echo input([ echo input([
'type' => 'ckeditor', 'type' => 'ckeditor',
'use_full_ckeditor' => 1, 'use_full_ckeditor' => 1,
'label' => tr('Contenuto'), 'label' => tr('Contenuto'),
'name' => 'body', 'name' => 'body',
'id' => 'body_'.rand(0, 999), 'id' => 'body_'.rand(0, 999),
'value' => $body, 'value' => $body,
]); ]);
echo ' echo '
</div> </div>
</div>'; </div>';

View File

@ -191,10 +191,10 @@ if (!empty($results) || !empty($results_settings)) {
echo ' echo '
</tbody> </tbody>
</table>'; </table>';
} }
} }
if (!empty($results_settings)) { if (!empty($results_settings)) {
echo' echo '
<table class="table table-bordered"> <table class="table table-bordered">
<thead> <thead>
<h3>Impostazioni mancanti</h3> <h3>Impostazioni mancanti</h3>
@ -205,7 +205,7 @@ if (!empty($results) || !empty($results_settings)) {
</thead> </thead>
<tbody>'; <tbody>';
foreach ($results_settings as $key => $setting) { foreach ($results_settings as $key => $setting) {
echo' echo '
<tr> <tr>
<td> <td>
'.$key.' '.$key.'
@ -215,13 +215,13 @@ if (!empty($results) || !empty($results_settings)) {
</td> </td>
</tr>'; </tr>';
} }
echo ' echo '
</tbody> </tbody>
</table>'; </table>';
} }
} else{ } else {
echo ' echo '
<div class="alert alert-info"> <div class="alert alert-info">
<i class="fa fa-info-circle"></i> '.tr('Il database non presenta problemi di integrità').'. <i class="fa fa-info-circle"></i> '.tr('Il database non presenta problemi di integrità').'.
</div>'; </div>';
} }

View File

@ -76,7 +76,7 @@ if (function_exists('customComponents')) {
} }
} }
//Fix per funzione base_path non trovata in fase di aggiornamento da versione < 2.4.19 // Fix per funzione base_path non trovata in fase di aggiornamento da versione < 2.4.19
if (!function_exists('base_path')) { if (!function_exists('base_path')) {
function base_path() function base_path()
{ {
@ -92,42 +92,42 @@ if (!function_exists('base_dir')) {
} }
// Aggiornamenti // Aggiornamenti
$alerts = []; $alerts = [];
if (!extension_loaded('zip')) { if (!extension_loaded('zip')) {
$alerts[tr('Estensione ZIP')] = tr('da abilitare'); $alerts[tr('Estensione ZIP')] = tr('da abilitare');
} }
$upload_max_filesize = ini_get('upload_max_filesize'); $upload_max_filesize = ini_get('upload_max_filesize');
$upload_max_filesize = str_replace(['k', 'M'], ['000', '000000'], $upload_max_filesize); $upload_max_filesize = str_replace(['k', 'M'], ['000', '000000'], $upload_max_filesize);
// Dimensione minima: 32MB // Dimensione minima: 32MB
if ($upload_max_filesize < 32000000) { if ($upload_max_filesize < 32000000) {
$alerts['upload_max_filesize'] = '32MB'; $alerts['upload_max_filesize'] = '32MB';
} }
$post_max_size = ini_get('post_max_size'); $post_max_size = ini_get('post_max_size');
$post_max_size = str_replace(['k', 'M'], ['000', '000000'], $post_max_size); $post_max_size = str_replace(['k', 'M'], ['000', '000000'], $post_max_size);
// Dimensione minima: 32MB // Dimensione minima: 32MB
if ($post_max_size < 32000000) { if ($post_max_size < 32000000) {
$alerts['post_max_size'] = '32MB'; $alerts['post_max_size'] = '32MB';
} }
if (!empty($alerts)) { if (!empty($alerts)) {
echo ' echo '
<div class="alert alert-info"> <div class="alert alert-info">
<p>'.tr('Devi modificare il seguenti parametri del file di configurazione PHP (_FILE_) per poter caricare gli aggiornamenti', [ <p>'.tr('Devi modificare il seguenti parametri del file di configurazione PHP (_FILE_) per poter caricare gli aggiornamenti', [
'_FILE_' => '<b>php.ini</b>', '_FILE_' => '<b>php.ini</b>',
]).':<ul>'; ]).':<ul>';
foreach ($alerts as $key => $value) { foreach ($alerts as $key => $value) {
echo '
<li><b>'.$key.'</b> = '.$value.'</li>';
}
echo ' echo '
<li><b>'.$key.'</b> = '.$value.'</li>';
}
echo '
</ul></p> </ul></p>
</div>'; </div>';
} }
echo ' echo '
<script> <script>
function update() { function update() {
if ($("#blob").val()) { if ($("#blob").val()) {
@ -175,8 +175,8 @@ function search(button) {
} else { } else {
let beta_warning = data.includes("beta") ? "<br><b>'.tr('Attenzione: la versione individuata è in fase sperimentale, e pertanto può presentare diversi bug e malfunzionamenti').'.</b>" : ""; let beta_warning = data.includes("beta") ? "<br><b>'.tr('Attenzione: la versione individuata è in fase sperimentale, e pertanto può presentare diversi bug e malfunzionamenti').'.</b>" : "";
$("#update-search").html("'.tr("E' stato individuato un nuovo aggiornamento").': " + data + "." + beta_warning + "<br>'.tr('Scaricalo ora: _LINK_', [ $("#update-search").html("'.tr("E' stato individuato un nuovo aggiornamento").': " + data + "." + beta_warning + "<br>'.tr('Scaricalo ora: _LINK_', [
'_LINK_' => "<a target='_blank' href='https://github.com/devcode-it/openstamanager/releases'>https://github.com/devcode-it/openstamanager/releases</a>", '_LINK_' => "<a target='_blank' href='https://github.com/devcode-it/openstamanager/releases'>https://github.com/devcode-it/openstamanager/releases</a>",
]).'"); ]).'");
} }
} }
}); });
@ -201,9 +201,9 @@ echo '
'; ';
if (!empty($custom) || !empty($tables)) { if (!empty($custom) || !empty($tables)) {
$disabled = 'disabled'; $disabled = 'disabled';
echo ' <input type="checkbox" id="aggiorna_custom" class="pull-left" style="margin-top:10px;" value="1" >&nbsp; echo ' <input type="checkbox" id="aggiorna_custom" class="pull-left" style="margin-top:10px;" value="1" >&nbsp;
<label for="aggiorna_custom" style="margin-top:7px;" >'.tr("Desidero comunque procedere all'aggiornamento").'.</label> <label for="aggiorna_custom" style="margin-top:7px;" >'.tr("Desidero comunque procedere all'aggiornamento").'.</label>
<script> <script>
$("#aggiorna_custom").change(function() { $("#aggiorna_custom").change(function() {
@ -214,7 +214,7 @@ echo '
} }
}); });
</script>'; </script>';
} }
echo ' echo '
<button type="button" class="btn btn-primary pull-right '.$disabled.'" id="aggiorna" onclick="update()"> <button type="button" class="btn btn-primary pull-right '.$disabled.'" id="aggiorna" onclick="update()">
@ -261,15 +261,15 @@ echo '
</h3> </h3>
</div> </div>
<div class="box-body" id="update-search">'; <div class="box-body" id="update-search">';
if (extension_loaded('curl')) { if (extension_loaded('curl')) {
echo ' <button type="button" class="btn btn-info btn-block" onclick="search(this)"> echo ' <button type="button" class="btn btn-info btn-block" onclick="search(this)">
<i class="fa fa-search"></i> '.tr('Ricerca').' <i class="fa fa-search"></i> '.tr('Ricerca').'
</button>'; </button>';
} else { } else {
echo ' <button type="button" class="btn btn-warning btn-block disabled" > echo ' <button type="button" class="btn btn-warning btn-block disabled" >
<i class="fa fa-warning"></i> '.tr('Estensione curl non supportata').'. <i class="fa fa-warning"></i> '.tr('Estensione curl non supportata').'.
</button>'; </button>';
} }
echo ' </div> echo ' </div>
</div> </div>

View File

@ -21,15 +21,13 @@ namespace Modules\Aggiornamenti;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use Hooks\CachedManager; use Hooks\CachedManager;
use Modules;
use Update;
/** /**
* Hook dedicato all'individuazione di nuove versioni del gestionale, pubblicate sulla repository ufficiale di GitHub. * Hook dedicato all'individuazione di nuove versioni del gestionale, pubblicate sulla repository ufficiale di GitHub.
*/ */
class UpdateHook extends CachedManager class UpdateHook extends CachedManager
{ {
protected static $client = null; protected static $client;
public function getCacheName() public function getCacheName()
{ {
@ -44,11 +42,11 @@ class UpdateHook extends CachedManager
public function response() public function response()
{ {
$update = $this->getCache()->content[0]; $update = $this->getCache()->content[0];
if ($update == Update::getVersion() || empty(setting('Attiva aggiornamenti'))) { if ($update == \Update::getVersion() || empty(setting('Attiva aggiornamenti'))) {
$update = null; $update = null;
} }
$module = Modules::get('Aggiornamenti'); $module = \Modules::get('Aggiornamenti');
$link = base_path().'/controller.php?id_module='.$module->id; $link = base_path().'/controller.php?id_module='.$module->id;
$message = tr("E' disponibile la versione _VERSION_ del gestionale", [ $message = tr("E' disponibile la versione _VERSION_ del gestionale", [
@ -75,7 +73,7 @@ class UpdateHook extends CachedManager
if (!$api['prerelease'] or setting('Abilita canale pre-release per aggiornamenti')) { if (!$api['prerelease'] or setting('Abilita canale pre-release per aggiornamenti')) {
$version[0] = ltrim($api['tag_name'], 'v'); $version[0] = ltrim($api['tag_name'], 'v');
$version[1] = !empty($api['prerelease']) ? 'beta' : 'stabile'; $version[1] = !empty($api['prerelease']) ? 'beta' : 'stabile';
$current = Update::getVersion(); $current = \Update::getVersion();
if (version_compare($current, $version[0]) < 0) { if (version_compare($current, $version[0]) < 0) {
return $version; return $version;

View File

@ -302,7 +302,7 @@ switch (post('op')) {
break; break;
// Informazioni sulla posizione della sede // Informazioni sulla posizione della sede
case 'posizione': case 'posizione':
$sede = $anagrafica->sedeLegale; $sede = $anagrafica->sedeLegale;
$sede->gaddress = post('gaddress'); $sede->gaddress = post('gaddress');
@ -315,7 +315,7 @@ switch (post('op')) {
case 'delete': case 'delete':
// Se l'anagrafica non è l'azienda principale, la disattivo // Se l'anagrafica non è l'azienda principale, la disattivo
if (!$anagrafica->isAzienda()) { if (!$anagrafica->isAzienda()) {
//$anagrafica->delete(); // $anagrafica->delete();
$dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id_record)); $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id_record));
// Se l'anagrafica è collegata ad un utente lo disabilito // Se l'anagrafica è collegata ad un utente lo disabilito

View File

@ -121,7 +121,7 @@ echo '
{[ "type": "text", "label": "'.tr('PEC').'", "name": "pec", "class": "email-mask", "placeholder":"pec@dominio.ext", "icon-before": "<i class=\'fa fa-envelope-o\'></i>" ]} {[ "type": "text", "label": "'.tr('PEC').'", "name": "pec", "class": "email-mask", "placeholder":"pec@dominio.ext", "icon-before": "<i class=\'fa fa-envelope-o\'></i>" ]}
</div>'; </div>';
$help_codice_destinatario = tr("Per impostare il codice specificare prima '<b>Tipologia</b>' e '<b>Nazione</b>' dell'anagrafica").':<br><br><ul><li>'.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'</li><li>'.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'</li><li>'.tr('Privato (B2C) - viene utilizzato il Codice Fiscale').'</li>'.'</ul>Se non si conosce il codice destinatario lasciare vuoto il campo. Verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\').'; $help_codice_destinatario = tr("Per impostare il codice specificare prima '<b>Tipologia</b>' e '<b>Nazione</b>' dell'anagrafica").':<br><br><ul><li>'.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'</li><li>'.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'</li><li>'.tr('Privato (B2C) - viene utilizzato il Codice Fiscale').'</li></ul>Se non si conosce il codice destinatario lasciare vuoto il campo. Verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\').';
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">

View File

@ -34,7 +34,7 @@ switch ($resource) {
} }
break; break;
// Elenco sedi con <option> // Elenco sedi con <option>
case 'get_sedi_select': case 'get_sedi_select':
$idanagrafica = get('idanagrafica'); $idanagrafica = get('idanagrafica');
$q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ".Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY id'; $q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ".Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY id';
@ -49,7 +49,7 @@ switch ($resource) {
} }
break; break;
// Elenco e-mail // Elenco e-mail
case 'get_email': case 'get_email':
$id_anagrafica = get('id_anagrafica'); $id_anagrafica = get('id_anagrafica');
@ -70,16 +70,16 @@ switch ($resource) {
]; ];
} }
// Tutti le sedi per questo cliente // Tutti le sedi per questo cliente
$q = "SELECT DISTINCT(email), id AS idanagrafica, nomesede AS ragione_sociale FROM an_sedi WHERE email != '' ".$where.' ORDER BY id'; $q = "SELECT DISTINCT(email), id AS idanagrafica, nomesede AS ragione_sociale FROM an_sedi WHERE email != '' ".$where.' ORDER BY id';
$rs = $dbo->fetchArray($q); $rs = $dbo->fetchArray($q);
foreach ($rs as $r) { foreach ($rs as $r) {
$results[] = [ $results[] = [
'value' => $r['email'], 'value' => $r['email'],
'label' => $r['ragione_sociale'].' <'.$r['email'].'>', 'label' => $r['ragione_sociale'].' <'.$r['email'].'>',
]; ];
} }
// Tutti gli agenti del cliente // Tutti gli agenti del cliente
$q = "SELECT DISTINCT(email), ragione_sociale, idanagrafica FROM an_anagrafiche WHERE email != '' AND (idanagrafica=(SELECT idagente FROM an_anagrafiche AS agenti WHERE 1=1 ".$where.') OR idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE 1=1 '.$where.'))'; $q = "SELECT DISTINCT(email), ragione_sociale, idanagrafica FROM an_anagrafiche WHERE email != '' AND (idanagrafica=(SELECT idagente FROM an_anagrafiche AS agenti WHERE 1=1 ".$where.') OR idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE 1=1 '.$where.'))';

View File

@ -103,7 +103,7 @@ foreach ($fields as $name => $value) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"'; $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
} }
//$query .= Modules::getAdditionalsQuery('Anagrafiche'); // $query .= Modules::getAdditionalsQuery('Anagrafiche');
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);

View File

@ -149,10 +149,10 @@ switch ($resource) {
break; break;
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
* - idanagrafica * - idanagrafica
*/ */
case 'agenti': case 'agenti':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
@ -204,7 +204,7 @@ switch ($resource) {
if (setting('Permetti inserimento sessioni degli altri tecnici')) { if (setting('Permetti inserimento sessioni degli altri tecnici')) {
} else { } else {
//come tecnico posso aprire attività solo a mio nome // come tecnico posso aprire attività solo a mio nome
$user = Auth::user(); $user = Auth::user();
if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) { if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) {
$where[] = 'an_anagrafiche.idanagrafica='.$user['idanagrafica']; $where[] = 'an_anagrafiche.idanagrafica='.$user['idanagrafica'];
@ -272,7 +272,7 @@ switch ($resource) {
break; break;
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente // Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
case 'anagrafiche': case 'anagrafiche':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY `optgroup` ASC, ragione_sociale ASC"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY `optgroup` ASC, ragione_sociale ASC";
@ -319,10 +319,10 @@ switch ($resource) {
} }
break; break;
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
* - idanagrafica * - idanagrafica
*/ */
case 'sedi': case 'sedi':
if (isset($superselect['idanagrafica'])) { if (isset($superselect['idanagrafica'])) {
$query = " $query = "
@ -369,7 +369,7 @@ switch ($resource) {
} }
$where[] = 'idanagrafica='.prepare($id_azienda); $where[] = 'idanagrafica='.prepare($id_azienda);
//admin o utente senza una sede prefissata, avrà accesso a tutte le sedi // admin o utente senza una sede prefissata, avrà accesso a tutte le sedi
if (!empty($user->sedi) and !$user->is_admin) { if (!empty($user->sedi) and !$user->is_admin) {
$where[] = 'id IN('.implode(',', $user->sedi).')'; $where[] = 'id IN('.implode(',', $user->sedi).')';
} }
@ -381,10 +381,10 @@ switch ($resource) {
break; break;
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
* - idanagrafica * - idanagrafica
*/ */
case 'referenti': case 'referenti':
if (isset($superselect['idanagrafica'])) { if (isset($superselect['idanagrafica'])) {
$query = 'SELECT an_referenti.id, an_referenti.nome AS descrizione, an_mansioni.nome AS optgroup FROM an_referenti LEFT JOIN an_mansioni ON an_referenti.idmansione=an_mansioni.id |where| ORDER BY optgroup, an_referenti.nome'; $query = 'SELECT an_referenti.id, an_referenti.nome AS descrizione, an_mansioni.nome AS optgroup FROM an_referenti LEFT JOIN an_mansioni ON an_referenti.idmansione=an_mansioni.id |where| ORDER BY optgroup, an_referenti.nome';
@ -485,14 +485,14 @@ switch ($resource) {
break; break;
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
* - idanagrafica * - idanagrafica
*/ */
case 'dichiarazioni_intento': case 'dichiarazioni_intento':
if (isset($superselect['idanagrafica']) && isset($superselect['data'])) { if (isset($superselect['idanagrafica']) && isset($superselect['data'])) {
//$query = "SELECT id, CONCAT('N. prot. ', numero_protocollo, ' (periodo dal ', DATE_FORMAT(data_inizio, '%d/%m/%Y'), ' al ' ,DATE_FORMAT(data_fine, '%d/%m/%Y'),') (utilizzati ',REPLACE(REPLACE(REPLACE(FORMAT(SUM(totale),2), ',', '#'), '.', ','), '#', '.'), ' su ' , REPLACE(REPLACE(REPLACE(FORMAT(SUM(massimale),2), ',', '#'), '.', ','), '#', '.'), ' &euro;)' ) AS descrizione, data_inizio, data_fine FROM co_dichiarazioni_intento |where| ORDER BY `data`, `id`"; // $query = "SELECT id, CONCAT('N. prot. ', numero_protocollo, ' (periodo dal ', DATE_FORMAT(data_inizio, '%d/%m/%Y'), ' al ' ,DATE_FORMAT(data_fine, '%d/%m/%Y'),') (utilizzati ',REPLACE(REPLACE(REPLACE(FORMAT(SUM(totale),2), ',', '#'), '.', ','), '#', '.'), ' su ' , REPLACE(REPLACE(REPLACE(FORMAT(SUM(massimale),2), ',', '#'), '.', ','), '#', '.'), ' &euro;)' ) AS descrizione, data_inizio, data_fine FROM co_dichiarazioni_intento |where| ORDER BY `data`, `id`";
$query = 'SELECT id, numero_protocollo, data_inizio, data_fine, massimale, totale FROM co_dichiarazioni_intento |where| ORDER BY data'; $query = 'SELECT id, numero_protocollo, data_inizio, data_fine, massimale, totale FROM co_dichiarazioni_intento |where| ORDER BY data';
@ -500,10 +500,10 @@ switch ($resource) {
$filter[] = 'id='.prepare($element); $filter[] = 'id='.prepare($element);
} }
//$where[] = '( '.prepare($superselect['data']).' BETWEEN data_inizio AND data_fine)'; // $where[] = '( '.prepare($superselect['data']).' BETWEEN data_inizio AND data_fine)';
//$where[] = 'data_inizio < NOW()'; // $where[] = 'data_inizio < NOW()';
//$where[] = 'data_fine > NOW()'; // $where[] = 'data_fine > NOW()';
if (empty($filter)) { if (empty($filter)) {
$where[] = 'co_dichiarazioni_intento.deleted_at IS NULL'; $where[] = 'co_dichiarazioni_intento.deleted_at IS NULL';

View File

@ -26,7 +26,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
</button> </button>
<ul class="dropdown-menu dropdown-menu-right">'; <ul class="dropdown-menu dropdown-menu-right">';
//Aggiunta utente per i tecnici // Aggiunta utente per i tecnici
if (in_array($id_tecnico, $tipi_anagrafica)) { if (in_array($id_tecnico, $tipi_anagrafica)) {
echo ' echo '
<li><a data-toggle="modal" data-title="'.tr('Aggiungi utente').'" data-href="modules/utenti/user.php?id_module='.Modules::get('Utenti e permessi')['id'].'&id_record='.$dbo->fetchOne('SELECT id FROM zz_groups WHERE nome=\'Tecnici\'')['id'].'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-user"></i>'.tr('Nuovo utente').' <li><a data-toggle="modal" data-title="'.tr('Aggiungi utente').'" data-href="modules/utenti/user.php?id_module='.Modules::get('Utenti e permessi')['id'].'&id_record='.$dbo->fetchOne('SELECT id FROM zz_groups WHERE nome=\'Tecnici\'')['id'].'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-user"></i>'.tr('Nuovo utente').'
@ -77,7 +77,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
} }
if (in_array($id_agente, $tipi_anagrafica)) { if (in_array($id_agente, $tipi_anagrafica)) {
//Aggiunta liquidazione provvigioni per agente // Aggiunta liquidazione provvigioni per agente
echo ' echo '
<button type="button" class="btn btn-primary" data-title="'.tr('Liquida Provvigioni').'" data-href="'.base_path().'/modules/anagrafiche/liquida_provvigioni.php?nome_stampa=Provvigioni&id_record='.$id_record.'" ><i class="fa fa-print"></i>'.tr(' Liquida Provvigioni').'</button>'; <button type="button" class="btn btn-primary" data-title="'.tr('Liquida Provvigioni').'" data-href="'.base_path().'/modules/anagrafiche/liquida_provvigioni.php?nome_stampa=Provvigioni&id_record='.$id_record.'" ><i class="fa fa-print"></i>'.tr(' Liquida Provvigioni').'</button>';
} }

View File

@ -115,7 +115,7 @@ if (sizeof($problemi_anagrafica) > 0) {
<!-- RIGA PER LE ANAGRAFICHE CON TIPOLOGIA 'PRIVATO' --> <!-- RIGA PER LE ANAGRAFICHE CON TIPOLOGIA 'PRIVATO' -->
<?php if ($record['tipo'] == 'Privato') { <?php if ($record['tipo'] == 'Privato') {
?> ?>
<div class="row"> <div class="row">
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]} {[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]}
@ -130,7 +130,7 @@ if (sizeof($problemi_anagrafica) > 0) {
</div> </div>
</div> </div>
<?php <?php
} ?> } ?>
<div class="row"> <div class="row">
<div class="col-md-2"> <div class="col-md-2">
@ -139,18 +139,18 @@ if (sizeof($problemi_anagrafica) > 0) {
<div class="col-md-2"> <div class="col-md-2">
<?php <?php
$help_codice_destinatario = tr("Per impostare il codice specificare prima il campo '_NATION_' dell'anagrafica", [ $help_codice_destinatario = tr("Per impostare il codice specificare prima il campo '_NATION_' dell'anagrafica", [
'_NATION_' => '<b>Nazione</b>', '_NATION_' => '<b>Nazione</b>',
]).':<br><br><ul> ]).':<br><br><ul>
<li>'.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'</li> <li>'.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'</li>
<li>'.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'</li> <li>'.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'</li>
<li>'.tr('Privato (B2C) - viene utilizzato il Codice Fiscale').'</li></ul> <li>'.tr('Privato (B2C) - viene utilizzato il Codice Fiscale').'</li></ul>
'.tr('Se non si conosce il codice destinatario lasciare vuoto il campo, e verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\')').'.'; '.tr('Se non si conosce il codice destinatario lasciare vuoto il campo, e verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\')').'.';
if (in_array($id_azienda, $tipi_anagrafica)) { if (in_array($id_azienda, $tipi_anagrafica)) {
$help_codice_destinatario .= ' <b>'.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI)").'.</b>'; $help_codice_destinatario .= ' <b>'.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI)").'.</b>';
} }
?> ?>
{[ "type": "text", "label": "<?php echo ($record['tipo'] == 'Ente pubblico') ? tr('Codice unico ufficio') : tr('Codice destinatario'); ?>", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": <?php echo ($record['tipo'] == 'Ente pubblico') ? '6' : '7'; ?>, "help": "<?php echo tr($help_codice_destinatario); ?>", "readonly": "<?php echo intval($nazione_anagrafica ? !(($nazione_anagrafica->iso2 === 'IT') || ($nazione_anagrafica->iso2 === 'SM')) : 0); ?>" ]} {[ "type": "text", "label": "<?php echo ($record['tipo'] == 'Ente pubblico') ? tr('Codice unico ufficio') : tr('Codice destinatario'); ?>", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": <?php echo ($record['tipo'] == 'Ente pubblico') ? '6' : '7'; ?>, "help": "<?php echo tr($help_codice_destinatario); ?>", "readonly": "<?php echo intval($nazione_anagrafica ? !(($nazione_anagrafica->iso2 === 'IT') || ($nazione_anagrafica->iso2 === 'SM')) : 0); ?>" ]}
</div> </div>
@ -243,10 +243,10 @@ if (sizeof($problemi_anagrafica) > 0) {
<?php <?php
$sede_cliente = $anagrafica->sedeLegale; $sede_cliente = $anagrafica->sedeLegale;
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$sede_azienda = $anagrafica_azienda->sedeLegale; $sede_azienda = $anagrafica_azienda->sedeLegale;
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
@ -254,48 +254,48 @@ if (sizeof($problemi_anagrafica) > 0) {
</div> </div>
<div class="panel-body">'; <div class="panel-body">';
// Area caricamento mappa // Area caricamento mappa
echo ' echo '
<div id="map-edit" style="width: 100%;"></div> <div id="map-edit" style="width: 100%;"></div>
<div class="clearfix"></div> <div class="clearfix"></div>
<br>'; <br>';
if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) { if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
// Modifica manuale delle informazioni // Modifica manuale delle informazioni
echo ' echo '
<a class="btn btn-info btn-block" onclick="modificaPosizione()"> <a class="btn btn-info btn-block" onclick="modificaPosizione()">
<i class="fa fa-map"></i> '.tr('Aggiorna posizione').' <i class="fa fa-map"></i> '.tr('Aggiorna posizione').'
</a>'; </a>';
} else { } else {
// Definizione manuale delle informazioni // Definizione manuale delle informazioni
echo ' echo '
<a class="btn btn-primary btn-block" onclick="modificaPosizione()"> <a class="btn btn-primary btn-block" onclick="modificaPosizione()">
<i class="fa fa-map"></i> '.tr('Definisci posizione').' <i class="fa fa-map"></i> '.tr('Definisci posizione').'
</a>'; </a>';
} }
// Navigazione diretta verso l'indirizzo // Navigazione diretta verso l'indirizzo
echo ' echo '
<a class="btn btn-info btn-block '.((empty($sede_cliente->lat) && empty($sede_cliente->lng)) ? 'disabled' : '').'" onclick="$(\'#map-edit\').height(235); caricaMappa(); $(this).hide();"> <a class="btn btn-info btn-block '.((empty($sede_cliente->lat) && empty($sede_cliente->lng)) ? 'disabled' : '').'" onclick="$(\'#map-edit\').height(235); caricaMappa(); $(this).hide();">
<i class="fa fa-compass"></i> '.tr('Carica mappa').' <i class="fa fa-compass"></i> '.tr('Carica mappa').'
</a>'; </a>';
// Navigazione diretta verso l'indirizzo // Navigazione diretta verso l'indirizzo
echo ' echo '
<a class="btn btn-info btn-block '.(($anagrafica->isAzienda() || (empty($sede_cliente->lat) || empty($sede_cliente->lng)) || (empty($sede_azienda->lat) || empty($sede_azienda->lng))) ? 'disabled' : '').'" onclick="calcolaPercorso()"> <a class="btn btn-info btn-block '.(($anagrafica->isAzienda() || (empty($sede_cliente->lat) || empty($sede_cliente->lng)) || (empty($sede_azienda->lat) || empty($sede_azienda->lng))) ? 'disabled' : '').'" onclick="calcolaPercorso()">
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').' <i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
'.((!empty($sede_cliente->lat) && !empty($sede_azienda->lat)) ? tr('(GPS)') : '').' '.((!empty($sede_cliente->lat) && !empty($sede_azienda->lat)) ? tr('(GPS)') : '').'
</a>'; </a>';
// Ricerca diretta su Mappa // Ricerca diretta su Mappa
echo ' echo '
<a class="btn btn-info btn-block" onclick="cercaOpenStreetMap()"> <a class="btn btn-info btn-block" onclick="cercaOpenStreetMap()">
<i class="fa fa-map-marker"></i> '.tr('Cerca su Mappa').' <i class="fa fa-map-marker"></i> '.tr('Cerca su Mappa').'
'.((!empty($sede_cliente->lat)) ? tr(' (GPS)') : '').' '.((!empty($sede_cliente->lat)) ? tr(' (GPS)') : '').'
</a>'; </a>';
echo ' echo '
</div> </div>
</div> </div>
</div> </div>
@ -423,8 +423,8 @@ if (sizeof($problemi_anagrafica) > 0) {
</script>'; </script>';
if ($is_cliente or $is_fornitore or $is_tecnico) { if ($is_cliente or $is_fornitore or $is_tecnico) {
echo ' echo '
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
@ -463,13 +463,13 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>'; </div>';
$banche = Banca::where('id_anagrafica', $anagrafica->id)->get(); $banche = Banca::where('id_anagrafica', $anagrafica->id)->get();
$banca_predefinita = $banche->first(function ($item) { $banca_predefinita = $banche->first(function ($item) {
return !empty($item['predefined']); return !empty($item['predefined']);
}); });
$modulo_banche = Modules::get('Banche'); $modulo_banche = Modules::get('Banche');
if (!$banche->isEmpty()) { if (!$banche->isEmpty()) {
echo ' echo '
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<a href="'.base_path().'/editor.php?id_module='.$modulo_banche['id'].'&id_record='.$banca_predefinita->id.'"> <a href="'.base_path().'/editor.php?id_module='.$modulo_banche['id'].'&id_record='.$banca_predefinita->id.'">
@ -483,14 +483,14 @@ if (sizeof($problemi_anagrafica) > 0) {
</a> </a>
</div> </div>
</div>'; </div>';
} else { } else {
echo ' echo '
<div class="alert alert-info"> <div class="alert alert-info">
'.tr('Non sono presenti banche per l\'anagrafica').'... '.Modules::link('Banche', null, tr('Creane una')).' '.tr('Non sono presenti banche per l\'anagrafica').'... '.Modules::link('Banche', null, tr('Creane una')).'
</div>'; </div>';
} }
echo ' echo '
</div> </div>
<div class="tab-pane '.(!$is_cliente ? 'hide' : 'active').'" id="cliente"> <div class="tab-pane '.(!$is_cliente ? 'hide' : 'active').'" id="cliente">
@ -553,26 +553,26 @@ if (sizeof($problemi_anagrafica) > 0) {
{[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento_default", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$id_record.', "data": "'.Carbon::now().'"},"value": "$id_dichiarazione_intento_default$" ]} {[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento_default", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$id_record.', "data": "'.Carbon::now().'"},"value": "$id_dichiarazione_intento_default$" ]}
</div>'; </div>';
// Collegamento con il conto // Collegamento con il conto
$conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione AS descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_cliente'])); $conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione AS descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_cliente']));
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
<p><b>'.tr('Piano dei conti cliente').'</b></p>'; <p><b>'.tr('Piano dei conti cliente').'</b></p>';
if (!empty($conto['numero_conto'])) { if (!empty($conto['numero_conto'])) {
$piano_dei_conti_cliente = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione']; $piano_dei_conti_cliente = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'];
echo Modules::link('Piano dei conti', null, $piano_dei_conti_cliente, null, '', 1, 'movimenti-'.$conto['id']); echo Modules::link('Piano dei conti', null, $piano_dei_conti_cliente, null, '', 1, 'movimenti-'.$conto['id']);
} else { } else {
$piano_dei_conti_cliente = tr('Nessuno'); $piano_dei_conti_cliente = tr('Nessuno');
} }
echo ' echo '
</div> </div>
</div> </div>
</div>'; </div>';
echo ' echo '
<div class="tab-pane '.(!$is_fornitore ? 'hide' : (!$is_cliente ? 'active' : '')).'" id="fornitore"> <div class="tab-pane '.(!$is_fornitore ? 'hide' : (!$is_cliente ? 'active' : '')).'" id="fornitore">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
@ -599,26 +599,26 @@ if (sizeof($problemi_anagrafica) > 0) {
{[ "type": "select", "label": "'.tr('Piano di sconto/magg. su articoli').'", "name": "id_piano_sconto_acquisti", "values": "query=SELECT id, nome AS descrizione FROM mg_piani_sconto ORDER BY nome ASC", "value": "$id_piano_sconto_acquisti$" ]} {[ "type": "select", "label": "'.tr('Piano di sconto/magg. su articoli').'", "name": "id_piano_sconto_acquisti", "values": "query=SELECT id, nome AS descrizione FROM mg_piani_sconto ORDER BY nome ASC", "value": "$id_piano_sconto_acquisti$" ]}
</div>'; </div>';
// Collegamento con il conto // Collegamento con il conto
$conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione AS descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_fornitore'])); $conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione AS descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_fornitore']));
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
<p><b>'.tr('Piano dei conti fornitore').'</b></p>'; <p><b>'.tr('Piano dei conti fornitore').'</b></p>';
if (!empty($conto['numero_conto'])) { if (!empty($conto['numero_conto'])) {
$piano_dei_conti_fornitore = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione']; $piano_dei_conti_fornitore = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'];
echo Modules::link('Piano dei conti', null, $piano_dei_conti_fornitore, null, '', 1, 'movimenti-'.$conto['id']); echo Modules::link('Piano dei conti', null, $piano_dei_conti_fornitore, null, '', 1, 'movimenti-'.$conto['id']);
} else { } else {
$piano_dei_conti_fornitore = tr('Nessuno'); $piano_dei_conti_fornitore = tr('Nessuno');
} }
echo ' echo '
</div> </div>
</div> </div>
</div>'; </div>';
echo ' echo '
<div class="tab-pane'.(!$is_cliente && !$is_fornitore && $is_tecnico ? ' active' : '').''.(!$is_tecnico ? ' hide' : '').'" id="tecnico"> <div class="tab-pane'.(!$is_cliente && !$is_fornitore && $is_tecnico ? ' active' : '').''.(!$is_tecnico ? ' hide' : '').'" id="tecnico">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
@ -627,13 +627,13 @@ if (sizeof($problemi_anagrafica) > 0) {
</div> </div>
</div>'; </div>';
echo ' echo '
</div> </div>
</div> </div>
</div> </div>
</div>'; </div>';
} }
?> ?>
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
@ -648,22 +648,22 @@ if (sizeof($problemi_anagrafica) > 0) {
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Codice R.E.A.').' <small>('.tr('provincia-C.C.I.A.A.').')</small>'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask text-uppercase", "help": "<?php echo tr('Esempio: _PATTERN_', [ {[ "type": "text", "label": "<?php echo tr('Codice R.E.A.').' <small>('.tr('provincia-C.C.I.A.A.').')</small>'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask text-uppercase", "help": "<?php echo tr('Esempio: _PATTERN_', [
'_PATTERN_' => 'RM-123456', '_PATTERN_' => 'RM-123456',
]); ?>" ]} ]); ?>" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Riferimento Amministrazione'); ?>", "name": "riferimento_amministrazione", "value": "$riferimento_amministrazione$", "maxlength": "20" ]} {[ "type": "text", "label": "<?php echo tr('Riferimento Amministrazione'); ?>", "name": "riferimento_amministrazione", "value": "$riferimento_amministrazione$", "maxlength": "20" ]}
</div> </div>
<?php <?php
if ($is_agente) { if ($is_agente) {
?> ?>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Provvigione predefinita'); ?>", "name": "provvigione_default", "value": "$provvigione_default$", "icon-after": "%" ]} {[ "type": "number", "label": "<?php echo tr('Provvigione predefinita'); ?>", "name": "provvigione_default", "value": "$provvigione_default$", "icon-after": "%" ]}
</div> </div>
<?php <?php
} }
?> ?>
</div> </div>
<div class="row"> <div class="row">
@ -706,11 +706,11 @@ if (sizeof($problemi_anagrafica) > 0) {
<div class="col-md-12"> <div class="col-md-12">
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = 'Azienda' AND deleted_at IS NULL) ORDER BY descrizione", "value": "$idtipianagrafica$" ]} {[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = 'Azienda' AND deleted_at IS NULL) ORDER BY descrizione", "value": "$idtipianagrafica$" ]}
<?php <?php
if (in_array($id_azienda, $tipi_anagrafica)) { if (in_array($id_azienda, $tipi_anagrafica)) {
echo ' echo '
<p class="badge badge-info">'.tr('Questa anagrafica è di tipo "Azienda"').'.</p>'; <p class="badge badge-info">'.tr('Questa anagrafica è di tipo "Azienda"').'.</p>';
} }
?> ?>
</div> </div>
</div> </div>
@ -779,8 +779,8 @@ if (!empty($elementi)) {
'_DELETED_AT_' => (!empty($elemento['deleted_at']) ? tr('Eliminato il:').' '.Translator::dateToLocale($elemento['deleted_at']) : ''), '_DELETED_AT_' => (!empty($elemento['deleted_at']) ? tr('Eliminato il:').' '.Translator::dateToLocale($elemento['deleted_at']) : ''),
]); ]);
//se non è un preventivo è un ddt o una fattura // se non è un preventivo è un ddt o una fattura
//se non è un ddt è una fattura. // se non è un ddt è una fattura.
if (in_array($elemento['tipo_documento'], ['Utente'])) { if (in_array($elemento['tipo_documento'], ['Utente'])) {
$modulo = 'Utenti e permessi'; $modulo = 'Utenti e permessi';
} elseif (in_array($elemento['tipo_documento'], ['Intervento'])) { } elseif (in_array($elemento['tipo_documento'], ['Intervento'])) {

View File

@ -40,7 +40,7 @@ echo '
<form action="" method="post" id="form" > <form action="" method="post" id="form" >
<div class="row">'; <div class="row">';
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "date", "label": "'.tr('Data inizio').'", "required": "1", "name": "date_start", "value": "'.$_SESSION['period_start'].'" ]} {[ "type": "date", "label": "'.tr('Data inizio').'", "required": "1", "name": "date_start", "value": "'.$_SESSION['period_start'].'" ]}
</div> </div>
@ -67,7 +67,7 @@ echo '
</div> </div>
'; ';
echo ' echo '
<div class="col-md-4 pull-right"> <div class="col-md-4 pull-right">
<p style="line-height:14px;">&nbsp;</p> <p style="line-height:14px;">&nbsp;</p>
<button type="button" class="btn btn-primary btn-block" onclick="if($(\'#form\').parsley().validate()) { return avvia_stampa(); }"> <button type="button" class="btn btn-primary btn-block" onclick="if($(\'#form\').parsley().validate()) { return avvia_stampa(); }">
@ -108,9 +108,9 @@ echo '
input("date_start").disable(); input("date_start").disable();
input("date_end").disable(); input("date_end").disable();
}'; }';
if ($nome_stampa != 'Liquidazione IVA') { if ($nome_stampa != 'Liquidazione IVA') {
echo 'eseguiControlli();'; echo 'eseguiControlli();';
} }
echo ' echo '
}); });
</script>'; </script>';

View File

@ -22,7 +22,7 @@ use Modules\Anagrafiche\Anagrafica;
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
//Allegati dell'anagrafica // Allegati dell'anagrafica
echo ' echo '
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
@ -41,7 +41,7 @@ if (empty($_GET['visualizza_allegati'])) {
</div> </div>
</div>'; </div>';
} else { } else {
//Controllo i permessi dei modulo per la visualizzazione degli allegati // Controllo i permessi dei modulo per la visualizzazione degli allegati
$rs = $dbo->table('zz_permissions')->where('idgruppo', $user->idgruppo)->get(); $rs = $dbo->table('zz_permissions')->where('idgruppo', $user->idgruppo)->get();
$permessi = []; $permessi = [];
$documenti[] = 0; $documenti[] = 0;
@ -58,25 +58,25 @@ if (empty($_GET['visualizza_allegati'])) {
]; ];
} }
//Interventi dell'anagrafica // Interventi dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Interventi')['id'], $permessi)) { if ($user->is_admin || in_array(Modules::get('Interventi')['id'], $permessi)) {
$interventi = $dbo->fetcharray('SELECT '.prepare(Modules::get('Interventi')['id'])." AS id_module, id AS id_record, CONCAT('Intervento num. ',codice,' del ',DATE_FORMAT(data_richiesta,'%d/%m/%Y')) AS descrizione FROM in_interventi WHERE idanagrafica=".prepare($id_record)); $interventi = $dbo->fetcharray('SELECT '.prepare(Modules::get('Interventi')['id'])." AS id_module, id AS id_record, CONCAT('Intervento num. ',codice,' del ',DATE_FORMAT(data_richiesta,'%d/%m/%Y')) AS descrizione FROM in_interventi WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $interventi); $documenti = array_merge($documenti, $interventi);
} }
//Preventivi dell'anagrafica // Preventivi dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Preventivi')['id'], $permessi)) { if ($user->is_admin || in_array(Modules::get('Preventivi')['id'], $permessi)) {
$preventivi = $dbo->fetcharray('SELECT '.prepare(Modules::get('Preventivi')['id'])." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_preventivi WHERE idanagrafica=".prepare($id_record)); $preventivi = $dbo->fetcharray('SELECT '.prepare(Modules::get('Preventivi')['id'])." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_preventivi WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $preventivi); $documenti = array_merge($documenti, $preventivi);
} }
//Contratti dell'anagrafica // Contratti dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Contratti')['id'], $permessi)) { if ($user->is_admin || in_array(Modules::get('Contratti')['id'], $permessi)) {
$contratti = $dbo->fetcharray('SELECT '.prepare(Modules::get('Contratti')['id'])." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_contratti WHERE idanagrafica=".prepare($id_record)); $contratti = $dbo->fetcharray('SELECT '.prepare(Modules::get('Contratti')['id'])." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_contratti WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $contratti); $documenti = array_merge($documenti, $contratti);
} }
//DDT dell'anagrafica // DDT dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Ddt di vendita')['id'], $permessi)) { if ($user->is_admin || in_array(Modules::get('Ddt di vendita')['id'], $permessi)) {
$ddt_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Ddt di vendita')['id'])." AS id_module, id AS id_record, CONCAT('Ddt di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record)); $ddt_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Ddt di vendita')['id'])." AS id_module, id AS id_record, CONCAT('Ddt di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ddt_vendita); $documenti = array_merge($documenti, $ddt_vendita);
@ -87,7 +87,7 @@ if (empty($_GET['visualizza_allegati'])) {
$documenti = array_merge($documenti, $ddt_acquisto); $documenti = array_merge($documenti, $ddt_acquisto);
} }
//Fatture dell'anagrafica // Fatture dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Fatture di vendita')['id'], $permessi)) { if ($user->is_admin || in_array(Modules::get('Fatture di vendita')['id'], $permessi)) {
$fatture_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Fatture di vendita')['id'])." AS id_module, id AS id_record, CONCAT('Fattura di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data_registrazione,'%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idanagrafica=".prepare($id_record)); $fatture_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Fatture di vendita')['id'])." AS id_module, id AS id_record, CONCAT('Fattura di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data_registrazione,'%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $fatture_vendita); $documenti = array_merge($documenti, $fatture_vendita);
@ -98,7 +98,7 @@ if (empty($_GET['visualizza_allegati'])) {
$documenti = array_merge($documenti, $fatture_acquisto); $documenti = array_merge($documenti, $fatture_acquisto);
} }
//Ordini dell'anagrafica // Ordini dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Ordini cliente')['id'], $permessi)) { if ($user->is_admin || in_array(Modules::get('Ordini cliente')['id'], $permessi)) {
$ordini_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Ordini cliente')['id'])." AS id_module, id AS id_record, CONCAT('Ordine cliente num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM or_ordini WHERE idanagrafica=".prepare($id_record)); $ordini_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Ordini cliente')['id'])." AS id_module, id AS id_record, CONCAT('Ordine cliente num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM or_ordini WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ordini_vendita); $documenti = array_merge($documenti, $ordini_vendita);

View File

@ -30,7 +30,6 @@ use Modules\Ordini\Ordine;
use Modules\Preventivi\Preventivo; use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione; use Modules\TipiIntervento\Tipo as TipoSessione;
use Plugins\DichiarazioniIntento\Dichiarazione; use Plugins\DichiarazioniIntento\Dichiarazione;
use Settings;
use Traits\RecordTrait; use Traits\RecordTrait;
use Util\Generator; use Util\Generator;
@ -100,7 +99,7 @@ class Anagrafica extends Model
public static function fixAzienda(Anagrafica $anagrafica) public static function fixAzienda(Anagrafica $anagrafica)
{ {
Settings::setValue('Azienda predefinita', $anagrafica->id); \Settings::setValue('Azienda predefinita', $anagrafica->id);
} }
public static function fixCliente(Anagrafica $anagrafica) public static function fixCliente(Anagrafica $anagrafica)

View File

@ -21,12 +21,12 @@ use Modules\Anagrafiche\Anagrafica;
$anagrafica = Anagrafica::find($id_record); $anagrafica = Anagrafica::find($id_record);
//cliente // cliente
if ($anagrafica->idconto_cliente != '') { if ($anagrafica->idconto_cliente != '') {
$conto = $anagrafica->idconto_cliente; $conto = $anagrafica->idconto_cliente;
$conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione']; $conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione'];
} }
//Fornitore // Fornitore
elseif ($anagrafica->idconto_fornitore != '') { elseif ($anagrafica->idconto_fornitore != '') {
$conto = $anagrafica->idconto_fornitore; $conto = $anagrafica->idconto_fornitore;
$conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione']; $conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione'];

View File

@ -31,10 +31,10 @@ switch (post('op')) {
$articolo->restore(); $articolo->restore();
flash()->info(tr('Articolo ripristinato correttamente!')); flash()->info(tr('Articolo ripristinato correttamente!'));
// Aggiunta articolo // Aggiunta articolo
// no break // no break
case 'add': case 'add':
//Se non specifico il codice articolo lo imposto uguale all'id della riga // Se non specifico il codice articolo lo imposto uguale all'id della riga
if (empty(post('codice'))) { if (empty(post('codice'))) {
$codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1; $codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1;
} else { } else {
@ -106,7 +106,7 @@ switch (post('op')) {
break; break;
// Modifica articolo // Modifica articolo
case 'update': case 'update':
$qta = post('qta'); $qta = post('qta');
@ -185,7 +185,7 @@ switch (post('op')) {
// Se non è presente un componente, copia i valori dal file di origine // Se non è presente un componente, copia i valori dal file di origine
$campi_componente = []; $campi_componente = [];
foreach ($contenuto_componente as $key => $value) { foreach ($contenuto_componente as $key => $value) {
//Fix per nomi con spazi che vengono tradotti con "_" (es. Data_di_installazione) // Fix per nomi con spazi che vengono tradotti con "_" (es. Data_di_installazione)
$key = preg_replace('/\s+/', '_', $key); $key = preg_replace('/\s+/', '_', $key);
$valore = $contenuto_precedente_esistente ? filter($key) : $value['valore']; $valore = $contenuto_precedente_esistente ? filter($key) : $value['valore'];
@ -241,11 +241,11 @@ switch (post('op')) {
break; break;
// Duplica articolo // Duplica articolo
case 'copy': case 'copy':
$new = $articolo->replicate(); $new = $articolo->replicate();
//Se non specifico il codice articolo lo imposto uguale all'id della riga // Se non specifico il codice articolo lo imposto uguale all'id della riga
if (empty(post('codice'))) { if (empty(post('codice'))) {
$codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1; $codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1;
} else { } else {
@ -277,9 +277,9 @@ switch (post('op')) {
flash()->info(tr('Articolo duplicato correttamente!')); flash()->info(tr('Articolo duplicato correttamente!'));
break; break;
// Generazione seriali in sequenza // Generazione seriali in sequenza
case 'generate_serials': case 'generate_serials':
// Seriali // Seriali
$serial_start = post('serial_start'); $serial_start = post('serial_start');
@ -297,7 +297,7 @@ switch (post('op')) {
// Combinazione di seriali // Combinazione di seriali
$serials = []; $serials = [];
for ($s = 0; $s < $totale; ++$s) { for ($s = 0; $s < $totale; ++$s) {
$serial = $prefix.(str_pad($numero_start + $s, $pad_length, '0', STR_PAD_LEFT)); $serial = $prefix.str_pad($numero_start + $s, $pad_length, '0', STR_PAD_LEFT);
$serials[] = $serial; $serials[] = $serial;
} }

View File

@ -78,7 +78,7 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
echo ' echo '
<button type="button" class="btn btn-info btn-xs pull-right tip pull-right" title="'.tr('Scorpora l\'IVA dal prezzo di vendita.').'" id="scorpora_iva_add"><i class="fa fa-calculator" aria-hidden="true"></i></button>'; <button type="button" class="btn btn-info btn-xs pull-right tip pull-right" title="'.tr('Scorpora l\'IVA dal prezzo di vendita.').'" id="scorpora_iva_add"><i class="fa fa-calculator" aria-hidden="true"></i></button>';
} }
?> ?>
{[ "type": "number", "label": "<?php echo tr('Prezzo di vendita'); ?>", "name": "prezzo_vendita", "icon-after": "<?php echo currency(); ?>", "help": "<?php echo setting('Utilizza prezzi di vendita comprensivi di IVA') ? tr('Importo IVA inclusa') : ''; ?>" ]} {[ "type": "number", "label": "<?php echo tr('Prezzo di vendita'); ?>", "name": "prezzo_vendita", "icon-after": "<?php echo currency(); ?>", "help": "<?php echo setting('Utilizza prezzi di vendita comprensivi di IVA') ? tr('Importo IVA inclusa') : ''; ?>" ]}
</div> </div>

View File

@ -57,7 +57,7 @@ switch ($resource) {
echo '</small>'; echo '</small>';
break; break;
// Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita // Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita
case 'getprezzivendita': case 'getprezzivendita':
$ids = []; $ids = [];
echo '<small>'; echo '<small>';
@ -116,7 +116,7 @@ switch ($resource) {
break; break;
// Legge gli ultimi prezzi di acquisto di un determinato articolo e li visualizza per suggerire il prezzo di acquisto // Legge gli ultimi prezzi di acquisto di un determinato articolo e li visualizza per suggerire il prezzo di acquisto
case 'getprezziacquisto': case 'getprezziacquisto':
$ids = []; $ids = [];
echo '<small>'; echo '<small>';
@ -175,11 +175,11 @@ switch ($resource) {
break; break;
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
* - id_articolo * - id_articolo
* - id_anagrafica * - id_anagrafica
*/ */
case 'dettagli_articolo': case 'dettagli_articolo':
$id_articolo = get('id_articolo'); $id_articolo = get('id_articolo');
$id_anagrafica = get('id_anagrafica'); $id_anagrafica = get('id_anagrafica');

View File

@ -233,10 +233,10 @@ switch ($resource) {
break; break;
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
* - id_categoria * - id_categoria
*/ */
case 'sottocategorie': case 'sottocategorie':
if (isset($superselect['id_categoria'])) { if (isset($superselect['id_categoria'])) {
$query = 'SELECT `id`, `nome` AS descrizione FROM `mg_categorie` |where| ORDER BY `nome`'; $query = 'SELECT `id`, `nome` AS descrizione FROM `mg_categorie` |where| ORDER BY `nome`';
@ -265,10 +265,10 @@ switch ($resource) {
break; break;
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
* - idanagrafica * - idanagrafica
*/ */
case 'articoli_barcode': case 'articoli_barcode':
$id_anagrafica = filter('id_anagrafica'); // ID passato via URL in modo fisso $id_anagrafica = filter('id_anagrafica'); // ID passato via URL in modo fisso
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');

View File

@ -155,7 +155,7 @@ switch (post('op')) {
} }
redirect(base_path().'/pdfgen.php?id_print='.$id_print.'&id_record='.Articolo::where('codice', '!=', '')->first()->id); redirect(base_path().'/pdfgen.php?id_print='.$id_print.'&id_record='.Articolo::where('codice', '!=', '')->first()->id);
exit(); exit;
case 'change-qta': case 'change-qta':
$descrizione = post('descrizione'); $descrizione = post('descrizione');
@ -219,7 +219,7 @@ switch (post('op')) {
$database->commitTransaction(); $database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.Modules::get('Preventivi')['id'].'&id_record='.$id_preventivo); redirect(base_path().'/editor.php?id_module='.Modules::get('Preventivi')['id'].'&id_record='.$id_preventivo);
exit(); exit;
case 'export-csv': case 'export-csv':
$file = temp_file(); $file = temp_file();

View File

@ -425,8 +425,8 @@ if (!empty($elementi)) {
'_DATE_' => Translator::dateToLocale($elemento['data']), '_DATE_' => Translator::dateToLocale($elemento['data']),
]); ]);
//se non è un preventivo è un ddt o una fattura // se non è un preventivo è un ddt o una fattura
//se non è un ddt è una fattura. // se non è un ddt è una fattura.
if (in_array($elemento['tipo_documento'], ['Preventivo'])) { if (in_array($elemento['tipo_documento'], ['Preventivo'])) {
$modulo = 'Preventivi'; $modulo = 'Preventivi';
} elseif (!in_array($elemento['tipo_documento'], ['Ddt di vendita', 'Ddt di acquisto', 'Ddt in entrata', 'Ddt in uscita'])) { } elseif (!in_array($elemento['tipo_documento'], ['Ddt di vendita', 'Ddt di acquisto', 'Ddt in entrata', 'Ddt in uscita'])) {

View File

@ -280,7 +280,7 @@ foreach ($sedi as $sede) {
</tr>'; </tr>';
} }
echo ' echo '
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -181,7 +181,7 @@ if (empty(get('modal'))) {
$id = $data[0]['idordine']; $id = $data[0]['idordine'];
} }
$totali[] = [($data[0]['prezzo_unitario'] - $data[0]['sconto_unitario']), $data[0]['iva_unitaria']]; $totali[] = [$data[0]['prezzo_unitario'] - $data[0]['sconto_unitario'], $data[0]['iva_unitaria']];
$numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero']; $numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero'];
@ -300,7 +300,7 @@ if (empty(get('modal'))) {
$id = $data[0]['idvendita']; $id = $data[0]['idvendita'];
} }
$totali[] = [($data[0]['prezzo_unitario'] - $data[0]['sconto_unitario']), $data[0]['iva_unitaria']]; $totali[] = [$data[0]['prezzo_unitario'] - $data[0]['sconto_unitario'], $data[0]['iva_unitaria']];
$numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero']; $numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero'];

View File

@ -22,14 +22,12 @@ namespace Modules\Articoli;
use Common\SimpleModelTrait; use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Modules;
use Modules\AttributiCombinazioni\ValoreAttributo; use Modules\AttributiCombinazioni\ValoreAttributo;
use Modules\CombinazioniArticoli\Combinazione; use Modules\CombinazioniArticoli\Combinazione;
use Modules\Interventi\Components\Articolo as ArticoloIntervento; use Modules\Interventi\Components\Articolo as ArticoloIntervento;
use Modules\Iva\Aliquota; use Modules\Iva\Aliquota;
use Plugins\ListinoFornitori\DettaglioFornitore; use Plugins\ListinoFornitori\DettaglioFornitore;
use Traits\RecordTrait; use Traits\RecordTrait;
use Uploads;
class Articolo extends Model class Articolo extends Model
{ {
@ -64,7 +62,6 @@ class Articolo extends Model
/** /**
* Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, modificando di conseguenza la quantità dell'articolo stesso. * Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, modificando di conseguenza la quantità dell'articolo stesso.
* *
* @param $qta
* @param string $descrizone * @param string $descrizone
* @param string $data * @param string $data
* @param bool $manuale * @param bool $manuale
@ -89,7 +86,6 @@ class Articolo extends Model
/** /**
* Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, senza movimentare la quantità dell'articolo stesso. * Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, senza movimentare la quantità dell'articolo stesso.
* *
* @param $qta
* @param string $descrizone * @param string $descrizone
* @param string $data * @param string $data
* @param bool $manuale * @param bool $manuale
@ -124,9 +120,6 @@ class Articolo extends Model
/** /**
* Imposta il prezzo di vendita sulla base dell'impstazione per l'utilizzo dei prezzi comprensivi di IVA. * Imposta il prezzo di vendita sulla base dell'impstazione per l'utilizzo dei prezzi comprensivi di IVA.
*
* @param $prezzo_vendita
* @param $id_iva
*/ */
public function setPrezzoVendita($prezzo_vendita, $id_iva) public function setPrezzoVendita($prezzo_vendita, $id_iva)
{ {
@ -147,9 +140,6 @@ class Articolo extends Model
/** /**
* Imposta il prezzo di vendita sulla base dell'impstazione per l'utilizzo dei prezzi comprensivi di IVA. * Imposta il prezzo di vendita sulla base dell'impstazione per l'utilizzo dei prezzi comprensivi di IVA.
*
* @param $prezzo_vendita
* @param $id_iva
*/ */
public function setMinimoVendita($prezzo_minimo, $id_iva) public function setMinimoVendita($prezzo_minimo, $id_iva)
{ {
@ -168,8 +158,6 @@ class Articolo extends Model
/** /**
* Imposta il prezzo di acquisto e aggiorna il prezzo di vendita in base al coefficiente. * Imposta il prezzo di acquisto e aggiorna il prezzo di vendita in base al coefficiente.
*
* @param $value
*/ */
public function setPrezzoAcquistoAttribute($value) public function setPrezzoAcquistoAttribute($value)
{ {
@ -217,8 +205,8 @@ class Articolo extends Model
return null; return null;
} }
$module = Modules::get($this->module); $module = \Modules::get($this->module);
$fileinfo = Uploads::fileInfo($this->immagine); $fileinfo = \Uploads::fileInfo($this->immagine);
$directory = '/'.$module->upload_directory.'/'; $directory = '/'.$module->upload_directory.'/';
$image = $directory.$this->immagine; $image = $directory.$this->immagine;

View File

@ -22,7 +22,6 @@ namespace Modules\Articoli\Import;
use Carbon\Carbon; use Carbon\Carbon;
use Importer\CSVImporter; use Importer\CSVImporter;
use Models\Upload; use Models\Upload;
use Modules;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede; use Modules\Anagrafiche\Sede;
use Modules\Anagrafiche\Tipo; use Modules\Anagrafiche\Tipo;
@ -31,7 +30,6 @@ use Modules\Articoli\Categoria;
use Modules\Iva\Aliquota; use Modules\Iva\Aliquota;
use Plugins\ListinoClienti\DettaglioPrezzo; use Plugins\ListinoClienti\DettaglioPrezzo;
use Plugins\ListinoFornitori\DettaglioFornitore; use Plugins\ListinoFornitori\DettaglioFornitore;
use Uploads;
/** /**
* Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli. * Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli.
@ -331,7 +329,7 @@ class CSV extends CSVImporter
$articolo->attivo = 1; $articolo->attivo = 1;
// Esportazione della quantità indicata // Esportazione della quantità indicata
$nuova_qta = (float) ($record['qta']); $nuova_qta = (float) $record['qta'];
$nome_sede = $record['nome_sede']; $nome_sede = $record['nome_sede'];
if (!empty($dettagli['id_fornitore']) || !empty($dettagli['anagrafica_listino'] || !empty($dettagli['partita_iva']))) { if (!empty($dettagli['id_fornitore']) || !empty($dettagli['anagrafica_listino'] || !empty($dettagli['partita_iva']))) {
@ -361,14 +359,14 @@ class CSV extends CSVImporter
unset($record['descrizione_fornitore']); unset($record['descrizione_fornitore']);
unset($record['id_fornitore']); unset($record['id_fornitore']);
//Gestione immagine // Gestione immagine
if (!empty($url) && !empty($record['import_immagine'])) { if (!empty($url) && !empty($record['import_immagine'])) {
$file_content = file_get_contents($url); $file_content = file_get_contents($url);
if (!empty($file_content)) { if (!empty($file_content)) {
if ($record['import_immagine'] == 2 || $record['import_immagine'] == 4) { if ($record['import_immagine'] == 2 || $record['import_immagine'] == 4) {
Uploads::deleteLinked([ \Uploads::deleteLinked([
'id_module' => Modules::get('Articoli')['id'], 'id_module' => \Modules::get('Articoli')['id'],
'id_record' => $articolo->id, 'id_record' => $articolo->id,
]); ]);
@ -381,11 +379,11 @@ class CSV extends CSVImporter
$name = 'immagine_'.$articolo->id.'.'.Upload::getExtensionFromMimeType($file_content); $name = 'immagine_'.$articolo->id.'.'.Upload::getExtensionFromMimeType($file_content);
$upload = Uploads::upload($file_content, [ $upload = \Uploads::upload($file_content, [
'name' => 'Immagine', 'name' => 'Immagine',
'category' => 'Immagini', 'category' => 'Immagini',
'original_name' => $name, 'original_name' => $name,
'id_module' => Modules::get('Articoli')['id'], 'id_module' => \Modules::get('Articoli')['id'],
'id_record' => $articolo->id, 'id_record' => $articolo->id,
], [ ], [
'thumbnails' => true, 'thumbnails' => true,

View File

@ -149,7 +149,6 @@ class Movimento extends Model
/** /**
* Restituisce una descrizione standard applicabile a un movimento sulla base della relativa quantità e alla direzione. * Restituisce una descrizione standard applicabile a un movimento sulla base della relativa quantità e alla direzione.
* *
* @param $qta
* @param string $direzione * @param string $direzione
* *
* @return string * @return string

View File

@ -22,7 +22,7 @@ switch (post('op')) {
break; break;
// Aggiunta automezzo // Aggiunta automezzo
case 'add': case 'add':
$targa = post('targa'); $targa = post('targa');
$nome = post('nome'); $nome = post('nome');
@ -44,7 +44,7 @@ switch (post('op')) {
} }
break; break;
// Aggiunta tecnico // Aggiunta tecnico
case 'addtech': case 'addtech':
$idtecnico = post('idtecnico'); $idtecnico = post('idtecnico');
$data_inizio = post('data_inizio'); $data_inizio = post('data_inizio');
@ -69,7 +69,7 @@ switch (post('op')) {
flash()->info(tr('Collegato un nuovo tecnico!')); flash()->info(tr('Collegato un nuovo tecnico!'));
break; break;
// Salvataggio tecnici collegati // Salvataggio tecnici collegati
case 'savetech': case 'savetech':
$errors = 0; $errors = 0;
@ -105,7 +105,7 @@ switch (post('op')) {
} }
break; break;
// Eliminazione associazione con tecnico // Eliminazione associazione con tecnico
case 'deltech': case 'deltech':
$idautomezzotecnico = post('id'); $idautomezzotecnico = post('id');
@ -116,7 +116,7 @@ switch (post('op')) {
} }
break; break;
// Aggiunta quantità nell'automezzo // Aggiunta quantità nell'automezzo
case 'addrow': case 'addrow':
$idarticolo = post('idarticolo'); $idarticolo = post('idarticolo');
$qta = post('qta'); $qta = post('qta');
@ -158,7 +158,7 @@ switch (post('op')) {
flash()->info(tr("Caricato il magazzino dell'automezzo!")); flash()->info(tr("Caricato il magazzino dell'automezzo!"));
break; break;
// Spostamento scorta da automezzo a magazzino generale // Spostamento scorta da automezzo a magazzino generale
case 'moverow': case 'moverow':
$idarticolo = post('idarticolo'); $idarticolo = post('idarticolo');
$idautomezzotecnico = post('idautomezzotecnico'); $idautomezzotecnico = post('idautomezzotecnico');

View File

@ -57,7 +57,7 @@ unset($_SESSION['superselect']['idautomezzo']);
<?php <?php
include $docroot.'/modules/automezzi/row-list-tecnici.php'; include $docroot.'/modules/automezzi/row-list-tecnici.php';
?> ?>
</form> </form>
<a href="javascript:;" class="btn btn-sm btn-success pull-right" title="Aggiorna date" onclick="$('#updatetech-form input[name=op]').val('savetech'); $('#updatetech-form').submit();"><i class="fa fa-edit"></i> <?php echo tr('Salva date'); ?></a> <a href="javascript:;" class="btn btn-sm btn-success pull-right" title="Aggiorna date" onclick="$('#updatetech-form input[name=op]').val('savetech'); $('#updatetech-form').submit();"><i class="fa fa-edit"></i> <?php echo tr('Salva date'); ?></a>
@ -89,7 +89,7 @@ unset($_SESSION['superselect']['idautomezzo']);
<div class="col-md-12"> <div class="col-md-12">
<?php <?php
include $docroot.'/modules/automezzi/row-list-articoli.php'; include $docroot.'/modules/automezzi/row-list-articoli.php';
?> ?>
<div class="pull-left"> <div class="pull-left">
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/automezzi/add_articolo.php?idautomezzo=<?php echo $id_record; ?>" data-toggle="modal" data-title="Aggiungi articoli"><i class="fa fa-plus"></i> <?php echo tr('Articolo magazzino'); ?></a><br> <a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/automezzi/add_articolo.php?idautomezzo=<?php echo $id_record; ?>" data-toggle="modal" data-title="Aggiungi articoli"><i class="fa fa-plus"></i> <?php echo tr('Articolo magazzino'); ?></a><br>

View File

@ -63,7 +63,7 @@ switch (filter('op')) {
} else { } else {
flash()->error(tr('Errore durante la creazione del backup!').' '.str_replace('_DIR_', '"'.$backup_dir.'"', tr('Verifica che la cartella _DIR_ abbia i permessi di scrittura!'))); flash()->error(tr('Errore durante la creazione del backup!').' '.str_replace('_DIR_', '"'.$backup_dir.'"', tr('Verifica che la cartella _DIR_ abbia i permessi di scrittura!')));
} }
} catch (\Exception $e) { } catch (Exception $e) {
flash()->error(tr('Errore durante la creazione del backup!').' '.$e->getMessage()); flash()->error(tr('Errore durante la creazione del backup!').' '.$e->getMessage());
} }

View File

@ -29,13 +29,13 @@ class BackupTask extends Manager
{ {
public function needsExecution() public function needsExecution()
{ {
return setting('Backup automatico') && !Backup::isDailyComplete(); return setting('Backup automatico') && !\Backup::isDailyComplete();
} }
public function execute() public function execute()
{ {
if (setting('Backup automatico') && !Backup::isDailyComplete()) { if (setting('Backup automatico') && !\Backup::isDailyComplete()) {
Backup::daily(); \Backup::daily();
} }
} }
} }

View File

@ -2,8 +2,6 @@
namespace Modules\Banche; namespace Modules\Banche;
use UnexpectedValueException;
/** /**
* Format: * Format:
* b = National bank code (Codice ABI) * b = National bank code (Codice ABI)
@ -418,7 +416,7 @@ class IBAN
$matches = array_filter($matches, 'is_string', ARRAY_FILTER_USE_KEY); $matches = array_filter($matches, 'is_string', ARRAY_FILTER_USE_KEY);
foreach ($matches as $key => $value) { foreach ($matches as $key => $value) {
if (!isset($value[0])) { if (!isset($value[0])) {
throw new UnexpectedValueException('Invalid '.$key.' for format '.$regex); throw new \UnexpectedValueException('Invalid '.$key.' for format '.$regex);
} }
$this->{$key} = $value[0]; $this->{$key} = $value[0];
@ -443,7 +441,7 @@ class IBAN
if (in_array($char, $keys)) { if (in_array($char, $keys)) {
$count = substr_count($structure, $char); $count = substr_count($structure, $char);
$result .= str_pad( $result .= str_pad(
substr($contents[self::$parsers[$char]], 0, $count), substr($contents[self::$parsers[$char]], 0, $count),
$count, STR_PAD_LEFT); $count, STR_PAD_LEFT);
$current += $count; $current += $count;
} else { } else {

View File

@ -44,7 +44,7 @@ switch (filter('op')) {
if ($id_original != null) { if ($id_original != null) {
$database->commitTransaction(); $database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record)); redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit(); exit;
} }
break; break;
@ -90,7 +90,7 @@ switch (filter('op')) {
// Redirect alla categoria se si sta aggiungendo una sottocategoria // Redirect alla categoria se si sta aggiungendo una sottocategoria
$database->commitTransaction(); $database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record)); redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit(); exit;
} }
break; break;

View File

@ -63,10 +63,10 @@ if (isset($id_record)) {
<button type="submit" class="btn btn-success"><i class="fa fa-save"></i> <?php echo tr('Salva'); ?></button> <button type="submit" class="btn btn-success"><i class="fa fa-save"></i> <?php echo tr('Salva'); ?></button>
<?php <?php
} else { } else {
?> ?>
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button> <button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
<?php <?php
} }
?> ?>
</div> </div>
</div> </div>

View File

@ -48,7 +48,7 @@ switch (filter('op')) {
if ($id_original != null) { if ($id_original != null) {
$database->commitTransaction(); $database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record)); redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit(); exit;
} }
break; break;
@ -94,7 +94,7 @@ switch (filter('op')) {
// Redirect alla categoria se si sta aggiungendo una sottocategoria // Redirect alla categoria se si sta aggiungendo una sottocategoria
$database->commitTransaction(); $database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record)); redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit(); exit;
} }
break; break;

View File

@ -63,10 +63,10 @@ if (isset($id_record)) {
<button type="submit" class="btn btn-success"><i class="fa fa-save"></i> <?php echo tr('Salva'); ?></button> <button type="submit" class="btn btn-success"><i class="fa fa-save"></i> <?php echo tr('Salva'); ?></button>
<?php <?php
} else { } else {
?> ?>
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button> <button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
<?php <?php
} }
?> ?>
</div> </div>
</div> </div>

View File

@ -42,7 +42,7 @@ if ($main_check) {
'required' => 1, 'required' => 1,
'value' => htmlentities($record->content), 'value' => htmlentities($record->content),
]); ]);
?> ?>
</div> </div>
</div> </div>

View File

@ -23,7 +23,7 @@ if (!function_exists('renderChecklist')) {
global $structure; global $structure;
$user = auth()->getUser(); $user = auth()->getUser();
$enabled = $check->assignedUsers ? ($check->assignedUsers->pluck('id')->search($user->id) !== false || ($user->idgruppo) == 1) : true; $enabled = $check->assignedUsers ? ($check->assignedUsers->pluck('id')->search($user->id) !== false || $user->idgruppo == 1) : true;
$margin = ($level * 20); $margin = ($level * 20);

View File

@ -27,11 +27,11 @@ echo '
<div class="row"> <div class="row">
<div class="col-md-6">'; <div class="col-md-6">';
if (!empty($record['id_categoria'])) { if (!empty($record['id_categoria'])) {
echo ' echo '
'.Modules::link('Categorie articoli', $record['id_categoria'], null, null, 'class="pull-right"'); '.Modules::link('Categorie articoli', $record['id_categoria'], null, null, 'class="pull-right"');
} }
echo ' echo '
{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.Modules::get('Categorie articoli')['id'].'" ]} {[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.Modules::get('Categorie articoli')['id'].'" ]}
</div> </div>

View File

@ -36,7 +36,7 @@ class Combinazione extends Model
protected static $campi_varianti = [ protected static $campi_varianti = [
'id_categoria', 'id_categoria',
'id_sottocategoria', 'id_sottocategoria',
//'descrizione', // 'descrizione',
'um', 'um',
'gg_garanzia', 'gg_garanzia',
'servizio', 'servizio',
@ -76,8 +76,6 @@ class Combinazione extends Model
/** /**
* Metodo per generare dinamicamente una variante dell'articolo per la combinazione corrente. * Metodo per generare dinamicamente una variante dell'articolo per la combinazione corrente.
*
* @param $valori_attributi
*/ */
public function generaVariante($valori_attributi, $id_articolo = null) public function generaVariante($valori_attributi, $id_articolo = null)
{ {
@ -190,8 +188,6 @@ class Combinazione extends Model
/** /**
* Funzione per sincronizzare i campi condivisi dagli Articoli di tipo Variante. * Funzione per sincronizzare i campi condivisi dagli Articoli di tipo Variante.
*
* @param $values
*/ */
protected function sincronizzaCampi($values) protected function sincronizzaCampi($values)
{ {

View File

@ -140,7 +140,7 @@ switch (post('op')) {
break; break;
// Duplica contratto // Duplica contratto
case 'copy': case 'copy':
$new = $contratto->replicate(['idcontratto_prev']); $new = $contratto->replicate(['idcontratto_prev']);
$new->numero = Contratto::getNextNumero($contratto->data_bozza, $contratto->id_segment); $new->numero = Contratto::getNextNumero($contratto->data_bozza, $contratto->id_segment);
@ -272,7 +272,7 @@ switch (post('op')) {
break; break;
// Eliminazione riga // Eliminazione riga
case 'delete_riga': case 'delete_riga':
$id_righe = (array) post('righe'); $id_righe = (array) post('righe');
@ -293,7 +293,7 @@ switch (post('op')) {
break; break;
// Duplicazione riga // Duplicazione riga
case 'copy_riga': case 'copy_riga':
$id_righe = (array) post('righe'); $id_righe = (array) post('righe');
@ -314,7 +314,7 @@ switch (post('op')) {
break; break;
// Scollegamento intervento da contratto // Scollegamento intervento da contratto
case 'unlink': case 'unlink':
if (get('idcontratto') !== null && get('idintervento') !== null) { if (get('idcontratto') !== null && get('idintervento') !== null) {
$idcontratto = get('idcontratto'); $idcontratto = get('idcontratto');
@ -338,7 +338,7 @@ switch (post('op')) {
break; break;
// eliminazione contratto // eliminazione contratto
case 'delete': case 'delete':
// Fatture o interventi collegati a questo contratto // Fatture o interventi collegati a questo contratto
$elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')'.' $elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')'.'
@ -361,7 +361,7 @@ switch (post('op')) {
break; break;
// Rinnovo contratto // Rinnovo contratto
case 'renew': case 'renew':
$diff = $contratto->data_conclusione->diffAsCarbonInterval($contratto->data_accettazione); $diff = $contratto->data_conclusione->diffAsCarbonInterval($contratto->data_accettazione);
@ -471,14 +471,14 @@ switch (post('op')) {
break; break;
// Aggiunta di un documento in contratto // Aggiunta di un documento in contratto
case 'add_preventivo': case 'add_preventivo':
case 'add_documento': case 'add_documento':
$class = post('class'); $class = post('class');
$id_documento = post('id_documento'); $id_documento = post('id_documento');
// Individuazione del documento originale // Individuazione del documento originale
if (!is_subclass_of($class, \Common\Document::class)) { if (!is_subclass_of($class, Common\Document::class)) {
return; return;
} }
$documento = $class::find($id_documento); $documento = $class::find($id_documento);
@ -637,7 +637,7 @@ switch (post('op')) {
$numero_totale = 0; $numero_totale = 0;
foreach ($righe as $riga) { foreach ($righe as $riga) {
if (($riga['id']) != null) { if ($riga['id'] != null) {
$articolo = Articolo::find($riga['id']); $articolo = Articolo::find($riga['id']);
} }

View File

@ -103,7 +103,7 @@ switch (post('op')) {
if ($qta > 0) { if ($qta > 0) {
$copia = $riga->copiaIn($fattura, $qta); $copia = $riga->copiaIn($fattura, $qta);
//Fix per idconto righe fattura // Fix per idconto righe fattura
$articolo = ArticoloOriginale::find($copia->idarticolo); $articolo = ArticoloOriginale::find($copia->idarticolo);
$copia->id_conto = ($articolo->idconto_vendita ? $articolo->idconto_vendita : $idconto); $copia->id_conto = ($articolo->idconto_vendita ? $articolo->idconto_vendita : $idconto);
@ -220,31 +220,31 @@ switch (post('op')) {
} }
break; break;
case 'cambia_stato': case 'cambia_stato':
$id_stato = post('id_stato'); $id_stato = post('id_stato');
$n_contratti = 0; $n_contratti = 0;
$stato = StatoContratto::find($id_stato); $stato = StatoContratto::find($id_stato);
// Lettura righe selezionate // Lettura righe selezionate
foreach ($id_records as $id) { foreach ($id_records as $id) {
$contratto = Contratto::find($id); $contratto = Contratto::find($id);
$contratto->stato()->associate($stato); $contratto->stato()->associate($stato);
$contratto->save(); $contratto->save();
++$n_contratti; ++$n_contratti;
} }
if ($n_contratti > 0) { if ($n_contratti > 0) {
flash()->info(tr('Stato aggiornato a _NUM_ contratti!', [ flash()->info(tr('Stato aggiornato a _NUM_ contratti!', [
'_NUM_' => $n_contratti, '_NUM_' => $n_contratti,
])); ]));
} else { } else {
flash()->warning(tr('Nessuno stato aggiornato!')); flash()->warning(tr('Nessuno stato aggiornato!'));
} }
break; break;
} }
$operations['crea_fattura'] = [ $operations['crea_fattura'] = [

View File

@ -65,7 +65,7 @@ if (strtotime($record['data_conclusione']) < strtotime($record['data_accettazion
<div class="col-md-3"> <div class="col-md-3">
<?php <?php
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"'); echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
?> ?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "id": "idanagrafica_c", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "id": "idanagrafica_c", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
</div> </div>
@ -83,9 +83,9 @@ if (strtotime($record['data_conclusione']) < strtotime($record['data_accettazion
</div> </div>
<div class="col-md-3">'; <div class="col-md-3">';
if ($record['idagente'] != 0) { 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"');
} }
echo ' echo '
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]} {[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
</div> </div>
@ -142,7 +142,7 @@ echo '
'name' => 'condizioni_fornitura', 'name' => 'condizioni_fornitura',
'value' => $record['condizioni_fornitura'], 'value' => $record['condizioni_fornitura'],
]); ]);
?> ?>
</div> </div>
</div> </div>
@ -167,7 +167,7 @@ echo '
} else { } else {
$collapsed = ' collapsed-box'; $collapsed = ' collapsed-box';
} }
?> ?>
<!-- Fatturazione Elettronica PA--> <!-- Fatturazione Elettronica PA-->
@ -271,7 +271,7 @@ echo '
<button type="button" onclick="$(this).next().toggleClass(\'hide\');" class="btn btn-info btn-sm"><i class="fa fa-th-list"></i> '.tr('Mostra tipi di attività non modificati').'</button> <button type="button" onclick="$(this).next().toggleClass(\'hide\');" class="btn btn-info btn-sm"><i class="fa fa-th-list"></i> '.tr('Mostra tipi di attività non modificati').'</button>
<div class="hide">'; <div class="hide">';
//Loop fra i tipi di attività e i relativi costi del tipo intervento (quelli a 0) // Loop fra i tipi di attività e i relativi costi del tipo intervento (quelli a 0)
$rs = $dbo->fetchArray('SELECT * FROM co_contratti_tipiintervento INNER JOIN in_tipiintervento ON in_tipiintervento.idtipointervento = co_contratti_tipiintervento.idtipointervento WHERE co_contratti_tipiintervento.idtipointervento NOT IN('.implode(',', $idtipiintervento).') AND idcontratto='.prepare($id_record).' ORDER BY descrizione'); $rs = $dbo->fetchArray('SELECT * FROM co_contratti_tipiintervento INNER JOIN in_tipiintervento ON in_tipiintervento.idtipointervento = co_contratti_tipiintervento.idtipointervento WHERE co_contratti_tipiintervento.idtipointervento NOT IN('.implode(',', $idtipiintervento).') AND idcontratto='.prepare($id_record).' ORDER BY descrizione');
if (!empty($rs)) { if (!empty($rs)) {
@ -316,7 +316,7 @@ if (!empty($rs)) {
echo ' echo '
</table>'; </table>';
} }
echo ' echo '
</div> </div>
</div> </div>

View File

@ -50,8 +50,8 @@ $righe = $dbo->fetchArray(
<?php <?php
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$ultimo_prezzo_preventivo = $dbo->fetchArray( $ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT 'SELECT
co_righe_contratti.idarticolo, co_righe_contratti.idarticolo,
co_righe_preventivi.prezzo_unitario, co_righe_preventivi.prezzo_unitario,
DATE(co_righe_preventivi.updated_at) AS updated_at DATE(co_righe_preventivi.updated_at) AS updated_at
@ -66,10 +66,10 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_preventivi.id mg_articoli.id, co_righe_preventivi.id
ORDER BY ORDER BY
updated_at DESC' updated_at DESC'
)[0]; )[0];
$ultimo_prezzo_vendita = $dbo->fetchArray( $ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT 'SELECT
co_righe_contratti.idarticolo, co_righe_contratti.idarticolo,
co_righe_documenti.prezzo_unitario, co_righe_documenti.prezzo_unitario,
DATE(co_righe_documenti.updated_at) AS updated_at DATE(co_righe_documenti.updated_at) AS updated_at
@ -84,7 +84,7 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_documenti.id mg_articoli.id, co_righe_documenti.id
ORDER BY ORDER BY
updated_at DESC' updated_at DESC'
)[0]; )[0];
?> ?>
<tr> <tr>
@ -101,14 +101,14 @@ $righe = $dbo->fetchArray(
} else { } else {
echo 'n.d.'; echo 'n.d.';
} }
?></td> ?></td>
<td class="text-center"><?php <td class="text-center"><?php
if (isset($ultimo_prezzo_vendita)) { if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : ''); echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else { } else {
echo 'n.d.'; echo 'n.d.';
} }
?></td> ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>

View File

@ -281,42 +281,42 @@ echo '
</big> </big>
<br><br>'; <br><br>';
echo ' echo '
<div class="row"> <div class="row">
<big class="col-md-4 col-md-offset-4 text-center"> <big class="col-md-4 col-md-offset-4 text-center">
<table class="table text-left table-striped table-bordered">'; <table class="table text-left table-striped table-bordered">';
if (!empty($totale_ore_contratto)) { if (!empty($totale_ore_contratto)) {
echo ' echo '
<tr> <tr>
<td>'.tr('Ore a contratto').':</td> <td>'.tr('Ore a contratto').':</td>
<td class="text-right">'.Translator::numberToLocale($totale_ore_contratto).'</td> <td class="text-right">'.Translator::numberToLocale($totale_ore_contratto).'</td>
</tr>'; </tr>';
} }
echo ' echo '
<tr> <tr>
<td>'.tr('Ore erogate totali').':</td> <td>'.tr('Ore erogate totali').':</td>
<td class="text-right">'.Translator::numberToLocale($totale_ore).'</td> <td class="text-right">'.Translator::numberToLocale($totale_ore).'</td>
</tr>'; </tr>';
if (!empty($totale_ore_contratto)) { if (!empty($totale_ore_contratto)) {
echo ' echo '
<tr> <tr>
<td>'.tr('Ore residue totali').':</td> <td>'.tr('Ore residue totali').':</td>
<td class="text-right">'.Translator::numberToLocale(floatval($totale_ore_contratto) - floatval($totale_ore)).'</td> <td class="text-right">'.Translator::numberToLocale(floatval($totale_ore_contratto) - floatval($totale_ore)).'</td>
</tr>'; </tr>';
} }
echo ' echo '
<tr> <tr>
<td>'.tr('Ore erogate concluse').':</td> <td>'.tr('Ore erogate concluse').':</td>
<td class="text-right">'.Translator::numberToLocale($totale_ore_completate).'</td> <td class="text-right">'.Translator::numberToLocale($totale_ore_completate).'</td>
</tr>'; </tr>';
if (!empty($totale_ore_contratto)) { if (!empty($totale_ore_contratto)) {
echo ' echo '
<tr> <tr>
<td>'.tr('Ore residue concluse').':</td> <td>'.tr('Ore residue concluse').':</td>
<td class="text-right">'.Translator::numberToLocale(floatval($totale_ore_contratto) - floatval($totale_ore_completate)).'</td> <td class="text-right">'.Translator::numberToLocale(floatval($totale_ore_contratto) - floatval($totale_ore_completate)).'</td>
</tr>'; </tr>';
} }
echo ' echo '
</table> </table>
</big> </big>
</div>'; </div>';
@ -327,7 +327,7 @@ if (empty($totale_ore_contratto)) {
<p>'.tr('Per monitorare il consumo ore, inserisci almeno una riga con unità di misura "ore"').'.</p> <p>'.tr('Per monitorare il consumo ore, inserisci almeno una riga con unità di misura "ore"').'.</p>
</div>'; </div>';
} }
echo ' echo '
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<table class="table text-left table-striped table-bordered"> <table class="table text-left table-striped table-bordered">
@ -339,15 +339,15 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th> <th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th> <th width="10%">'.tr('Ricarico').'</th>
</tr>'; </tr>';
ksort($tipologie); ksort($tipologie);
foreach ($tipologie as $key => $tipologia) { foreach ($tipologie as $key => $tipologia) {
$margine = $tipologia['ricavo'] - $tipologia['costo']; $margine = $tipologia['ricavo'] - $tipologia['costo'];
if ($tipologia['ricavo']) { if ($tipologia['ricavo']) {
$margine_prc = (int) (1 - ($tipologia['costo'] / $tipologia['ricavo'])) * 100; $margine_prc = (int) (1 - ($tipologia['costo'] / $tipologia['ricavo'])) * 100;
$ricarico_prc = ($tipologia['ricavo'] && $tipologia['costo']) ? (int) ((($tipologia['ricavo'] / $tipologia['costo']) - 1) * 100) : 100; $ricarico_prc = ($tipologia['ricavo'] && $tipologia['costo']) ? (int) ((($tipologia['ricavo'] / $tipologia['costo']) - 1) * 100) : 100;
} }
echo ' echo '
<tr> <tr>
<td>'.$key.'</td> <td>'.$key.'</td>
<td class="text-right">'.Translator::numberToLocale($tipologia['ore']).'</td> <td class="text-right">'.Translator::numberToLocale($tipologia['ore']).'</td>
@ -356,8 +356,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>'; </tr>';
} }
echo ' echo '
</table> </table>
</div> </div>
@ -372,14 +372,14 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th> <th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th> <th width="10%">'.tr('Ricarico').'</th>
</tr>'; </tr>';
ksort($tecnici); ksort($tecnici);
foreach ($tecnici as $key => $tecnico) { foreach ($tecnici as $key => $tecnico) {
$margine = $tecnico['ricavo'] - $tecnico['costo']; $margine = $tecnico['ricavo'] - $tecnico['costo'];
if ($tecnico['ricavo']) { if ($tecnico['ricavo']) {
$margine_prc = (int) (1 - ($tecnico['costo'] / $tecnico['ricavo'])) * 100; $margine_prc = (int) (1 - ($tecnico['costo'] / $tecnico['ricavo'])) * 100;
$ricarico_prc = ($tecnico['ricavo'] && $tecnico['costo']) ? (int) ((($tecnico['ricavo'] / $tecnico['costo']) - 1) * 100) : 100; $ricarico_prc = ($tecnico['ricavo'] && $tecnico['costo']) ? (int) ((($tecnico['ricavo'] / $tecnico['costo']) - 1) * 100) : 100;
} }
echo ' echo '
<tr> <tr>
<td>'.$key.'</td> <td>'.$key.'</td>
<td class="text-right">'.(int) $tecnico['km'].'</td> <td class="text-right">'.(int) $tecnico['km'].'</td>
@ -389,8 +389,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>'; </tr>';
} }
echo ' echo '
</table> </table>
</div> </div>
</div> </div>
@ -406,14 +406,14 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th> <th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th> <th width="10%">'.tr('Ricarico').'</th>
</tr>'; </tr>';
ksort($stati_intervento); ksort($stati_intervento);
foreach ($stati_intervento as $key => $stato) { foreach ($stati_intervento as $key => $stato) {
$margine = $stato['ricavo'] - $stato['costo']; $margine = $stato['ricavo'] - $stato['costo'];
if ($stato['ricavo']) { if ($stato['ricavo']) {
$margine_prc = (int) (1 - ($stato['costo'] / $stato['ricavo'])) * 100; $margine_prc = (int) (1 - ($stato['costo'] / $stato['ricavo'])) * 100;
$ricarico_prc = ($stato['ricavo'] && $stato['costo']) ? (int) ((($stato['ricavo'] / $stato['costo']) - 1) * 100) : 100; $ricarico_prc = ($stato['ricavo'] && $stato['costo']) ? (int) ((($stato['ricavo'] / $stato['costo']) - 1) * 100) : 100;
} }
echo ' echo '
<tr> <tr>
<td><div class="img-circle" style="width:18px; height:18px; position:relative; bottom:-2px; background:'.$stato['colore'].'; float:left;"></div> '.$key.'</td> <td><div class="img-circle" style="width:18px; height:18px; position:relative; bottom:-2px; background:'.$stato['colore'].'; float:left;"></div> '.$key.'</td>
<td class="text-right">'.Translator::numberToLocale($stato['ore']).'</td> <td class="text-right">'.Translator::numberToLocale($stato['ore']).'</td>
@ -422,8 +422,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>'; </tr>';
} }
echo ' echo '
</table> </table>
</div> </div>
@ -437,14 +437,14 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th> <th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th> <th width="10%">'.tr('Ricarico').'</th>
</tr>'; </tr>';
ksort($materiali_art); ksort($materiali_art);
foreach ($materiali_art as $key => $materiali_array1) { foreach ($materiali_art as $key => $materiali_array1) {
foreach ($materiali_array1 as $materiali_array2) { foreach ($materiali_array1 as $materiali_array2) {
foreach ($materiali_array2 as $materiale) { foreach ($materiali_array2 as $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo']; $margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100; $margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100; $ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
echo ' echo '
<tr> <tr>
<td>'.Modules::link('Articoli', $materiale['id'], $key).'</td> <td>'.Modules::link('Articoli', $materiale['id'], $key).'</td>
<td class="text-center">'.$materiale['qta'].'</td> <td class="text-center">'.$materiale['qta'].'</td>
@ -453,16 +453,16 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>'; </tr>';
} }
} }
} }
ksort($materiali_righe); ksort($materiali_righe);
foreach ($materiali_righe as $key => $materiale) { foreach ($materiali_righe as $key => $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo']; $margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100; $margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100; $ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
echo ' echo '
<tr> <tr>
<td>'.$key.'</td> <td>'.$key.'</td>
<td class="text-center">'.$materiale['qta'].'</td> <td class="text-center">'.$materiale['qta'].'</td>
@ -471,8 +471,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td> <td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>'; </tr>';
} }
echo ' echo '
</table> </table>
</div> </div>
</div> </div>

View File

@ -30,11 +30,11 @@ echo '
<thead> <thead>
<tr> <tr>
<th width="5" class="text-center">'; <th width="5" class="text-center">';
if (!$block_edit && sizeof($righe) > 0) { if (!$block_edit && sizeof($righe) > 0) {
echo ' echo '
<input id="check_all" type="checkbox"/>'; <input id="check_all" type="checkbox"/>';
} }
echo ' echo '
</th> </th>
<th width="35" class="text-center">'.tr('#').'</th> <th width="35" class="text-center">'.tr('#').'</th>
<th>'.tr('Descrizione').'</th> <th>'.tr('Descrizione').'</th>

View File

@ -49,7 +49,7 @@ include_once __DIR__.'/../../core.php';
'required' => 1, 'required' => 1,
'value' => '{[ "type": "text", "label": "|label|", "name": "|name|", "value": "|value|" ]}', 'value' => '{[ "type": "text", "label": "|label|", "name": "|name|", "value": "|value|" ]}',
]); ]);
?> ?>
</div> </div>
</div> </div>

View File

@ -64,7 +64,7 @@ include_once __DIR__.'/../../core.php';
'name' => 'content', 'name' => 'content',
'value' => $record['content'], 'value' => $record['content'],
]); ]);
?> ?>
</div> </div>
</div> </div>
</form> </form>

View File

@ -121,7 +121,7 @@ switch (filter('op')) {
} }
if (setting('Visualizza informazioni aggiuntive sul calendario')) { if (setting('Visualizza informazioni aggiuntive sul calendario')) {
//# Box allDay preventivi // # Box allDay preventivi
$query = 'SELECT $query = 'SELECT
co_preventivi.id, co_preventivi.id,
co_preventivi.nome, co_preventivi.nome,
@ -151,9 +151,9 @@ switch (filter('op')) {
'id' => 'A_'.$modulo_preventivi->id.'_'.$preventivo['id'], 'id' => 'A_'.$modulo_preventivi->id.'_'.$preventivo['id'],
'idintervento' => $preventivo['id'], 'idintervento' => $preventivo['id'],
'idtecnico' => '', 'idtecnico' => '',
'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div>'.'<b>'.tr('Accettazione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'], 'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div><b>'.tr('Accettazione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'start' => $preventivo['data_accettazione'], 'start' => $preventivo['data_accettazione'],
//'end' => $preventivo['data_accettazione'], // 'end' => $preventivo['data_accettazione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'], 'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'],
'backgroundColor' => '#ff7f50', 'backgroundColor' => '#ff7f50',
'textColor' => color_inverse('#ff7f50'), 'textColor' => color_inverse('#ff7f50'),
@ -169,9 +169,9 @@ switch (filter('op')) {
'id' => 'B_'.$modulo_preventivi->id.'_'.$preventivo['id'], 'id' => 'B_'.$modulo_preventivi->id.'_'.$preventivo['id'],
'idintervento' => $preventivo['id'], 'idintervento' => $preventivo['id'],
'idtecnico' => '', 'idtecnico' => '',
'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div>'.'<b>'.tr('Conclusione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'], 'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div><b>'.tr('Conclusione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'start' => $preventivo['data_conclusione'], 'start' => $preventivo['data_conclusione'],
//'end' => $preventivo['data_conclusione'], // 'end' => $preventivo['data_conclusione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'], 'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'],
'backgroundColor' => '#ff7f50', 'backgroundColor' => '#ff7f50',
'textColor' => color_inverse('#ff7f50'), 'textColor' => color_inverse('#ff7f50'),
@ -184,7 +184,7 @@ switch (filter('op')) {
} }
} }
//# Box allDay eventi (escluse festività) // # Box allDay eventi (escluse festività)
$query = 'SELECT $query = 'SELECT
* *
FROM FROM
@ -197,7 +197,7 @@ switch (filter('op')) {
OR OR
(`zz_events`.`is_recurring` = 0 AND `zz_events`.`data` >= '.prepare($start).' AND `zz_events`.`data` <= '.prepare($end).')'; (`zz_events`.`is_recurring` = 0 AND `zz_events`.`data` >= '.prepare($start).' AND `zz_events`.`data` <= '.prepare($end).')';
//echo $query; // echo $query;
$eventi = $dbo->fetchArray($query); $eventi = $dbo->fetchArray($query);
@ -206,7 +206,7 @@ switch (filter('op')) {
'id' => $modulo_eventi->id.'_'.$evento['id'], 'id' => $modulo_eventi->id.'_'.$evento['id'],
'title' => '<b>'.tr('Evento').':</b> '.$evento['nome'].'</b>', 'title' => '<b>'.tr('Evento').':</b> '.$evento['nome'].'</b>',
'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']), 'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']),
//'end' => $evento['data'], // 'end' => $evento['data'],
'extendedProps' => [ 'extendedProps' => [
'link' => base_path().'/editor.php?id_module='.$modulo_eventi->id.'&id_record='.$evento['id'], 'link' => base_path().'/editor.php?id_module='.$modulo_eventi->id.'&id_record='.$evento['id'],
'idintervento' => $evento['id'], 'idintervento' => $evento['id'],
@ -276,7 +276,7 @@ switch (filter('op')) {
$query = 'SELECT *, in_interventi.codice, an_anagrafiche.note AS note_anagrafica, idstatointervento AS parent_idstato, in_interventi.idtipointervento AS parent_idtipo, (SELECT GROUP_CONCAT(CONCAT(matricola, " - ", nome) SEPARATOR ", ") FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id=my_impianti_interventi.idimpianto WHERE my_impianti_interventi.idintervento='.prepare($id).' GROUP BY my_impianti_interventi.idintervento) AS impianti, (SELECT descrizione FROM in_statiintervento WHERE idstatointervento=parent_idstato) AS stato, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=parent_idtipo) AS tipo, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica=in_interventi.idanagrafica) AS idzona FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id =in_interventi_tecnici.idintervento LEFT JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi', null, false); $query = 'SELECT *, in_interventi.codice, an_anagrafiche.note AS note_anagrafica, idstatointervento AS parent_idstato, in_interventi.idtipointervento AS parent_idtipo, (SELECT GROUP_CONCAT(CONCAT(matricola, " - ", nome) SEPARATOR ", ") FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id=my_impianti_interventi.idimpianto WHERE my_impianti_interventi.idintervento='.prepare($id).' GROUP BY my_impianti_interventi.idintervento) AS impianti, (SELECT descrizione FROM in_statiintervento WHERE idstatointervento=parent_idstato) AS stato, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=parent_idtipo) AS tipo, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica=in_interventi.idanagrafica) AS idzona FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id =in_interventi_tecnici.idintervento LEFT JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi', null, false);
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
//correggo info indirizzo citta cap provincia con quelle della sede di destinazione // correggo info indirizzo citta cap provincia con quelle della sede di destinazione
if (!empty($rs[0]['idsede_destinazione'])) { if (!empty($rs[0]['idsede_destinazione'])) {
$sede = $database->fetchOne('SELECT * FROM an_sedi WHERE id = '.prepare($rs[0]['idsede_destinazione'])); $sede = $database->fetchOne('SELECT * FROM an_sedi WHERE id = '.prepare($rs[0]['idsede_destinazione']));
$rs[0]['indirizzo'] = $sede['nomesede'].'<br>'.$sede['indirizzo']; $rs[0]['indirizzo'] = $sede['nomesede'].'<br>'.$sede['indirizzo'];
@ -354,7 +354,7 @@ switch (filter('op')) {
} }
} }
$tooltip .= ' $tooltip .= '
<script type="text/javascript"> <script type="text/javascript">
$(".shorten").shorten({ $(".shorten").shorten({
moreText: "'.tr('Mostra tutto').'", moreText: "'.tr('Mostra tutto').'",
@ -363,7 +363,7 @@ switch (filter('op')) {
}); });
</script>'; </script>';
echo $tooltip; echo $tooltip;
break; break;
@ -413,16 +413,16 @@ switch (filter('op')) {
FROM in_interventi FROM in_interventi
INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica"; INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica";
// Visualizzo solo promemoria del tecnico loggato // Visualizzo solo promemoria del tecnico loggato
if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) { if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) {
$query_interventi .= ' $query_interventi .= '
INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico); INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico);
} else { } else {
$query_interventi .= ' $query_interventi .= '
LEFT JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento'; LEFT JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento';
} }
$query_interventi .= ' $query_interventi .= '
LEFT JOIN in_interventi_tecnici ON in_interventi_tecnici.idintervento = in_interventi.id LEFT JOIN in_interventi_tecnici ON in_interventi_tecnici.idintervento = in_interventi.id
INNER JOIN in_statiintervento ON in_interventi.idstatointervento = in_statiintervento.idstatointervento INNER JOIN in_statiintervento ON in_interventi.idstatointervento = in_statiintervento.idstatointervento
LEFT JOIN an_anagrafiche AS tecnico ON in_interventi_tecnici_assegnati.id_tecnico = tecnico.idanagrafica LEFT JOIN an_anagrafiche AS tecnico ON in_interventi_tecnici_assegnati.id_tecnico = tecnico.idanagrafica
@ -479,12 +479,12 @@ switch (filter('op')) {
break; break;
case 'calendario_eventi': case 'calendario_eventi':
$start = filter('start'); $start = filter('start');
$end = filter('end'); $end = filter('end');
//TODO: Problema con anni bisestili Es. 2024-02-29 e 2023-03-01 sono entrambi il 60 esimo giorno dell'anno. // TODO: Problema con anni bisestili Es. 2024-02-29 e 2023-03-01 sono entrambi il 60 esimo giorno dell'anno.
$query = 'SELECT *, DAYOFYEAR(`zz_events`.`data`) AS d, DAYOFYEAR('.prepare($start).') AS st, DAYOFYEAR('.prepare($end).') AS fi FROM `zz_events` $query = 'SELECT *, DAYOFYEAR(`zz_events`.`data`) AS d, DAYOFYEAR('.prepare($start).') AS st, DAYOFYEAR('.prepare($end).') AS fi FROM `zz_events`
WHERE `zz_events`.`is_bank_holiday` = 1 WHERE `zz_events`.`is_bank_holiday` = 1
AND AND
(`zz_events`.`is_recurring` = 1 (`zz_events`.`is_recurring` = 1
@ -492,22 +492,22 @@ switch (filter('op')) {
OR OR
(`zz_events`.`is_recurring` = 0 AND `zz_events`.`data` >= '.prepare($start).' AND `zz_events`.`data` <= '.prepare($end).')'; (`zz_events`.`is_recurring` = 0 AND `zz_events`.`data` >= '.prepare($start).' AND `zz_events`.`data` <= '.prepare($end).')';
$eventi = $dbo->fetchArray($query); $eventi = $dbo->fetchArray($query);
$results = []; $results = [];
foreach ($eventi as $evento) { foreach ($eventi as $evento) {
$results[] = [ $results[] = [
'id' => $evento['id'], 'id' => $evento['id'],
'title' => $evento['nome'], 'title' => $evento['nome'],
'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']), 'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']),
//'end' => date('Y-m-d', strtotime($evento['data']. '+1 day')), // 'end' => date('Y-m-d', strtotime($evento['data']. '+1 day')),
'display' => 'background', 'display' => 'background',
'allDay' => true, 'allDay' => true,
'overlap' => true, 'overlap' => true,
]; ];
} }
echo json_encode($results); echo json_encode($results);
break; break;
} }

View File

@ -275,14 +275,14 @@ switch (filter('op')) {
break; break;
// Aggiunta di un documento in ddt // Aggiunta di un documento in ddt
case 'add_ordine': case 'add_ordine':
case 'add_documento': case 'add_documento':
$class = post('class'); $class = post('class');
$id_documento = post('id_documento'); $id_documento = post('id_documento');
// Individuazione del documento originale // Individuazione del documento originale
if (!is_subclass_of($class, \Common\Document::class)) { if (!is_subclass_of($class, Common\Document::class)) {
return; return;
} }
$documento = $class::find($id_documento); $documento = $class::find($id_documento);
@ -374,7 +374,7 @@ switch (filter('op')) {
break; break;
// Eliminazione riga // Eliminazione riga
case 'delete_riga': case 'delete_riga':
$id_righe = (array) post('righe'); $id_righe = (array) post('righe');
@ -401,7 +401,7 @@ switch (filter('op')) {
break; break;
// Duplicazione riga // Duplicazione riga
case 'copy_riga': case 'copy_riga':
$id_righe = (array) post('righe'); $id_righe = (array) post('righe');
@ -427,7 +427,7 @@ switch (filter('op')) {
break; break;
// eliminazione ddt // eliminazione ddt
case 'delete': case 'delete':
try { try {
// Se il ddt è collegato ad un ddt di trasporto interno, devo annullare il movimento del magazzino // Se il ddt è collegato ad un ddt di trasporto interno, devo annullare il movimento del magazzino
@ -468,14 +468,14 @@ switch (filter('op')) {
break; break;
/* /*
* Gestione della generazione di DDT in direzione opposta a quella corrente, per completare il riferimento di trasporto interno tra sedi distinte dell'anagrafica Azienda. * Gestione della generazione di DDT in direzione opposta a quella corrente, per completare il riferimento di trasporto interno tra sedi distinte dell'anagrafica Azienda.
*/ */
case 'completa_trasporto': case 'completa_trasporto':
$tipo = Tipo::where('dir', '!=', $ddt->direzione)->first(); $tipo = Tipo::where('dir', '!=', $ddt->direzione)->first();
$stato = Stato::where('descrizione', '=', 'Evaso')->first(); $stato = Stato::where('descrizione', '=', 'Evaso')->first();
// Duplicazione DDT // Duplicazione DDT
$id_segment = post('id_segment'); $id_segment = post('id_segment');
if (get('id_segment')) { if (get('id_segment')) {
$id_segment = get('id_segment'); $id_segment = get('id_segment');
@ -525,7 +525,7 @@ switch (filter('op')) {
break; break;
// Duplica ddt // Duplica ddt
case 'copy': case 'copy':
$new = $ddt->replicate(); $new = $ddt->replicate();
@ -653,7 +653,7 @@ switch (filter('op')) {
$numero_totale = 0; $numero_totale = 0;
foreach ($righe as $riga) { foreach ($righe as $riga) {
if (($riga['id']) != null) { if ($riga['id'] != null) {
$articolo = Articolo::find($riga['id']); $articolo = Articolo::find($riga['id']);
} }

View File

@ -39,7 +39,7 @@ foreach ($fields as $name => $value) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"'; $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
} }
//$query .= Modules::getAdditionalsQuery('Interventi'); // $query .= Modules::getAdditionalsQuery('Interventi');
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);

View File

@ -105,7 +105,7 @@ switch (post('op')) {
if ($qta > 0) { if ($qta > 0) {
$copia = $riga->copiaIn($fattura, $qta); $copia = $riga->copiaIn($fattura, $qta);
//Fix per idconto righe fattura // Fix per idconto righe fattura
$articolo = ArticoloOriginale::find($copia->idarticolo); $articolo = ArticoloOriginale::find($copia->idarticolo);
$copia->id_conto = ($articolo->idconto_vendita ? $articolo->idconto_vendita : $idconto); $copia->id_conto = ($articolo->idconto_vendita ? $articolo->idconto_vendita : $idconto);
@ -128,7 +128,7 @@ switch (post('op')) {
} else { } else {
flash()->warning(tr('Nessun ddt fatturato!')); flash()->warning(tr('Nessun ddt fatturato!'));
} }
break; break;
case 'delete-bulk': case 'delete-bulk':
foreach ($id_records as $id) { foreach ($id_records as $id) {
@ -140,7 +140,7 @@ switch (post('op')) {
} }
flash()->info(tr('Ddt eliminati!')); flash()->info(tr('Ddt eliminati!'));
break; break;
case 'cambia_stato': case 'cambia_stato':
$id_stato = post('id_stato'); $id_stato = post('id_stato');
@ -163,7 +163,7 @@ switch (post('op')) {
flash()->warning(tr('Nessun DDT modificato!')); flash()->warning(tr('Nessun DDT modificato!'));
} }
break; break;
} }
if (App::debug()) { if (App::debug()) {
@ -190,16 +190,16 @@ $operations['crea_fattura'] = [
], ],
]; ];
$operations['cambia_stato'] = [ $operations['cambia_stato'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'), 'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'),
'data' => [ 'data' => [
'title' => tr('Vuoi davvero cambiare lo stato per questi DDT?'), 'title' => tr('Vuoi davvero cambiare lo stato per questi DDT?'),
'msg' => tr('Seleziona lo stato in cui spostare tutti i DDT').'.<br> 'msg' => tr('Seleziona lo stato in cui spostare tutti i DDT').'.<br>
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT id, descrizione, colore as _bgcolor_ FROM dt_statiddt" ]}', <br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT id, descrizione, colore as _bgcolor_ FROM dt_statiddt" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
'blank' => false, 'blank' => false,
], ],
]; ];
return $operations; return $operations;

View File

@ -91,7 +91,7 @@ if ($dir == 'entrata') {
{[ "type": "span", "label": "'.tr('Numero ddt').'", "class": "text-center", "value": "$numero$" ]} {[ "type": "span", "label": "'.tr('Numero ddt').'", "class": "text-center", "value": "$numero$" ]}
</div>'; </div>';
} }
?> ?>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Numero secondario'); ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]} {[ "type": "text", "label": "<?php echo tr('Numero secondario'); ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
@ -103,22 +103,22 @@ if ($dir == 'entrata') {
<div class="col-md-6"> <div class="col-md-6">
<?php <?php
if (setting('Cambia automaticamente stato ddt fatturati')) { if (setting('Cambia automaticamente stato ddt fatturati')) {
if ($record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') { if ($record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]} {[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]}
<?php <?php
} else { } else {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt WHERE descrizione IN('Bozza', 'Evaso', 'Parzialmente evaso') ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]} {[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt WHERE descrizione IN('Bozza', 'Evaso', 'Parzialmente evaso') ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
<?php <?php
} }
} else { } else {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]} {[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
<?php <?php
} }
?> ?>
</div> </div>
<?php <?php
if ($dir == 'entrata') { if ($dir == 'entrata') {
@ -131,7 +131,7 @@ if ($dir == 'entrata') {
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]} {[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
</div>'; </div>';
} }
?> ?>
</div> </div>
<div class="row"> <div class="row">
@ -140,21 +140,21 @@ if ($dir == 'entrata') {
{[ "type": "select", "label": "<?php echo ($dir == 'uscita') ? tr('Mittente') : tr('Destinatario'); ?>", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti_fornitori" ]} {[ "type": "select", "label": "<?php echo ($dir == 'uscita') ? tr('Mittente') : tr('Destinatario'); ?>", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti_fornitori" ]}
</div> </div>
<?php <?php
echo ' echo '
<div class="col-md-6">'; <div class="col-md-6">';
if (!empty($record['idreferente'])) { if (!empty($record['idreferente'])) {
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"'); echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
} }
echo ' echo '
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'} ]} {[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'} ]}
</div>'; </div>';
// Conteggio numero articoli ddt in uscita // Conteggio numero articoli ddt in uscita
$articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN dt_righe_ddt ON mg_articoli.id=dt_righe_ddt.idarticolo) INNER JOIN dt_ddt ON dt_ddt.id=dt_righe_ddt.idddt) WHERE dt_ddt.id='.prepare($id_record)); $articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN dt_righe_ddt ON mg_articoli.id=dt_righe_ddt.idarticolo) INNER JOIN dt_ddt ON dt_ddt.id=dt_righe_ddt.idddt) WHERE dt_ddt.id='.prepare($id_record));
$id_modulo_anagrafiche = Modules::get('Anagrafiche')['id']; $id_modulo_anagrafiche = Modules::get('Anagrafiche')['id'];
$id_plugin_sedi = Plugins::get('Sedi')['id']; $id_plugin_sedi = Plugins::get('Sedi')['id'];
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "help": "'.tr("Sedi di partenza dell'azienda").'" ]} {[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "help": "'.tr("Sedi di partenza dell'azienda").'" ]}
</div> </div>
@ -162,8 +162,8 @@ if ($dir == 'entrata') {
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_destinazione$", "help": "'.tr('Sedi del destinatario').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_destinazione$", "help": "'.tr('Sedi del destinatario').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>'; </div>';
} else { } else {
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_partenza$", "help": "'.tr('Sedi del mittente').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_partenza$", "help": "'.tr('Sedi del mittente').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div> </div>
@ -171,8 +171,8 @@ if ($dir == 'entrata') {
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "help": "'.tr("Sedi di arrivo dell'azienda").'" ]} {[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "help": "'.tr("Sedi di arrivo dell'azienda").'" ]}
</div>'; </div>';
} }
?> ?>
</div> </div>
</div> </div>
</div> </div>
@ -181,18 +181,18 @@ if ($dir == 'entrata') {
<div class="col-md-4"> <div class="col-md-4">
<?php <?php
$sede_anagrafica = $ddt->anagrafica->sedeLegale; $sede_anagrafica = $ddt->anagrafica->sedeLegale;
$id_sede_anagrafica = $dir == 'entrata' ? $ddt->idsede_destinazione : $ddt->idsede_partenza; $id_sede_anagrafica = $dir == 'entrata' ? $ddt->idsede_destinazione : $ddt->idsede_partenza;
if (!empty($id_sede_anagrafica)) { if (!empty($id_sede_anagrafica)) {
$sede_anagrafica = Sede::find($id_sede_anagrafica); $sede_anagrafica = Sede::find($id_sede_anagrafica);
} }
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); $anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$sede_azienda = $anagrafica_azienda->sedeLegale; $sede_azienda = $anagrafica_azienda->sedeLegale;
$id_sede_azienda = $dir == 'entrata' ? $ddt->idsede_partenza : $ddt->idsede_destinazione; $id_sede_azienda = $dir == 'entrata' ? $ddt->idsede_partenza : $ddt->idsede_destinazione;
if (!empty($id_sede_azienda)) { if (!empty($id_sede_azienda)) {
$sede_azienda = Sede::find($id_sede_azienda); $sede_azienda = Sede::find($id_sede_azienda);
} }
?> ?>
<!-- GEOLOCALIZZAZIONE --> <!-- GEOLOCALIZZAZIONE -->
<div class="panel panel-primary"> <div class="panel panel-primary">
@ -201,38 +201,38 @@ if ($dir == 'entrata') {
</div> </div>
<div class="panel-body"> <div class="panel-body">
<?php <?php
if (!empty($sede_anagrafica->gaddress) || (!empty($sede_anagrafica->lat) && !empty($sede_anagrafica->lng))) { if (!empty($sede_anagrafica->gaddress) || (!empty($sede_anagrafica->lat) && !empty($sede_anagrafica->lng))) {
echo ' echo '
<div id="map-edit" style="width: 100%;"></div> <div id="map-edit" style="width: 100%;"></div>
<div class="clearfix"></div> <div class="clearfix"></div>
<br>'; <br>';
// Navigazione diretta verso l'indirizzo // Navigazione diretta verso l'indirizzo
echo ' echo '
<a class="btn btn-info btn-block" onclick="$(\'#map-edit\').height(235); caricaMappa(); $(this).hide();"> <a class="btn btn-info btn-block" onclick="$(\'#map-edit\').height(235); caricaMappa(); $(this).hide();">
<i class="fa fa-compass"></i> '.tr('Carica mappa').' <i class="fa fa-compass"></i> '.tr('Carica mappa').'
</a>'; </a>';
// Navigazione diretta verso l'indirizzo // Navigazione diretta verso l'indirizzo
echo ' echo '
<a class="btn btn-info btn-block" onclick="calcolaPercorso()"> <a class="btn btn-info btn-block" onclick="calcolaPercorso()">
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').' <i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
</a>'; </a>';
} else { } else {
// Navigazione diretta verso l'indirizzo // Navigazione diretta verso l'indirizzo
echo ' echo '
<a class="btn btn-info btn-block" onclick="calcolaPercorso()"> <a class="btn btn-info btn-block" onclick="calcolaPercorso()">
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').' <i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
</a>'; </a>';
// Ricerca diretta su Mappa // Ricerca diretta su Mappa
echo ' echo '
<a class="btn btn-info btn-block" onclick="cercaOpenStreetMap()"> <a class="btn btn-info btn-block" onclick="cercaOpenStreetMap()">
<i class="fa fa-map-marker"></i> '.tr('Cerca su Mappa').' <i class="fa fa-map-marker"></i> '.tr('Cerca su Mappa').'
'.((!empty($sede_anagrafica->lat)) ? tr(' (GPS)') : '').' '.((!empty($sede_anagrafica->lat)) ? tr(' (GPS)') : '').'
</a>'; </a>';
} }
echo ' echo '
</div> </div>
@ -319,7 +319,7 @@ if ($dir == 'entrata') {
map.setView([lat, lng], 10); map.setView([lat, lng], 10);
} }
</script>'; </script>';
?> ?>
</div> </div>
</div> </div>
@ -337,10 +337,10 @@ if ($dir == 'entrata') {
<div class="col-md-3"> <div class="col-md-3">
<?php <?php
if (!empty($record['idcausalet'])) { if (!empty($record['idcausalet'])) {
echo Modules::link('Causali', $record['idcausalet'], null, null, 'class="pull-right"'); echo Modules::link('Causali', $record['idcausalet'], null, null, 'class="pull-right"');
} }
?> ?>
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "required": 1, "value": "$idcausalet$", "ajax-source": "causali", "icon-after": "add|<?php echo Modules::get('Causali')['id']; ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>", "help": "<?php echo tr('Definisce la causale del trasporto'); ?>" ]} {[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "required": 1, "value": "$idcausalet$", "ajax-source": "causali", "icon-after": "add|<?php echo Modules::get('Causali')['id']; ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>", "help": "<?php echo tr('Definisce la causale del trasporto'); ?>" ]}
</div> </div>
@ -364,13 +364,13 @@ if ($dir == 'entrata') {
<div class="col-md-3"> <div class="col-md-3">
<?php <?php
if (!empty($record['idvettore'])) { if (!empty($record['idvettore'])) {
echo Modules::link('Anagrafiche', $record['idvettore'], null, null, 'class="pull-right"'); echo Modules::link('Anagrafiche', $record['idvettore'], null, null, 'class="pull-right"');
} }
$esterno = $dbo->selectOne('dt_spedizione', 'esterno', [ $esterno = $dbo->selectOne('dt_spedizione', 'esterno', [
'id' => $record['idspedizione'], 'id' => $record['idspedizione'],
])['esterno']; ])['esterno'];
?> ?>
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": <?php echo empty($esterno) || (!empty($esterno) && !empty($record['idvettore'])) ? 1 : 0; ?>, "required": <?php echo !empty($esterno) ?: 0; ?>, "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|<?php echo ($esterno and (intval(!$record['flag_completato']) || empty($record['idvettore']))) ? '' : 'disabled'; ?>", "class": "<?php echo empty($record['idvettore']) ? 'unblockable' : ''; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": <?php echo empty($esterno) || (!empty($esterno) && !empty($record['idvettore'])) ? 1 : 0; ?>, "required": <?php echo !empty($esterno) ?: 0; ?>, "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|<?php echo ($esterno and (intval(!$record['flag_completato']) || empty($record['idvettore']))) ? '' : 'disabled'; ?>", "class": "<?php echo empty($record['idvettore']) ? 'unblockable' : ''; ?>" ]}
</div> </div>
@ -441,7 +441,7 @@ if ($dir == 'entrata') {
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "number", "label": "'.('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($ddt->sconto_finale_percentuale ?: $ddt->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($ddt->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento').'." ]} {[ "type": "number", "label": "Sconto in fattura", "name": "sconto_finale", "value": "'.($ddt->sconto_finale_percentuale ?: $ddt->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($ddt->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento').'." ]}
</div> </div>
</div>'; </div>';
} }
@ -464,7 +464,7 @@ if ($dir == 'entrata') {
} else { } else {
$collapsed = ' collapsed-box'; $collapsed = ' collapsed-box';
} }
?> ?>
<!-- Fatturazione Elettronica PA--> <!-- Fatturazione Elettronica PA-->

View File

@ -51,8 +51,8 @@ $righe = $dbo->fetchArray(
<?php <?php
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$ultimo_prezzo_preventivo = $dbo->fetchArray( $ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT 'SELECT
dt_righe_ddt.idarticolo, dt_righe_ddt.idarticolo,
co_righe_preventivi.prezzo_unitario, co_righe_preventivi.prezzo_unitario,
DATE(co_righe_preventivi.updated_at) AS updated_at DATE(co_righe_preventivi.updated_at) AS updated_at
@ -67,10 +67,10 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_preventivi.id mg_articoli.id, co_righe_preventivi.id
ORDER BY ORDER BY
updated_at DESC' updated_at DESC'
)[0]; )[0];
$ultimo_prezzo_vendita = $dbo->fetchArray( $ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT 'SELECT
dt_righe_ddt.idarticolo, dt_righe_ddt.idarticolo,
co_righe_documenti.prezzo_unitario, co_righe_documenti.prezzo_unitario,
DATE(co_righe_documenti.updated_at) AS updated_at DATE(co_righe_documenti.updated_at) AS updated_at
@ -85,7 +85,7 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_documenti.id mg_articoli.id, co_righe_documenti.id
ORDER BY ORDER BY
updated_at DESC' updated_at DESC'
)[0]; )[0];
?> ?>
<tr> <tr>
@ -102,14 +102,14 @@ $righe = $dbo->fetchArray(
} else { } else {
echo 'n.d.'; echo 'n.d.';
} }
?></td> ?></td>
<td class="text-center"><?php <td class="text-center"><?php
if (isset($ultimo_prezzo_vendita)) { if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : ''); echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else { } else {
echo 'n.d.'; echo 'n.d.';
} }
?></td> ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>

View File

@ -30,19 +30,19 @@ echo '
<thead> <thead>
<tr> <tr>
<th width="5" class="text-center">'; <th width="5" class="text-center">';
if (!$block_edit && sizeof($righe) > 0) { if (!$block_edit && sizeof($righe) > 0) {
echo ' echo '
<input id="check_all" type="checkbox"/>'; <input id="check_all" type="checkbox"/>';
} }
echo ' echo '
</th> </th>
<th width="35" class="text-center">'.tr('#').'</th> <th width="35" class="text-center">'.tr('#').'</th>
<th>'.tr('Descrizione').'</th> <th>'.tr('Descrizione').'</th>
<th class="text-center tip" width="150">'.tr('Q.').'</th>'; <th class="text-center tip" width="150">'.tr('Q.').'</th>';
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>'; echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>';
} }
echo ' echo '
<th class="text-center" width="180">'.tr('Prezzo unitario').'</th> <th class="text-center" width="180">'.tr('Prezzo unitario').'</th>
<th class="text-center" width="140">'.tr('Sconto unitario').'</th> <th class="text-center" width="140">'.tr('Sconto unitario').'</th>
<th class="text-center" width="130">'.tr('Importo').'</th> <th class="text-center" width="130">'.tr('Importo').'</th>

View File

@ -19,7 +19,6 @@
namespace Modules\DDT; namespace Modules\DDT;
use Auth;
use Common\Components\Component; use Common\Components\Component;
use Common\Document; use Common\Document;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
@ -59,7 +58,7 @@ class DDT extends Document
{ {
$model = new static(); $model = new static();
$user = Auth::user(); $user = \Auth::user();
$stato_documento = Stato::where('descrizione', 'Bozza')->first(); $stato_documento = Stato::where('descrizione', 'Bozza')->first();

View File

@ -123,7 +123,7 @@ echo '
'name' => 'body', 'name' => 'body',
'value' => $record['body'], 'value' => $record['body'],
]); ]);
?> ?>
</div> </div>
</div> </div>

View File

@ -24,6 +24,6 @@ include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM em_templates WHERE id='.prepare($id_record).' AND deleted_at IS NULL'); $record = $dbo->fetchOne('SELECT * FROM em_templates WHERE id='.prepare($id_record).' AND deleted_at IS NULL');
//Controllo se ci sono newletter collegate a questo template // Controllo se ci sono newletter collegate a questo template
$newsletters = Newsletter::where('id_template', $id_record)->get(); $newsletters = Newsletter::where('id_template', $id_record)->get();
} }

View File

@ -32,7 +32,7 @@ class Mail extends Model
protected $table = 'em_emails'; protected $table = 'em_emails';
protected $options = null; protected $options;
public static function build(User $user, $template = null, $id_record = null, $account = null) public static function build(User $user, $template = null, $id_record = null, $account = null)
{ {
@ -75,8 +75,7 @@ class Mail extends Model
/** /**
* Aggiunge una stampa alla notifica. * Aggiunge una stampa alla notifica.
* *
* @param string|int $print * @param string $name
* @param string $name
*/ */
public function addPrint($print_id, $name = null) public function addPrint($print_id, $name = null)
{ {

View File

@ -19,7 +19,7 @@ class Microsoft extends Azure implements ProviderInterface
'scope' => [ 'scope' => [
'offline_access', 'offline_access',
'https://outlook.office.com/SMTP.Send', 'https://outlook.office.com/SMTP.Send',
//'https://outlook.office.com/IMAP.AccessAsUser.All' // 'https://outlook.office.com/IMAP.AccessAsUser.All'
], ],
]; ];

View File

@ -19,7 +19,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
//$block_edit = $record['is_predefined']; // $block_edit = $record['is_predefined'];
?> ?>

View File

@ -19,7 +19,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
//$block_edit = $record['is_predefined']; // $block_edit = $record['is_predefined'];
?> ?>
@ -76,11 +76,11 @@ include_once __DIR__.'/../../core.php';
<?php <?php
$results = $dbo->fetchArray('SELECT * FROM `co_pagamenti` WHERE descrizione='.prepare($record['descrizione']).' ORDER BY `num_giorni` ASC'); $results = $dbo->fetchArray('SELECT * FROM `co_pagamenti` WHERE descrizione='.prepare($record['descrizione']).' ORDER BY `num_giorni` ASC');
$numero_data = 1; $numero_data = 1;
foreach ($results as $result) { foreach ($results as $result) {
} }
?> ?>
</div> </div>
<div class="pull-right"> <div class="pull-right">

View File

@ -48,7 +48,7 @@ $stato_fe = $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id =
$ops = ['update', 'add_intervento', 'manage_documento_fe', 'manage_riga_fe', 'manage_articolo', 'manage_sconto', 'manage_riga', 'manage_descrizione', 'unlink_intervento', 'delete_riga', 'copy_riga', 'add_serial', 'add_articolo', 'edit-price']; $ops = ['update', 'add_intervento', 'manage_documento_fe', 'manage_riga_fe', 'manage_articolo', 'manage_sconto', 'manage_riga', 'manage_descrizione', 'unlink_intervento', 'delete_riga', 'copy_riga', 'add_serial', 'add_articolo', 'edit-price'];
if ($dir === 'entrata' && in_array($stato_fe['codice_stato_fe'], ['WAIT', 'RC', 'MC', 'QUEUE', 'DT', 'EC01', 'NE']) && Interaction::isEnabled() && in_array($op, $ops)) { if ($dir === 'entrata' && in_array($stato_fe['codice_stato_fe'], ['WAIT', 'RC', 'MC', 'QUEUE', 'DT', 'EC01', 'NE']) && Interaction::isEnabled() && in_array($op, $ops)) {
//Permetto sempre la modifica delle note aggiuntive e/o della data di competenza della fattura di vendita // Permetto sempre la modifica delle note aggiuntive e/o della data di competenza della fattura di vendita
if ($op == 'update' && ($fattura->note_aggiuntive != post('note_aggiuntive') || $fattura->data_competenza != post('data_competenza'))) { if ($op == 'update' && ($fattura->note_aggiuntive != post('note_aggiuntive') || $fattura->data_competenza != post('data_competenza'))) {
if ($fattura->note_aggiuntive != post('note_aggiuntive')) { if ($fattura->note_aggiuntive != post('note_aggiuntive')) {
$fattura->note_aggiuntive = post('note_aggiuntive'); $fattura->note_aggiuntive = post('note_aggiuntive');
@ -111,7 +111,7 @@ switch ($op) {
WHERE WHERE
co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment); co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment);
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->descrizione == 'Emessa') && (Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax']))) && (!empty($data_fattura_precedente['datamax']))) { if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->descrizione == 'Emessa') && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) {
$fattura->data = $data_fattura_precedente['datamax']; $fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax']; $fattura->data_competenza = $data_fattura_precedente['datamax'];
flash()->info(tr('Data di emissione aggiornata, come da impostazione!')); flash()->info(tr('Data di emissione aggiornata, come da impostazione!'));
@ -270,13 +270,13 @@ switch ($op) {
break; break;
// Ricalcolo scadenze // Ricalcolo scadenze
case 'ricalcola_scadenze': case 'ricalcola_scadenze':
$fattura->registraScadenze(false, true); $fattura->registraScadenze(false, true);
break; break;
// Ricalcolo scadenze // Ricalcolo scadenze
case 'controlla_totali': case 'controlla_totali':
$totale_documento = null; $totale_documento = null;
@ -308,7 +308,7 @@ switch ($op) {
break; break;
// Elenco fatture in stato Bozza per il cliente // Elenco fatture in stato Bozza per il cliente
case 'fatture_bozza': case 'fatture_bozza':
$id_anagrafica = post('id_anagrafica'); $id_anagrafica = post('id_anagrafica');
$stato = Stato::where('descrizione', 'Bozza')->first(); $stato = Stato::where('descrizione', 'Bozza')->first();
@ -327,7 +327,7 @@ switch ($op) {
break; break;
// Elenco fatture Scadute per il cliente // Elenco fatture Scadute per il cliente
case 'fatture_scadute': case 'fatture_scadute':
$id_anagrafica = post('id_anagrafica'); $id_anagrafica = post('id_anagrafica');
$stato1 = Stato::where('descrizione', 'Emessa')->first(); $stato1 = Stato::where('descrizione', 'Emessa')->first();
@ -353,7 +353,7 @@ switch ($op) {
break; break;
// eliminazione documento // eliminazione documento
case 'delete': case 'delete':
try { try {
$fattura->delete(); $fattura->delete();
@ -371,7 +371,7 @@ switch ($op) {
break; break;
// Duplicazione fattura // Duplicazione fattura
case 'copy': case 'copy':
$new = $fattura->replicate(); $new = $fattura->replicate();
$new->id_autofattura = null; $new->id_autofattura = null;
@ -633,7 +633,7 @@ switch ($op) {
break; break;
// Scollegamento intervento da documento // Scollegamento intervento da documento
case 'unlink_intervento': case 'unlink_intervento':
if (!empty($id_record) && post('idriga') !== null) { if (!empty($id_record) && post('idriga') !== null) {
$id_riga = post('idriga'); $id_riga = post('idriga');
@ -655,7 +655,7 @@ switch ($op) {
break; break;
// Scollegamento riga generica da documento // Scollegamento riga generica da documento
case 'delete_riga': case 'delete_riga':
$id_righe = (array) post('righe'); $id_righe = (array) post('righe');
@ -684,7 +684,7 @@ switch ($op) {
break; break;
// Duplicazione riga // Duplicazione riga
case 'copy_riga': case 'copy_riga':
$id_righe = (array) post('righe'); $id_righe = (array) post('righe');
@ -727,13 +727,13 @@ switch ($op) {
break; break;
// Aggiunta di un documento esterno // Aggiunta di un documento esterno
case 'add_documento': case 'add_documento':
$class = post('class'); $class = post('class');
$id_documento = post('id_documento'); $id_documento = post('id_documento');
// Individuazione del documento originale // Individuazione del documento originale
if (!is_subclass_of($class, \Common\Document::class)) { if (!is_subclass_of($class, Common\Document::class)) {
return; return;
} }
$documento = $class::find($id_documento); $documento = $class::find($id_documento);
@ -822,7 +822,7 @@ switch ($op) {
break; break;
// Nota di credito // Nota di credito
case 'nota_credito': case 'nota_credito':
$id_documento = post('id_documento'); $id_documento = post('id_documento');
$fattura = Fattura::find($id_documento); $fattura = Fattura::find($id_documento);
@ -871,7 +871,7 @@ switch ($op) {
break; break;
// Autofattura // Autofattura
case 'autofattura': case 'autofattura':
$fattura = Fattura::find($id_record); $fattura = Fattura::find($id_record);
@ -1034,7 +1034,7 @@ switch ($op) {
} }
break; break;
// Controllo se impostare anagrafica azienda in base a tipologia documento // Controllo se impostare anagrafica azienda in base a tipologia documento
case 'check_tipodocumento': case 'check_tipodocumento':
$idtipodocumento = post('idtipodocumento'); $idtipodocumento = post('idtipodocumento');
$tipologie = Tipo::wherein('codice_tipo_documento_fe', ['TD21', 'TD27'])->where('dir', 'entrata')->get()->pluck('id')->toArray(); $tipologie = Tipo::wherein('codice_tipo_documento_fe', ['TD21', 'TD27'])->where('dir', 'entrata')->get()->pluck('id')->toArray();
@ -1066,7 +1066,7 @@ switch ($op) {
$numero_totale = 0; $numero_totale = 0;
foreach ($righe as $riga) { foreach ($righe as $riga) {
if (($riga['id']) != null) { if ($riga['id'] != null) {
$articolo = Articolo::find($riga['id']); $articolo = Articolo::find($riga['id']);
} }

View File

@ -57,7 +57,7 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
} else { } else {
$size = 6; $size = 6;
} }
?> ?>
<div class="col-md-<?php echo $size; ?>"> <div class="col-md-<?php echo $size; ?>">
{[ "type": "date", "label": "<?php echo tr('Data'); ?>", "name": "data", "required": 1, "value": "-now-" ]} {[ "type": "date", "label": "<?php echo tr('Data'); ?>", "name": "data", "required": 1, "value": "-now-" ]}
@ -79,8 +79,8 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
</div> </div>
<?php <?php
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div id="info" class="hidden"> <div id="info" class="hidden">
<div class="row"> <div class="row">
<div class="col-md-6 "> <div class="col-md-6 ">
@ -128,8 +128,8 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
'.tr('Seleziona prima un cliente').'... '.tr('Seleziona prima un cliente').'...
</div> </div>
</div>'; </div>';
} }
?> ?>
<!-- PULSANTI --> <!-- PULSANTI -->
<div class="row"> <div class="row">

View File

@ -78,7 +78,7 @@ $rs = $dbo->fetchArray('SELECT
AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL) AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL)
AND NOT in_interventi.id IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL) '.$where); AND NOT in_interventi.id IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL) '.$where);
foreach ($rs as $key => $value) { foreach ($rs as $key => $value) {
$intervento = \Modules\Interventi\Intervento::find($value['id']); $intervento = Modules\Interventi\Intervento::find($value['id']);
$prezzo = $intervento->totale; $prezzo = $intervento->totale;
$rs[$key]['prezzo'] = Translator::numberToLocale($prezzo); $rs[$key]['prezzo'] = Translator::numberToLocale($prezzo);

View File

@ -41,7 +41,7 @@ foreach ($fields as $name => $value) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"'; $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
} }
//$query .= Modules::getAdditionalsQuery('Interventi'); // $query .= Modules::getAdditionalsQuery('Interventi');
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);

View File

@ -223,7 +223,7 @@ switch (post('op')) {
if ($result) { if ($result) {
++$added; ++$added;
//operationLog('export-xml-bulk', ['id_record' => $r['id']]); // operationLog('export-xml-bulk', ['id_record' => $r['id']]);
} else { } else {
$failed[] = $fattura->numero_esterno; $failed[] = $fattura->numero_esterno;
} }
@ -281,7 +281,7 @@ switch (post('op')) {
if ($result) { if ($result) {
++$added; ++$added;
//operationLog('export-xml-bulk', ['id_record' => $r['id']]); // operationLog('export-xml-bulk', ['id_record' => $r['id']]);
} else { } else {
$failed[] = $fattura->numero_esterno; $failed[] = $fattura->numero_esterno;
} }
@ -314,22 +314,22 @@ switch (post('op')) {
$id_segment = (post('id_segment') ? post('id_segment') : $fattura->id_segment); $id_segment = (post('id_segment') ? post('id_segment') : $fattura->id_segment);
$dir = $dbo->fetchOne('SELECT dir FROM co_tipidocumento WHERE id='.prepare($fattura->idtipodocumento))['dir']; $dir = $dbo->fetchOne('SELECT dir FROM co_tipidocumento WHERE id='.prepare($fattura->idtipodocumento))['dir'];
//+ 1 giorno // + 1 giorno
if (post('skip_time') == 'Giorno') { if (post('skip_time') == 'Giorno') {
$data = date('Y-m-d', strtotime('+1 day', strtotime($fattura->data))); $data = date('Y-m-d', strtotime('+1 day', strtotime($fattura->data)));
} }
//+ 1 settimana // + 1 settimana
if (post('skip_time') == 'Settimana') { if (post('skip_time') == 'Settimana') {
$data = date('Y-m-d', strtotime('+1 week', strtotime($fattura->data))); $data = date('Y-m-d', strtotime('+1 week', strtotime($fattura->data)));
} }
//+ 1 mese // + 1 mese
if (post('skip_time') == 'Mese') { if (post('skip_time') == 'Mese') {
$data = date('Y-m-d', strtotime('+1 month', strtotime($fattura->data))); $data = date('Y-m-d', strtotime('+1 month', strtotime($fattura->data)));
} }
//+ 1 anno // + 1 anno
if (post('skip_time') == 'Anno') { if (post('skip_time') == 'Anno') {
$data = date('Y-m-d', strtotime('+1 year', strtotime($fattura->data))); $data = date('Y-m-d', strtotime('+1 year', strtotime($fattura->data)));
} }
@ -374,50 +374,50 @@ switch (post('op')) {
break; break;
case 'check-bulk': case 'check-bulk':
$controllo = new DatiFattureElettroniche(); $controllo = new DatiFattureElettroniche();
$fatture = []; $fatture = [];
foreach ($id_records as $id) { foreach ($id_records as $id) {
$fattura_vendita = Fattura::vendita() $fattura_vendita = Fattura::vendita()
->whereNotIn('codice_stato_fe', ['ERR', 'NS', 'EC02', 'ERVAL']) ->whereNotIn('codice_stato_fe', ['ERR', 'NS', 'EC02', 'ERVAL'])
->where('data', '>=', $_SESSION['period_start']) ->where('data', '>=', $_SESSION['period_start'])
->where('data', '<=', $_SESSION['period_end']) ->where('data', '<=', $_SESSION['period_end'])
->where('id', '=', $id) ->where('id', '=', $id)
->orderBy('data') ->orderBy('data')
->first(); ->first();
if (!empty($fattura_vendita)) { if (!empty($fattura_vendita)) {
$fatture[$id] = $fattura_vendita; $fatture[$id] = $fattura_vendita;
$controllo->checkFattura($fattura_vendita); $controllo->checkFattura($fattura_vendita);
}
} }
}
$results = $controllo->getResults(); $results = $controllo->getResults();
$num = count($results); $num = count($results);
// Messaggi di risposta // Messaggi di risposta
if (empty($fatture)) { if (empty($fatture)) {
flash()->warning(tr('Nessuna fattura utile per il controllo!')); flash()->warning(tr('Nessuna fattura utile per il controllo!'));
} elseif (empty($results)) { } elseif (empty($results)) {
flash()->info(tr('Nessuna anomalia!')); flash()->info(tr('Nessuna anomalia!'));
} else { } else {
flash()->info(tr('Fatture _LIST_ controllate.', [ flash()->info(tr('Fatture _LIST_ controllate.', [
'_LIST_' => implode(',', array_column($results, 'numero')), '_LIST_' => implode(',', array_column($results, 'numero')),
])); ]));
$riepilogo_anomalie = tr('Attenzione: Trovate _NUM_ anomalie! Le seguenti fatture non trovano corrispondenza tra XML e dati nel documento', ['_NUM_' => $num]).':</br></br>'; $riepilogo_anomalie = tr('Attenzione: Trovate _NUM_ anomalie! Le seguenti fatture non trovano corrispondenza tra XML e dati nel documento', ['_NUM_' => $num]).':</br></br>';
foreach ($results as $anomalia) { foreach ($results as $anomalia) {
$fattura = $fatture[$anomalia['id']]; $fattura = $fatture[$anomalia['id']];
$riepilogo_anomalie .= '<ul> $riepilogo_anomalie .= '<ul>
<li>'.reference($fattura, $fattura->getReference()).'</li> <li>'.reference($fattura, $fattura->getReference()).'</li>
<li>'.$anomalia['descrizione'].'</li> <li>'.$anomalia['descrizione'].'</li>
</ul><br>'; </ul><br>';
}
flash()->warning($riepilogo_anomalie);
} }
flash()->warning($riepilogo_anomalie);
}
break; break;
case 'export-csv': case 'export-csv':
@ -486,7 +486,7 @@ switch (post('op')) {
WHERE WHERE
co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment); co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment);
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && (Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax']))) && (!empty($data_fattura_precedente['datamax']))) { if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) {
$fattura->data = $data_fattura_precedente['datamax']; $fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax']; $fattura->data_competenza = $data_fattura_precedente['datamax'];
} }

View File

@ -63,7 +63,7 @@ if (empty($record['is_fiscale'])) {
{[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}'; {[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}';
echo ' echo '
<button type="button" class="btn btn-warning ask" data-msg="'.tr('Vuoi trasformare questa fattura pro-forma in una di tipo fiscale?').'<br>'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="transform" data-button="'.tr('Trasforma').'" data-class="btn btn-lg btn-warning" data-backto="record-edit"> <button type="button" class="btn btn-warning ask" data-msg="'.tr('Vuoi trasformare questa fattura pro-forma in una di tipo fiscale?').'<br>'.prepareToField(HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="transform" data-button="'.tr('Trasforma').'" data-class="btn btn-lg btn-warning" data-backto="record-edit">
<i class="fa fa-upload"></i> '.tr('Trasforma in fattura fiscale').' <i class="fa fa-upload"></i> '.tr('Trasforma in fattura fiscale').'
</button>'; </button>';
} }

View File

@ -82,7 +82,7 @@ if ($module->name == 'Fatture di vendita' && $services_enable) {
} }
} }
} }
//Controllo già presente sul plugin Ricevute FE // Controllo già presente sul plugin Ricevute FE
if (sizeof($documenti_scarto) > 0) { if (sizeof($documenti_scarto) > 0) {
echo ' echo '
<div class="alert alert-danger"> <div class="alert alert-danger">

View File

@ -73,7 +73,7 @@ if ($dir == 'entrata' && !empty($fattura->dichiarazione)) {
</div>'; </div>';
} }
} else { } else {
//TODO link ad impostazioni con nuova ricerca rapida // TODO link ad impostazioni con nuova ricerca rapida
echo ' echo '
<div class="alert alert-warning"> <div class="alert alert-warning">
<i class="fa fa-warning"></i> '.tr("Attenzione nessuna aliq. IVA definita per la dichiarazione d'intento. _SETTING_", [ <i class="fa fa-warning"></i> '.tr("Attenzione nessuna aliq. IVA definita per la dichiarazione d'intento. _SETTING_", [
@ -131,7 +131,7 @@ if (!empty($note_accredito)) {
]); ]);
echo ' echo '
<br>'.Modules::link(($dir == 'entrata' ? 'Fatture di vendita' : 'Fatture di acquisto'), $nota['id'], $text, $text); <br>'.Modules::link($dir == 'entrata' ? 'Fatture di vendita' : 'Fatture di acquisto', $nota['id'], $text, $text);
} }
echo ' echo '
</div>'; </div>';
@ -227,7 +227,7 @@ if ($dir == 'entrata') {
$label = tr('Numero fattura'); $label = tr('Numero fattura');
$size = 4; $size = 4;
} }
?> ?>
<div class="col-md-<?php echo $size; ?>"> <div class="col-md-<?php echo $size; ?>">
{[ "type": "text", "label": "<?php echo $label; ?>", "required": "<?php echo ($dir == 'uscita') ? 1 : 0; ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$", "help": "<?php echo (empty($record['numero_esterno']) and $dir == 'entrata') ? tr('Il numero della fattura sarà generato automaticamente in fase di emissione.') : ''; ?>" ]} {[ "type": "text", "label": "<?php echo $label; ?>", "required": "<?php echo ($dir == 'uscita') ? 1 : 0; ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$", "help": "<?php echo (empty($record['numero_esterno']) and $dir == 'entrata') ? tr('Il numero della fattura sarà generato automaticamente in fase di emissione.') : ''; ?>" ]}
@ -255,9 +255,9 @@ $query .= ' ORDER BY descrizione';
?> ?>
<?php if ($dir == 'entrata') { <?php if ($dir == 'entrata') {
$readonly = '"readonly":1,'; $readonly = '"readonly":1,';
} }
?> ?>
<div class="col-md-2" <?php echo ($dir == 'entrata') ? 'hidden' : ''; ?>> <div class="col-md-2" <?php echo ($dir == 'entrata') ? 'hidden' : ''; ?>>
{[ "type": "date", "label": "<?php echo tr('Data registrazione'); ?>", <?php echo $readonly; ?> "name": "data_registrazione", "value": "$data_registrazione$", "help": "<?php echo tr('Data in cui si è effettuata la registrazione della fattura in contabilità'); ?>" ]} {[ "type": "date", "label": "<?php echo tr('Data registrazione'); ?>", <?php echo $readonly; ?> "name": "data_registrazione", "value": "$data_registrazione$", "help": "<?php echo tr('Data in cui si è effettuata la registrazione della fattura in contabilità'); ?>" ]}
@ -269,17 +269,17 @@ $query .= ' ORDER BY descrizione';
</div> </div>
<?php <?php
if ($dir == 'entrata') { if ($dir == 'entrata') {
?> ?>
<div class="col-md-2" <?php echo ($is_fiscale) ? '' : 'hidden'; ?> > <div class="col-md-2" <?php echo ($is_fiscale) ? '' : 'hidden'; ?> >
{[ "type": "select", "label": "<?php echo tr('Stato FE'); ?>", "name": "codice_stato_fe", "values": "query=SELECT codice as id, CONCAT_WS(' - ',codice,descrizione) as text FROM fe_stati_documento", "value": "$codice_stato_fe$", "disabled": <?php echo intval(Interaction::isEnabled() || ($record['stato'] == 'Bozza' && $abilita_genera)); ?>, "class": "unblockable", "help": "<?php echo (!empty($record['data_stato_fe'])) ? Translator::timestampToLocale($record['data_stato_fe']) : ''; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Stato FE'); ?>", "name": "codice_stato_fe", "values": "query=SELECT codice as id, CONCAT_WS(' - ',codice,descrizione) as text FROM fe_stati_documento", "value": "$codice_stato_fe$", "disabled": <?php echo intval(Interaction::isEnabled() || ($record['stato'] == 'Bozza' && $abilita_genera)); ?>, "class": "unblockable", "help": "<?php echo (!empty($record['data_stato_fe'])) ? Translator::timestampToLocale($record['data_stato_fe']) : ''; ?>" ]}
</div> </div>
<?php <?php
} }
echo ' echo '
<div class="col-md-'.($is_fiscale ? 2 : 6).'"> <div class="col-md-'.($is_fiscale ? 2 : 6).'">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatodocumento", "required": 1, "values": "query='.$query.'", "value": "$idstatodocumento$", "class": "'.(($record['stato'] != 'Bozza' && !$abilita_genera) ? '' : 'unblockable').'", "extra": "onchange=\"return cambiaStato()\"" ]} {[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatodocumento", "required": 1, "values": "query='.$query.'", "value": "$idstatodocumento$", "class": "'.(($record['stato'] != 'Bozza' && !$abilita_genera) ? '' : 'unblockable').'", "extra": "onchange=\"return cambiaStato()\"" ]}
</div> </div>
@ -289,48 +289,48 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-4"> <div class="col-md-4">
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"'); '.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
if ($dir == 'entrata') { if ($dir == 'entrata') {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "clienti", "help": "<?php echo tr("In caso di autofattura indicare l'azienda: ").stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']); ?>", "value": "$idanagrafica$" ]} {[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "clienti", "help": "<?php echo tr("In caso di autofattura indicare l'azienda: ").stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']); ?>", "value": "$idanagrafica$" ]}
<?php <?php
} else { } else {
?> ?>
{[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "fornitori", "value": "$idanagrafica$" ]} {[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "fornitori", "value": "$idanagrafica$" ]}
<?php <?php
} }
echo ' echo '
</div>'; </div>';
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div class="col-md-4">'; <div class="col-md-4">';
if ($record['idagente'] != 0) { if ($record['idagente'] != 0) {
echo Modules::link('Anagrafiche', $record['idagente_fattura'], null, null, 'class="pull-right"'); echo Modules::link('Anagrafiche', $record['idagente_fattura'], null, null, 'class="pull-right"');
} }
echo ' echo '
{[ "type": "select", "label": "'.tr('Agente di riferimento').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente_fattura$" ]} {[ "type": "select", "label": "'.tr('Agente di riferimento').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente_fattura$" ]}
</div>'; </div>';
} }
echo ' echo '
<div class="col-md-4">'; <div class="col-md-4">';
if (!empty($record['idreferente'])) { if (!empty($record['idreferente'])) {
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"'); echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
} }
echo ' echo '
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'}, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'}, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>'; </div>';
echo ' echo '
</div> </div>
<div class="row">'; <div class="row">';
// Conteggio numero articoli fatture // Conteggio numero articoli fatture
$articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN co_righe_documenti ON mg_articoli.id=co_righe_documenti.idarticolo) INNER JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento) WHERE co_documenti.id='.prepare($id_record)); $articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN co_righe_documenti ON mg_articoli.id=co_righe_documenti.idarticolo) INNER JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento) WHERE co_documenti.id='.prepare($id_record));
$id_modulo_anagrafiche = Modules::get('Anagrafiche')['id']; $id_modulo_anagrafiche = Modules::get('Anagrafiche')['id'];
$id_plugin_sedi = Plugins::get('Sedi')['id']; $id_plugin_sedi = Plugins::get('Sedi')['id'];
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "help": "'.tr("Sedi di partenza dell'azienda").'" ]} {[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "help": "'.tr("Sedi di partenza dell'azienda").'" ]}
</div> </div>
@ -338,8 +338,8 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_destinazione$", "help": "'.tr('Sedi del destinatario').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_destinazione$", "help": "'.tr('Sedi del destinatario').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>'; </div>';
} else { } else {
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_partenza$", "help": "'.tr('Sedi del mittente').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_partenza$", "help": "'.tr('Sedi del mittente').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div> </div>
@ -347,8 +347,8 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "help": "'.tr("Sedi di arrivo dell'azienda").'" ]} {[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "help": "'.tr("Sedi di arrivo dell'azienda").'" ]}
</div>'; </div>';
} }
?> ?>
</div> </div>
<hr> <hr>
@ -368,23 +368,23 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-3"> <div class="col-md-3">
<?php if ($record['id_banca_azienda'] != 0) { <?php if ($record['id_banca_azienda'] != 0) {
echo Modules::link('Banche', $record['id_banca_azienda'], null, null, 'class="pull-right"'); echo Modules::link('Banche', $record['id_banca_azienda'], null, null, 'class="pull-right"');
} }
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
{[ "type": "select", "label": "'.tr('Banca accredito').'", "name": "id_banca_azienda", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$id_banca_azienda$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica_azienda->id.'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr('Banca accredito').'", "name": "id_banca_azienda", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$id_banca_azienda$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica_azienda->id.'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Banca addebito').'", "name": "id_banca_controparte", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $record['idanagrafica']]).', "value": "$id_banca_controparte$", "icon-after": "add|'.Modules::get('Banche')['id'].'|idanagrafica='.$record['idanagrafica'].'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}'; {[ "type": "select", "label": "'.tr('Banca addebito').'", "name": "id_banca_controparte", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $record['idanagrafica']]).', "value": "$id_banca_controparte$", "icon-after": "add|'.Modules::get('Banche')['id'].'|idanagrafica='.$record['idanagrafica'].'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}';
} else { } else {
echo ' echo '
{[ "type": "select", "label": "'.tr('Banca accredito').'", "name": "id_banca_controparte", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $record['idanagrafica']]).', "value": "$id_banca_controparte$", "icon-after": "add|'.Modules::get('Banche')['id'].'|idanagrafica='.$record['idanagrafica'].'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr('Banca accredito').'", "name": "id_banca_controparte", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $record['idanagrafica']]).', "value": "$id_banca_controparte$", "icon-after": "add|'.Modules::get('Banche')['id'].'|idanagrafica='.$record['idanagrafica'].'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Banca addebito').'", "name": "id_banca_azienda", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$id_banca_azienda$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica_azienda->id.'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}'; {[ "type": "select", "label": "'.tr('Banca addebito').'", "name": "id_banca_azienda", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$id_banca_azienda$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica_azienda->id.'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}';
} }
?> ?>
</div> </div>
</div> </div>
@ -396,81 +396,81 @@ $query .= ' ORDER BY descrizione';
</div> </div>
<?php <?php
// TODO: Fattura per conto del fornitore (es. cooperative agricole che emettono la fattura per conto dei propri soci produttori agricoli conferenti) // TODO: Fattura per conto del fornitore (es. cooperative agricole che emettono la fattura per conto dei propri soci produttori agricoli conferenti)
if ($dir == 'entrata') { if ($dir == 'entrata') {
?> ?>
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Fattura per conto terzi'); ?>", "name": "is_fattura_conto_terzi", "value": "$is_fattura_conto_terzi$", "help": "<?php echo tr('Nell\'XML della Fattura Elettronica sarà indicato il fornitore ('.stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).') come cessionario e il cliente come cedente/prestatore.'); ?>", "placeholder": "<?php echo tr('Fattura per conto terzi'); ?>" ]} {[ "type": "checkbox", "label": "<?php echo tr('Fattura per conto terzi'); ?>", "name": "is_fattura_conto_terzi", "value": "$is_fattura_conto_terzi$", "help": "<?php echo tr('Nell\'XML della Fattura Elettronica sarà indicato il fornitore ('.stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).') come cessionario e il cliente come cedente/prestatore.'); ?>", "placeholder": "<?php echo tr('Fattura per conto terzi'); ?>" ]}
</div> </div>
<?php <?php
echo '<div class="col-md-3"> echo '<div class="col-md-3">
{[ "type": "number", "label": "'.tr('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($fattura->sconto_finale_percentuale ?: $fattura->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($fattura->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul Netto a pagare del documento e le relative scadenze').'. '.tr('Per utilizzarlo in relazione a una riga della Fattura Elettronica, inserire il tipo di dato in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'TipoDato\'\' e il testo di descrizione in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'RiferimentoTesto\'\' della specifica riga').'. '.tr('Nota: lo sconto in fattura non influenza i movimenti contabili').'." ]} {[ "type": "number", "label": "'.tr('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($fattura->sconto_finale_percentuale ?: $fattura->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($fattura->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul Netto a pagare del documento e le relative scadenze').'. '.tr('Per utilizzarlo in relazione a una riga della Fattura Elettronica, inserire il tipo di dato in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'TipoDato\'\' e il testo di descrizione in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'RiferimentoTesto\'\' della specifica riga').'. '.tr('Nota: lo sconto in fattura non influenza i movimenti contabili').'." ]}
</div>'; </div>';
} else { } else {
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
</div>'; </div>';
} }
if ($record['stato'] != 'Bozza' && $record['stato'] != 'Annullata') { if ($record['stato'] != 'Bozza' && $record['stato'] != 'Annullata') {
$scadenze = $fattura->scadenze; $scadenze = $fattura->scadenze;
$ricalcola = true; $ricalcola = true;
foreach ($scadenze as $scadenza) { foreach ($scadenze as $scadenza) {
$ricalcola = empty(floatval($scadenza->pagato)) && $ricalcola; $ricalcola = empty(floatval($scadenza->pagato)) && $ricalcola;
} }
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
<p class="pull-left"><strong>'.tr('Scadenze').'</strong></p> <p class="pull-left"><strong>'.tr('Scadenze').'</strong></p>
<div class="btn-group pull-right"> <div class="btn-group pull-right">
'.Modules::link('Scadenzario', $scadenze[0]['id'], tr('<i class="fa fa-edit tip" title="'.tr('Modifica scadenze').'"></i>'), '', 'class="btn btn-xs btn-primary"'); '.Modules::link('Scadenzario', $scadenze[0]['id'], tr('<i class="fa fa-edit tip" title="'.tr('Modifica scadenze').'"></i>'), '', 'class="btn btn-xs btn-primary"');
// Ricalcola scadenze disponibile solo per fatture di acquisto // Ricalcola scadenze disponibile solo per fatture di acquisto
if ($fattura->isFE() && $ricalcola && $module['name'] == 'Fatture di acquisto') { if ($fattura->isFE() && $ricalcola && $module['name'] == 'Fatture di acquisto') {
echo ' echo '
<button type="button" class="btn btn-info btn-xs pull-right tip" title="'.tr('Ricalcola le scadenze').'. '.tr('Per ricalcolare correttamente le scadenze, imposta la fattura di acquisto nello stato \'\'Bozza\'\' e correggi il documento come desiderato, poi re-imposta lo stato \'\'Emessa\'\' e utilizza questa funzione').'." id="ricalcola_scadenze"> <button type="button" class="btn btn-info btn-xs pull-right tip" title="'.tr('Ricalcola le scadenze').'. '.tr('Per ricalcolare correttamente le scadenze, imposta la fattura di acquisto nello stato \'\'Bozza\'\' e correggi il documento come desiderato, poi re-imposta lo stato \'\'Emessa\'\' e utilizza questa funzione').'." id="ricalcola_scadenze">
<i class="fa fa-calculator" aria-hidden="true"></i> <i class="fa fa-calculator" aria-hidden="true"></i>
</button>'; </button>';
} }
echo ' echo '
</div> </div>
<div class="clearfix"></div>'; <div class="clearfix"></div>';
foreach ($scadenze as $scadenza) { foreach ($scadenze as $scadenza) {
$pagamento_iniziato = !empty(floatval($scadenza->pagato)) || $scadenza->da_pagare == 0; $pagamento_iniziato = !empty(floatval($scadenza->pagato)) || $scadenza->da_pagare == 0;
echo ' echo '
<p>'.dateFormat($scadenza['scadenza']).': '; <p>'.dateFormat($scadenza['scadenza']).': ';
if ($pagamento_iniziato) { if ($pagamento_iniziato) {
echo ' echo '
<strike>'; <strike>';
} }
echo(empty($scadenza->da_pagare) ? '<i class="fa fa-exclamation-triangle"></i>' : '').moneyFormat($scadenza->da_pagare); echo (empty($scadenza->da_pagare) ? '<i class="fa fa-exclamation-triangle"></i>' : '').moneyFormat($scadenza->da_pagare);
if ($pagamento_iniziato) { if ($pagamento_iniziato) {
echo ' echo '
</strike>'; </strike>';
} }
if ($pagamento_iniziato && $scadenza->pagato != $scadenza->da_pagare) { if ($pagamento_iniziato && $scadenza->pagato != $scadenza->da_pagare) {
echo ' ('.moneyFormat($scadenza->da_pagare - $scadenza->pagato).')'; echo ' ('.moneyFormat($scadenza->da_pagare - $scadenza->pagato).')';
} }
echo ' echo '
</p>'; </p>';
} }
echo ' echo '
</div>'; </div>';
} }
?> ?>
</div> </div>
<div class="row"> <div class="row">
@ -480,34 +480,34 @@ $query .= ' ORDER BY descrizione';
</div> </div>
<?php <?php
if ($dir == 'uscita') { if ($dir == 'uscita') {
echo ' echo '
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]} {[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]}
</div>'; </div>';
} }
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div class="col-md-6">'; <div class="col-md-6">';
if (!empty($record['id_dichiarazione_intento'])) { if (!empty($record['id_dichiarazione_intento'])) {
echo Plugins::link("Dichiarazioni d'Intento", $record['idanagrafica'], null, null, 'class="pull-right"'); echo Plugins::link("Dichiarazioni d'Intento", $record['idanagrafica'], null, null, 'class="pull-right"');
} }
echo ' echo '
{[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento", "help": "'.tr('Elenco delle dichiarazioni d\'intento definite all\'interno dell\'anagrafica del cliente').'.", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "data": "'.$record['data'].'"},"value": "$id_dichiarazione_intento$", "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Dichiarazioni d\'Intento')['id'].'&id_parent='.$record['idanagrafica'].'", "extra": "'.((intval($block_edit)) ? 'disabled' : '').'" ]} {[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento", "help": "'.tr('Elenco delle dichiarazioni d\'intento definite all\'interno dell\'anagrafica del cliente').'.", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "data": "'.$record['data'].'"},"value": "$id_dichiarazione_intento$", "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Dichiarazioni d\'Intento')['id'].'&id_parent='.$record['idanagrafica'].'", "extra": "'.((intval($block_edit)) ? 'disabled' : '').'" ]}
</div>'; </div>';
} }
echo ' echo '
</div>'; </div>';
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo ' echo '
<div class="row"> <div class="row">
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr('Marca da bollo automatica').'", "name": "bollo_automatico", "value": "'.intval(!isset($record['bollo'])).'", "help": "'.tr("Seleziona per impostare automaticamente l'importo della marca da bollo").'. '.tr('Applicata solo se il totale della fattura è maggiore di _MONEY_', [ {[ "type": "checkbox", "label": "'.tr('Marca da bollo automatica').'", "name": "bollo_automatico", "value": "'.intval(!isset($record['bollo'])).'", "help": "'.tr("Seleziona per impostare automaticamente l'importo della marca da bollo").'. '.tr('Applicata solo se il totale della fattura è maggiore di _MONEY_', [
'_MONEY_' => moneyFormat(setting("Soglia minima per l'applicazione della marca da bollo")), '_MONEY_' => moneyFormat(setting("Soglia minima per l'applicazione della marca da bollo")),
]).'.", "placeholder": "'.tr('Bollo automatico').'" ]} ]).'.", "placeholder": "'.tr('Bollo automatico').'" ]}
</div> </div>
<div class="col-md-3 bollo"> <div class="col-md-3 bollo">
@ -519,8 +519,8 @@ $query .= ' ORDER BY descrizione';
</div> </div>
</div>'; </div>';
$bollo = new Bollo($fattura); $bollo = new Bollo($fattura);
} }
?> ?>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
@ -702,7 +702,7 @@ if ($record['descrizione_tipo'] == 'Fattura accompagnatoria di vendita') {
echo ' echo '
</form>'; </form>';
//Dich. intento collegata // Dich. intento collegata
if ($dir == 'entrata' && !empty($fattura->dichiarazione)) { if ($dir == 'entrata' && !empty($fattura->dichiarazione)) {
$ive_accettate = $dbo->table('co_iva')->where('codice_natura_fe', 'N3.5')->get(); $ive_accettate = $dbo->table('co_iva')->where('codice_natura_fe', 'N3.5')->get();
foreach ($ive_accettate as $iva_accettata) { foreach ($ive_accettate as $iva_accettata) {
@ -953,11 +953,11 @@ echo '
} }
}'; }';
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo '$("#idsede_destinazione").selectReset();'; echo '$("#idsede_destinazione").selectReset();';
} else { } else {
echo '$("#idsede_partenza").selectReset();'; echo '$("#idsede_partenza").selectReset();';
} }
echo ' echo '
}); });

View File

@ -82,7 +82,7 @@ echo '
</tr>'; </tr>';
// Tipo Cessione Prestazione // Tipo Cessione Prestazione
echo ' echo '
<tr class="fourth-level"> <tr class="fourth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 3).'2.2.1.2 TipoCessionePrestazione</td> <td style="vertical-align: middle;">'.str_repeat($space, 3).'2.2.1.2 TipoCessionePrestazione</td>
<td> <td>
@ -157,7 +157,7 @@ foreach ($result['altri_dati'] as $dato) {
++$key; ++$key;
} }
echo ' echo '
</table>'; </table>';

View File

@ -51,8 +51,8 @@ $righe = $dbo->fetchArray(
<?php <?php
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$ultimo_prezzo_preventivo = $dbo->fetchArray( $ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT 'SELECT
co_righe_documenti.idarticolo, co_righe_documenti.idarticolo,
co_righe_preventivi.prezzo_unitario, co_righe_preventivi.prezzo_unitario,
DATE(co_righe_preventivi.updated_at) AS updated_at DATE(co_righe_preventivi.updated_at) AS updated_at
@ -67,10 +67,10 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_preventivi.id mg_articoli.id, co_righe_preventivi.id
ORDER BY ORDER BY
updated_at DESC' updated_at DESC'
)[0]; )[0];
$ultimo_prezzo_vendita = $dbo->fetchArray( $ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT 'SELECT
co_righe_documenti.idarticolo, co_righe_documenti.idarticolo,
co_righe_documenti.prezzo_unitario, co_righe_documenti.prezzo_unitario,
DATE(co_righe_documenti.updated_at) AS updated_at DATE(co_righe_documenti.updated_at) AS updated_at
@ -84,7 +84,7 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_documenti.id mg_articoli.id, co_righe_documenti.id
ORDER BY ORDER BY
updated_at DESC' updated_at DESC'
)[0]; )[0];
?> ?>
<tr> <tr>
@ -101,14 +101,14 @@ $righe = $dbo->fetchArray(
} else { } else {
echo 'n.d.'; echo 'n.d.';
} }
?></td> ?></td>
<td class="text-center"><?php <td class="text-center"><?php
if (isset($ultimo_prezzo_vendita)) { if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : ''); echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else { } else {
echo 'n.d.'; echo 'n.d.';
} }
?></td> ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>

View File

@ -187,7 +187,7 @@ if (!function_exists('aggiungi_movimento')) {
{ {
$dbo = database(); $dbo = database();
$fattura = Modules\Fatture\Fattura::find($iddocumento); $fattura = Fattura::find($iddocumento);
$is_nota = $fattura->isNota(); $is_nota = $fattura->isNota();
// Totale marca da bollo, inps, ritenuta, idagente // Totale marca da bollo, inps, ritenuta, idagente

View File

@ -32,19 +32,19 @@ echo '
<thead> <thead>
<tr> <tr>
<th width="5" class="text-center">'; <th width="5" class="text-center">';
if (!$block_edit && sizeof($righe) > 0) { if (!$block_edit && sizeof($righe) > 0) {
echo ' echo '
<input id="check_all" type="checkbox"/>'; <input id="check_all" type="checkbox"/>';
} }
echo ' echo '
</th> </th>
<th width="35" class="text-center" >'.tr('#').'</th> <th width="35" class="text-center" >'.tr('#').'</th>
<th class="text-left" style="width:30%;">'.tr('Descrizione').'</th> <th class="text-left" style="width:30%;">'.tr('Descrizione').'</th>
<th class="text-center" width="120">'.tr('Q.').'</th>'; <th class="text-center" width="120">'.tr('Q.').'</th>';
if ($dir == 'entrata') { if ($dir == 'entrata') {
echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>'; echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>';
} }
echo ' echo '
<th class="text-center" width="180">'.tr('Prezzo unitario').'</th> <th class="text-center" width="180">'.tr('Prezzo unitario').'</th>
<th class="text-center" width="140">'.tr('Sconto unitario').'</th> <th class="text-center" width="140">'.tr('Sconto unitario').'</th>
<th class="text-center" width="120">'.tr('Iva unitaria').'</th> <th class="text-center" width="120">'.tr('Iva unitaria').'</th>
@ -177,8 +177,8 @@ foreach ($righe as $riga) {
if (!empty($riga->note)) { if (!empty($riga->note)) {
if (strlen($riga->note) > 50) { if (strlen($riga->note) > 50) {
$prima_parte = substr($riga->note, 0, ((strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50)); $prima_parte = substr($riga->note, 0, (strpos($riga->note, ' ', 50) < 60) && (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)); $seconda_parte = substr($riga->note, (strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50);
$stringa_modificata = '<small class="label label-default">'.$prima_parte.'</small> $stringa_modificata = '<small class="label label-default">'.$prima_parte.'</small>
<span id="read-more-target-'.$riga->id.'" class="read-more-target"><small class="label label-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>'; <span id="read-more-target-'.$riga->id.'" class="read-more-target"><small class="label label-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>';
} else { } else {

View File

@ -19,12 +19,10 @@
namespace Modules\Fatture; namespace Modules\Fatture;
use Auth;
use Carbon\Carbon; use Carbon\Carbon;
use Common\Components\Component; use Common\Components\Component;
use Common\Document; use Common\Document;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use InvalidArgumentException;
use Models\Upload; use Models\Upload;
use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Anagrafica;
use Modules\Banche\Banca; use Modules\Banche\Banca;
@ -39,7 +37,6 @@ use Plugins\DichiarazioniIntento\Dichiarazione;
use Plugins\ExportFE\FatturaElettronica; use Plugins\ExportFE\FatturaElettronica;
use Traits\RecordTrait; use Traits\RecordTrait;
use Traits\ReferenceTrait; use Traits\ReferenceTrait;
use Translator;
use Util\Generator; use Util\Generator;
class Fattura extends Document class Fattura extends Document
@ -95,7 +92,7 @@ class Fattura extends Document
{ {
$model = new static(); $model = new static();
$user = Auth::user(); $user = \Auth::user();
$database = database(); $database = database();
// Individuazione dello stato predefinito per il documento // Individuazione dello stato predefinito per il documento
@ -145,7 +142,7 @@ class Fattura extends Document
$model->id_ritenuta_contributi = $id_ritenuta_contributi ?: null; $model->id_ritenuta_contributi = $id_ritenuta_contributi ?: null;
// Banca predefinita per l'anagrafica controparte // Banca predefinita per l'anagrafica controparte
//$model->id_banca_controparte = ; // $model->id_banca_controparte = ;
// Tipo di pagamento dall'anagrafica controparte // Tipo di pagamento dall'anagrafica controparte
$id_pagamento = $database->fetchOne('SELECT id FROM co_pagamenti WHERE id = :id_pagamento', [ $id_pagamento = $database->fetchOne('SELECT id FROM co_pagamenti WHERE id = :id_pagamento', [
@ -210,8 +207,8 @@ class Fattura extends Document
// Registrazione dell'operazione nelle note // Registrazione dell'operazione nelle note
$notes[] = tr("Operazione non imponibile come da vostra dichiarazione d'intento nr _PROT_ del _PROT_DATE_ emessa in data _RELEASE_DATE_", [ $notes[] = tr("Operazione non imponibile come da vostra dichiarazione d'intento nr _PROT_ del _PROT_DATE_ emessa in data _RELEASE_DATE_", [
'_PROT_' => $dichiarazione->numero_protocollo, '_PROT_' => $dichiarazione->numero_protocollo,
'_PROT_DATE_' => Translator::dateToLocale($dichiarazione->data_protocollo), '_PROT_DATE_' => \Translator::dateToLocale($dichiarazione->data_protocollo),
'_RELEASE_DATE_' => Translator::dateToLocale($dichiarazione->data_emissione), '_RELEASE_DATE_' => \Translator::dateToLocale($dichiarazione->data_emissione),
]).'.'; ]).'.';
} }
@ -490,7 +487,7 @@ class Fattura extends Document
$file = $this->uploads()->where('name', '=', 'Fattura Elettronica')->first(); $file = $this->uploads()->where('name', '=', 'Fattura Elettronica')->first();
if (empty($file)) { if (empty($file)) {
throw new InvalidArgumentException('Fattura Elettronica non trovata'); throw new \InvalidArgumentException('Fattura Elettronica non trovata');
} }
return $file->getContent(); return $file->getContent();
@ -786,9 +783,9 @@ class Fattura extends Document
/** /**
* Scope per l'inclusione delle sole fatture con valore contabile. * Scope per l'inclusione delle sole fatture con valore contabile.
* *
* @param \Illuminate\Database\Eloquent\Builder $query * @param Builder $query
* *
* @return \Illuminate\Database\Eloquent\Builder * @return Builder
*/ */
public function scopeContabile($query) public function scopeContabile($query)
{ {
@ -849,9 +846,9 @@ class Fattura extends Document
/** /**
* Scope per l'inclusione delle fatture di vendita. * Scope per l'inclusione delle fatture di vendita.
* *
* @param \Illuminate\Database\Eloquent\Builder $query * @param Builder $query
* *
* @return \Illuminate\Database\Eloquent\Builder * @return Builder
*/ */
public function scopeVendita($query) public function scopeVendita($query)
{ {
@ -863,9 +860,9 @@ class Fattura extends Document
/** /**
* Scope per l'inclusione delle fatture di acquisto. * Scope per l'inclusione delle fatture di acquisto.
* *
* @param \Illuminate\Database\Eloquent\Builder $query * @param Builder $query
* *
* @return \Illuminate\Database\Eloquent\Builder * @return Builder
*/ */
public function scopeAcquisto($query) public function scopeAcquisto($query)
{ {

View File

@ -31,7 +31,7 @@ use Modules\PrimaNota\Movimento;
class Movimenti class Movimenti
{ {
protected $fattura; protected $fattura;
protected $mastrino = null; protected $mastrino;
public function __construct(Fattura $fattura) public function __construct(Fattura $fattura)
{ {

View File

@ -41,7 +41,7 @@ switch (post('op')) {
], ['id' => $id_record]); ], ['id' => $id_record]);
flash()->info(tr('Informazioni salvate correttamente!')); flash()->info(tr('Informazioni salvate correttamente!'));
break; break;
case 'delete': case 'delete':
$dbo->query('DELETE FROM do_documenti WHERE id = '.prepare($id_record)); $dbo->query('DELETE FROM do_documenti WHERE id = '.prepare($id_record));

View File

@ -57,7 +57,7 @@ include_once __DIR__.'/../../core.php';
'name' => 'descrizione', 'name' => 'descrizione',
'value' => $record['descrizione'], 'value' => $record['descrizione'],
]); ]);
?> ?>
</div> </div>
</div> </div>
</div> </div>

View File

@ -30,4 +30,4 @@ switch (post('op')) {
flash()->info(tr('Informazioni salvate correttamente.')); flash()->info(tr('Informazioni salvate correttamente.'));
break; break;
} }

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