Compare commits

...

6 Commits

Author SHA1 Message Date
valentina 78f7ef647c Ordinamento azioni di gruppo Attività 2024-08-07 11:07:33 +02:00
valentina aff534e44b Fix minore 2024-08-07 10:32:11 +02:00
valentina 65115b9d5e Merge branch 'master' of https://github.com/devcode-it/openstamanager 2024-08-07 10:25:18 +02:00
valentina 9de61fad6b Ordinamento azioni di gruppo Articoli 2024-08-07 10:25:17 +02:00
Beppe f8b4c5f36c Fix filtro stato interventi in mappa 2024-08-07 10:20:44 +02:00
valentina c743e11b91 Fix Controlli gestionale 2024-08-07 09:34:28 +02:00
8 changed files with 176 additions and 154 deletions

View File

@ -442,14 +442,14 @@ foreach ($requirements as $key => $values) {
}
echo '
<div class="card card-'.($general_status ? 'success collapsed-card' : 'danger').'">
<div class="card card-outline card-'.($general_status ? 'success collapsed-card' : 'danger').'">
<div class="card-header with-border">
<h3 class="card-title">'.$key.'</h3>';
if ($general_status) {
echo '
<div class="card-tools pull-right">
<button type="button" class="btn btn-tool" data-widget="collapse">
<button type="button" class="btn btn-tool" data-card-widget="collapse">
<i class="fa fa-plus"></i>
</button>
</div>';

View File

@ -188,14 +188,14 @@ function search(button) {
// Verifiche di integrità
echo '
<div class="col-md-4">
<div class="card card-primary">
<div class="card card-primary card-outline">
<div class="card-header with-border">
<h3 class="card-title">
'.tr("Verifica l'integrità dell'installazione").' <span class="tip" title="'.tr("Verifica l'integrità della tua installazione attraverso un controllo sui checksum dei file e sulla struttura del database").'."><i class="fa fa-question-circle-o"></i></span>
</h3>
</div>
<div class="card-body">
<button type="button" class="btn btn-primary btn-block" onclick="checksum(this)">
<button type="button" class="btn btn-info btn-block" onclick="checksum(this)">
<i class="fa fa-list-alt"></i> '.tr('Controlla file').'
</button>
@ -203,7 +203,7 @@ echo '
<i class="fa fa-database"></i> '.tr('Controlla database').'
</button>
<button type="button" class="btn btn-block" onclick="controlli(this)">
<button type="button" class="btn btn-info btn-block" onclick="controlli(this)">
<i class="fa fa-stethoscope"></i> '.tr('Controlla gestionale').'
</button>
</div>
@ -214,7 +214,7 @@ echo '
echo '
<div class="col-md-4">
<div class="card card-primary">
<div class="card card-primary card-outline">
<div class="card-header with-border">
<h3 class="card-title">
'.tr('Ricerca aggiornamenti').' <span class="tip" title="'.tr('Controllo automatico della presenza di aggiornamenti per il gestionale').'."><i class="fa fa-question-circle-o"></i></span>
@ -238,7 +238,7 @@ echo ' </div>
// Form di caricamento aggiornamenti gestionale o moduli
echo '
<div class="col-md-4">
<div class="card card-primary">
<div class="card card-primary card-outline">
<div class="card-header with-border">
<h3 class="card-title">
'.tr('Carica aggiornamenti o nuovi moduli').' <span class="tip" title="'.tr('Form di caricamento aggiornamenti del gestionale e innesti di moduli e plugin').'."><i class="fa fa-question-circle-o"></i></span>

View File

@ -70,16 +70,22 @@ class PianoConti extends Controllo
foreach ($anagrafiche_interessate as $anagrafica) {
$tipi = explode(',', (string) $anagrafica['tipi_anagrafica']);
$cliente = in_array('Cliente', $tipi) && empty($anagrafica['idconto_cliente']);
$fornitore = in_array('Fornitore', $tipi) && empty($anagrafica['idconto_fornitore']);
$cliente = in_array('Cliente', $tipi);
$fornitore = in_array('Fornitore', $tipi);
$is_esistente = 0;
$descrizione = 0;
if ($cliente || $fornitore) {
$is_esistente = $database->fetchOne('SELECT id FROM co_pianodeiconti3 WHERE id = '.$anagrafica['idconto_cliente'].' OR id = '.$anagrafica['idconto_fornitore']);
$descrizione = null;
$descrizione = null;
if ($cliente && $fornitore) {
$descrizione = tr("L'anagrafica corrente non ha impostati i conti relativi al Piano dei Conti");
} elseif ($cliente) {
$descrizione = tr("L'anagrafica corrente non ha impostati il conto Cliente relativo al Piano dei Conti");
} elseif ($fornitore) {
$descrizione = tr("L'anagrafica corrente non ha impostati il conto Fornitore relativo al Piano dei Conti");
if (($cliente && $fornitore) && (empty($anagrafica['idconto_cliente']) || empty($anagrafica['idconto_fornitore']) || !$is_esistente)) {
$descrizione = tr("L'anagrafica corrente non ha impostati i conti relativi al Piano dei Conti");
} elseif ($cliente && (empty($anagrafica['idconto_cliente'])) || !$is_esistente) {
$descrizione = tr("L'anagrafica corrente non ha impostati il conto Cliente relativo al Piano dei Conti");
} elseif ($fornitore && (empty($anagrafica['idconto_fornitore'])) || !$is_esistente) {
$descrizione = tr("L'anagrafica corrente non ha impostati il conto Fornitore relativo al Piano dei Conti");
}
}
if (!empty($descrizione)) {

View File

@ -112,6 +112,14 @@ class Anagrafica extends Model
// Collegamento conto
$anagrafica->idconto_cliente = $id_conto;
$anagrafica->save();
} else {
$conto = $anagrafica->idconto_cliente;
$is_esistente = database()->fetchOne('SELECT id FROM co_pianodeiconti3 WHERE id = '.$anagrafica['idconto_cliente']);
if (!$is_esistente) {
$anagrafica->idconto_cliente = null;
$anagrafica->save();
Anagrafica::fixCliente($anagrafica);
}
}
}
@ -124,6 +132,14 @@ class Anagrafica extends Model
// Collegamento conto
$anagrafica->idconto_fornitore = $id_conto;
$anagrafica->save();
} else {
$conto = $anagrafica->idconto_fornitore;
$is_esistente = database()->fetchOne('SELECT id FROM co_pianodeiconti3 WHERE id = '.$anagrafica['idconto_fornitore']);
if (!$is_esistente) {
$anagrafica->idconto_fornitore = null;
$anagrafica->save();
Anagrafica::fixFornitore($anagrafica);
}
}
}

View File

@ -443,24 +443,59 @@ switch (post('op')) {
break;
}
if (App::debug()) {
$operations['delete-bulk'] = [
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span>',
'data' => [
'msg' => tr('Vuoi davvero eliminare gli articoli selezionati?'),
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-danger',
],
];
}
$operations['export-csv'] = [
'text' => '<span><i class="fa fa-download"></i> '.tr('Esporta selezionati').'</span>',
$operations['change-iva'] = [
'text' => '<span><i class="fa fa-percent"></i> '.tr('Aggiorna aliquota iva').'</span>',
'data' => [
'msg' => tr('Vuoi esportare un CSV con gli articoli selezionati?'),
'title' => tr('Cambiare l\'aliquota iva?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificata l\'aliquota iva').'
<br><br>{[ "type": "select", "label": "'.tr('Iva').'", "name": "id_iva", "required": 1, "ajax-source": "iva" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-success',
'blank' => true,
'class' => 'btn btn-lg btn-warning',
],
];
$operations['change-categoria'] = [
'text' => '<span><i class="fa fa-briefcase"></i> '.tr('Aggiorna categoria e sottocategoria').'</span>',
'data' => [
'title' => tr('Cambiare la categoria e la sottocategoria?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificata la categoria e la sottocategoria').'
<br><br>{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 1, "ajax-source": "categorie", "extra": "onchange=\"$(\'#subcategoria\').enable();updateSelectOption(\'id_categoria\', $(\'#id_categoria\').val());session_set(\'superselect,id_categoria\', $(\'#id_categoria\').val(), 0);$(\'#subcategoria\').val(null).trigger(\'change\');\"" ]}<br>
{[ "type": "select", "label": "'.tr('Sottocategoria').'", "name": "subcategoria", "ajax-source": "sottocategorie", "disabled": "1", "select-options-escape": true ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
$operations['change-coefficiente'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Aggiorna coefficiente di vendita').'</span>',
'data' => [
'title' => tr('Aggiornare il coefficiente di vendita per gli articoli selezionati?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificato il coefficiente e il relativo prezzo di vendita').'<br><br>{[ "type": "number", "label": "'.tr('Coefficiente di vendita').'", "name": "coefficiente", "required": 1 ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
$operations['change-conto-acquisto'] = [
'text' => '<span><i class="fa fa-money"></i> '.tr('Aggiorna conto predefinito di acquisto').'</span>',
'data' => [
'title' => tr('Cambiare il conto predefinito di acquisto?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificato il conto predefinito di acquisto').'
<br><br>{[ "type": "select", "label": "'.tr('Conto acquisto').'", "name": "conto_acquisto", "required": 1, "ajax-source": "conti-acquisti" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
$operations['change-conto-vendita'] = [
'text' => '<span><i class="fa fa-money"></i> '.tr('Aggiorna conto predefinito di vendita').'</span>',
'data' => [
'title' => tr('Cambiare il conto predefinito di vendita?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificato il conto predefinito di vendita').'
<br><br>{[ "type": "select", "label": "'.tr('Conto vendita').'", "name": "conto_vendita", "required": 1, "ajax-source": "conti-vendite" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
@ -490,29 +525,6 @@ $operations['change-vendita'] = [
],
];
$operations['change-coefficiente'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Aggiorna coefficiente di vendita').'</span>',
'data' => [
'title' => tr('Aggiornare il coefficiente di vendita per gli articoli selezionati?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificato il coefficiente e il relativo prezzo di vendita').'<br><br>{[ "type": "number", "label": "'.tr('Coefficiente di vendita').'", "name": "coefficiente", "required": 1 ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
$operations['stampa-etichette'] = [
'text' => '<span><i class="fa fa-barcode"></i> '.tr('Stampa etichette').'</span>',
'data' => [
'title' => tr('Stampare le etichette?'),
'msg' => tr('Per ciascun articolo selezionato, verrà stampata un\'etichetta').'<br><br>
{[ "type": "select", "label": "'.tr('Tipologia stampa').'", "name": "tipologia", "required": 1, "values": "list=\"singola\":\"Singola\",\"a4\":\"Formato A4\"", "value": "singola" ]}<br>',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => true,
],
];
$operations['change-qta'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Aggiorna quantità').'</span>',
'data' => [
@ -526,6 +538,28 @@ $operations['change-qta'] = [
],
];
$operations['change-um'] = [
'text' => '<span><i class="fa fa-balance-scale"></i> '.tr('Aggiorna unità di misura').'</span>',
'data' => [
'title' => tr('Cambiare l\'unità di misura?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificata l\'unità di misura').'
<br><br>{[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "required": 1, "ajax-source": "misure" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
$operations['add-listino'] = [
'text' => '<span><i class="fa fa-plus"></i> '.tr('Aggiungi a listino cliente').'</span>',
'data' => [
'msg' => tr('Vuoi davvero aggiungere gli articoli al listino cliente?').'<br><br>{[ "type": "select", "label": "'.tr('Listino cliente').'", "name": "id_listino", "required": 1, "ajax-source": "listini" ]}
<br>{[ "type": "number", "label": "'.tr('Sconto percentuale').'", "name": "sconto_percentuale", "required": 1, "icon-after": "%" ]}
<br>{[ "type": "date", "label": "'.tr('Data scadenza').'", "name": "data_scadenza", "placeholder": "'.tr('Utilizza data scadenza predefinita listino').'" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
$operations['crea-preventivo'] = [
'text' => '<span><i class="fa fa-plus"></i> '.tr('Crea preventivo').'</span>',
'data' => [
@ -541,26 +575,24 @@ $operations['crea-preventivo'] = [
],
];
$operations['change-categoria'] = [
'text' => '<span><i class="fa fa-briefcase"></i> '.tr('Aggiorna categoria e sottocategoria').'</span>',
'data' => [
'title' => tr('Cambiare la categoria e la sottocategoria?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificata la categoria e la sottocategoria').'
<br><br>{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 1, "ajax-source": "categorie", "extra": "onchange=\"$(\'#subcategoria\').enable();updateSelectOption(\'id_categoria\', $(\'#id_categoria\').val());session_set(\'superselect,id_categoria\', $(\'#id_categoria\').val(), 0);$(\'#subcategoria\').val(null).trigger(\'change\');\"" ]}<br>
{[ "type": "select", "label": "'.tr('Sottocategoria').'", "name": "subcategoria", "ajax-source": "sottocategorie", "disabled": "1", "select-options-escape": true ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
if (App::debug()) {
$operations['delete-bulk'] = [
'text' => '<span><i class="fa fa-trash"></i> '.tr('Elimina selezionati').'</span>',
'data' => [
'msg' => tr('Vuoi davvero eliminare gli articoli selezionati?'),
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-danger',
],
];
}
$operations['change-iva'] = [
'text' => '<span><i class="fa fa-percent"></i> '.tr('Aggiorna aliquota iva').'</span>',
$operations['export-csv'] = [
'text' => '<span><i class="fa fa-download"></i> '.tr('Esporta selezionati').'</span>',
'data' => [
'title' => tr('Cambiare l\'aliquota iva?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificata l\'aliquota iva').'
<br><br>{[ "type": "select", "label": "'.tr('Iva').'", "name": "id_iva", "required": 1, "ajax-source": "iva" ]}',
'msg' => tr('Vuoi esportare un CSV con gli articoli selezionati?'),
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'class' => 'btn btn-lg btn-success',
'blank' => true,
],
];
@ -575,39 +607,6 @@ $operations['set-acquisto-ifzero'] = [
],
];
$operations['change-um'] = [
'text' => '<span><i class="fa fa-balance-scale"></i> '.tr('Aggiorna unità di misura').'</span>',
'data' => [
'title' => tr('Cambiare l\'unità di misura?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificata l\'unità di misura').'
<br><br>{[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "required": 1, "ajax-source": "misure" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
$operations['change-conto-acquisto'] = [
'text' => '<span><i class="fa fa-money"></i> '.tr('Aggiorna conto predefinito di acquisto').'</span>',
'data' => [
'title' => tr('Cambiare il conto predefinito di acquisto?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificato il conto predefinito di acquisto').'
<br><br>{[ "type": "select", "label": "'.tr('Conto acquisto').'", "name": "conto_acquisto", "required": 1, "ajax-source": "conti-acquisti" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
$operations['change-conto-vendita'] = [
'text' => '<span><i class="fa fa-money"></i> '.tr('Aggiorna conto predefinito di vendita').'</span>',
'data' => [
'title' => tr('Cambiare il conto predefinito di vendita?'),
'msg' => tr('Per ciascun articolo selezionato, verrà modificato il conto predefinito di vendita').'
<br><br>{[ "type": "select", "label": "'.tr('Conto vendita').'", "name": "conto_vendita", "required": 1, "ajax-source": "conti-vendite" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
$operations['set-provvigione'] = [
'text' => '<span><i class="fa fa-percent"></i> '.tr('Imposta una provvigione').'</span>',
'data' => [
@ -620,14 +619,15 @@ $operations['set-provvigione'] = [
],
];
$operations['add-listino'] = [
'text' => '<span><i class="fa fa-plus"></i> '.tr('Aggiungi a listino cliente').'</span>',
$operations['stampa-etichette'] = [
'text' => '<span><i class="fa fa-barcode"></i> '.tr('Stampa etichette').'</span>',
'data' => [
'msg' => tr('Vuoi davvero aggiungere gli articoli al listino cliente?').'<br><br>{[ "type": "select", "label": "'.tr('Listino cliente').'", "name": "id_listino", "required": 1, "ajax-source": "listini" ]}
<br>{[ "type": "number", "label": "'.tr('Sconto percentuale').'", "name": "sconto_percentuale", "required": 1, "icon-after": "%" ]}
<br>{[ "type": "date", "label": "'.tr('Data scadenza').'", "name": "data_scadenza", "placeholder": "'.tr('Utilizza data scadenza predefinita listino').'" ]}',
'title' => tr('Stampare le etichette?'),
'msg' => tr('Per ciascun articolo selezionato, verrà stampata un\'etichetta').'<br><br>
{[ "type": "select", "label": "'.tr('Tipologia stampa').'", "name": "tipologia", "required": 1, "values": "list=\"singola\":\"Singola\",\"a4\":\"Formato A4\"", "value": "singola" ]}<br>',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => true,
],
];

View File

@ -96,7 +96,7 @@ class Bollo
$riga->prezzo_unitario = $marca_da_bollo;
$riga->qta = 1;
$riga->descrizione = setting('Descrizione addebito bollo');
$riga->id_iva = $righe_bollo->idiva;
$riga->id_iva = $righe_bollo->idiva ?: database()->fetchOne('SELECT `id` FROM `co_iva` WHERE `name` = "Non soggetta - altri casi"')['id'];
$riga->idconto = setting('Conto predefinito per la marca da bollo');
// Applico la rivalsa alla marca da bollo se previsto

View File

@ -410,6 +410,35 @@ switch (post('op')) {
break;
}
$operations['cambia_stato'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'),
'data' => [
'title' => tr('Vuoi davvero cambiare lo stato per questi interventi?'),
'msg' => tr('Seleziona lo stato in cui spostare tutti gli interventi non completati').'.<br>
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL ORDER BY `title`" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
$operations['copy-bulk'] = [
'text' => '<span><i class="fa fa-clone"></i> '.tr('Duplica attività'),
'data' => [
'title' => tr('Vuoi davvero fare una copia degli interventi selezionati?'),
'msg' => '<br>{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "required": 0, "value": "-now-", "required":1 ]}
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL ORDER BY `title`", "value": "" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica righe').'", "name":"righe", "value":"" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica sessioni').'", "name":"sessioni", "value":"" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica impianti').'", "name":"impianti", "value":"" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica allegati').'", "name":"allegati", "value":"" ]}
<style>.swal2-modal{ width:600px !important; }</style>',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
// TODO: 06/08/2024 Migliorare e portare in versione stabile
if (App::debug()) {
$operations['delete-bulk'] = [
@ -443,43 +472,13 @@ $operations['crea_fattura'] = [
],
];
$operations['cambia_stato'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'),
$operations['firma-intervento'] = [
'text' => '<span><i class="fa fa-pencil"></i> '.tr('Firma interventi').'</span>',
'data' => [
'title' => tr('Vuoi davvero cambiare lo stato per questi interventi?'),
'msg' => tr('Seleziona lo stato in cui spostare tutti gli interventi non completati').'.<br>
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL ORDER BY `title`" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
$operations['copy-bulk'] = [
'text' => '<span><i class="fa fa-clone"></i> '.tr('Duplica attività'),
'data' => [
'title' => tr('Vuoi davvero fare una copia degli interventi selezionati?'),
'msg' => '<br>{[ "type": "timestamp", "label": "'.tr('Data/ora richiesta').'", "name": "data_richiesta", "required": 0, "value": "-now-", "required":1 ]}
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatointervento", "required": 1, "values": "query=SELECT `in_statiintervento`.`id`, `title` as descrizione, `colore` AS _bgcolor_ FROM `in_statiintervento` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento`.`id` = `in_statiintervento_lang`.`id_record` AND `in_statiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') WHERE `deleted_at` IS NULL ORDER BY `title`", "value": "" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica righe').'", "name":"righe", "value":"" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica sessioni').'", "name":"sessioni", "value":"" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica impianti').'", "name":"impianti", "value":"" ]}
<br>{[ "type":"checkbox", "label":"'.tr('Duplica allegati').'", "name":"allegati", "value":"" ]}
<style>.swal2-modal{ width:600px !important; }</style>',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
$operations['stampa-riepilogo'] = [
'text' => '<span><i class="fa fa-print"></i> '.tr('Stampa riepilogo'),
'data' => [
'title' => tr('Stampare il riepilogo delle attività selezionate?'),
'msg' => '<br>{[ "type": "select", "label": "'.tr('Stampa riepilogo').'", "name": "tipo", "required": "1", "values": "list=\"cliente\": \"Clienti\", \"interno\": \"Interno\"", "value": "cliente" ]}',
'button' => tr('Stampa'),
'class' => 'btn btn-lg btn-warning',
'blank' => true,
'title' => tr('Firma'),
'type' => 'modal',
'origine' => 'interventi',
'url' => $module->fileurl('modals/firma.php'),
],
];
@ -494,13 +493,14 @@ $operations['send-mail'] = [
],
];
$operations['firma-intervento'] = [
'text' => '<span><i class="fa fa-pencil"></i> '.tr('Firma interventi').'</span>',
$operations['stampa-riepilogo'] = [
'text' => '<span><i class="fa fa-print"></i> '.tr('Stampa riepilogo'),
'data' => [
'title' => tr('Firma'),
'type' => 'modal',
'origine' => 'interventi',
'url' => $module->fileurl('modals/firma.php'),
'title' => tr('Stampare il riepilogo delle attività selezionate?'),
'msg' => '<br>{[ "type": "select", "label": "'.tr('Stampa riepilogo').'", "name": "tipo", "required": "1", "values": "list=\"cliente\": \"Clienti\", \"interno\": \"Interno\"", "value": "cliente" ]}',
'button' => tr('Stampa'),
'class' => 'btn btn-lg btn-warning',
'blank' => true,
],
];

View File

@ -42,7 +42,7 @@ switch (get('op')) {
// Filtri per data
$add_query .= ' |date_period(`orario_inizio`,`data_richiesta`)|';
$query = 'SELECT *, `in_interventi`.`id` AS idintervento, `an_anagrafiche`.`lat` AS lat_anagrafica, `an_anagrafiche`.`lng` AS lng_anagrafica, `an_anagrafiche`.`indirizzo` AS indirizzo_anagrafica, `an_anagrafiche`.`cap` AS cap_anagrafica, `an_anagrafiche`.`citta` AS citta_anagrafica, `an_anagrafiche`.`provincia` AS provincia_anagrafica, `an_sedi`.`lat` AS lat_sede, `an_sedi`.`lng` AS lng_sede, `an_sedi`.`indirizzo` AS indirizzo_sede, `an_sedi`.`cap` AS cap_sede, `an_sedi`.`citta` AS citta_sede, `an_sedi`.`provincia` AS provincia_sede, `in_statiintervento_lang`.`title` AS stato FROM `in_interventi` INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` LEFT JOIN `an_sedi` ON `in_interventi`.`idsede_destinazione`=`an_sedi`.`id` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento_lang`.`id_record` = `in_interventi`.`id` AND `in_statiintervento_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` '.$add_query;
$query = 'SELECT *, `in_interventi`.`id` AS idintervento, `an_anagrafiche`.`lat` AS lat_anagrafica, `an_anagrafiche`.`lng` AS lng_anagrafica, `an_anagrafiche`.`indirizzo` AS indirizzo_anagrafica, `an_anagrafiche`.`cap` AS cap_anagrafica, `an_anagrafiche`.`citta` AS citta_anagrafica, `an_anagrafiche`.`provincia` AS provincia_anagrafica, `an_sedi`.`lat` AS lat_sede, `an_sedi`.`lng` AS lng_sede, `an_sedi`.`indirizzo` AS indirizzo_sede, `an_sedi`.`cap` AS cap_sede, `an_sedi`.`citta` AS citta_sede, `an_sedi`.`provincia` AS provincia_sede, `in_statiintervento_lang`.`title` AS stato FROM `in_interventi` INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica` LEFT JOIN `an_sedi` ON `in_interventi`.`idsede_destinazione`=`an_sedi`.`id` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id` LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento_lang`.`id_record` = `in_statiintervento`.`id` AND `in_statiintervento_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` '.$add_query;
$query = Query::replacePlaceholder($query);
$query = Modules::replaceAdditionals(Module::where('name', 'Interventi')->first()->id, $query);