Compare commits

...

9 Commits

Author SHA1 Message Date
Pek5892 cccd2b3c39 Fix ddt 2024-04-22 16:51:27 +02:00
Pek5892 f25ea17ba7 Fix minori 2024-04-22 16:15:55 +02:00
Pek5892 1bc6e5d3fe Modifica forzatura aggiornamento 2024-04-22 14:39:25 +02:00
Pek5892 5871b8e608 Fix minore 2024-04-22 14:28:03 +02:00
Pek5892 00ca74ee24 Fix backup 2024-04-22 12:35:30 +02:00
Pek5892 a569100444 Fix minore 2024-04-22 12:32:48 +02:00
Pek5892 6096968262 Fix modulo adattatori di archiviazione 2024-04-22 12:25:52 +02:00
Pek5892 1bae45821a Fix per php8.1 2024-04-22 10:11:10 +02:00
Pek5892 5d55ad191d Fix minore statistiche 2024-04-22 09:44:07 +02:00
27 changed files with 61 additions and 68 deletions

View File

@ -45,7 +45,7 @@ $id_iva = $id_iva ?: setting('Iva predefinita');
$righe_totali = $documento->getRighe();
$id_module_interventi = (new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id);
$id_module_interventi = (new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id);
$id_module_ordini_f = (new Module())->getByField('title', 'Ordini fornitore', Models\Locale::getPredefined()->id);
if ($final_module->id == $id_module_interventi) {
$righe = $righe_totali->where('is_descrizione', '=', 0)
@ -98,8 +98,8 @@ if (!empty($options['create_document'])) {
// Opzioni aggiuntive per le Fatture
$id_module_fatt_vendita = (new Module())->getByField('title', 'Fatture di vendita', Models\Locale::getPredefined()->id);
$id_module_fatt_acquisto = (new Module())->getByField('title', 'Fatture di acquisto', Models\Locale::getPredefined()->id);
$id_module_ddt_vendita = (new Module())->getByField('title', 'Ddt di vendita', Models\Locale::getPredefined()->id);
$id_module_ddt_acquisto = (new Module())->getByField('title', 'Ddt di acquisto', Models\Locale::getPredefined()->id);
$id_module_ddt_vendita = (new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id);
$id_module_ddt_acquisto = (new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id);
if (in_array($final_module->id, [$id_module_fatt_vendita, $id_module_fatt_acquisto])) {
$stato_predefinito = (new StatoFattura())->getByField('title', 'Bozza', Models\Locale::getPredefined()->id);
$fatt_differita_acquisto = (new Tipofattura())->getByField('title', 'Fattura differita di acquisto', Models\Locale::getPredefined()->id);

View File

@ -112,7 +112,7 @@ if (filter('action') == 'do_update') {
exit;
} elseif (Update::isUpdateAvailable()) {
// Controllo se l'aggiornamento è in esecuzione
if (Update::isUpdateLocked() && filter('force') === null) {
if (Update::isUpdateLocked() && filter('force') != '1') {
$pageTitle = tr('Aggiornamento in corso!');
include_once App::filepath('include|custom|', 'top.php');

View File

@ -26,7 +26,7 @@ include_once __DIR__.'/../../core.php';
<div class="row">
<div class="col-md-5">
{[ "type": "text", "label": "<?php echo tr('Name'); ?>", "name": "name", "value": "$title$", "required": 1 ]}
{[ "type": "text", "label": "<?php echo tr('Name'); ?>", "name": "name", "value": "$name$", "required": 1 ]}
</div>
<div class="col-md-5">

View File

@ -38,7 +38,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
if (in_array($id_cliente, $tipi_anagrafica)) {
echo '
<li><a data-toggle="modal" data-title="'.tr('Aggiungi attività').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-wrench"></i>'.tr('Nuova attività').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi attività').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-wrench"></i>'.tr('Nuova attività').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi preventivo').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Preventivi', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-text"></i>'.tr('Nuovo preventivo').'
@ -50,7 +50,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine cliente').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ordini cliente', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o"></i>'.tr('Nuovo ordine cliente').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt uscita').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt di vendita', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i>'.tr('Nuovo ddt in uscita').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt uscita').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck"></i>'.tr('Nuovo ddt in uscita').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di vendita').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Fatture di vendita', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file"></i>'.tr('Nuova fattura di vendita').'
@ -64,7 +64,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
echo '<li><a data-toggle="modal" data-title="'.tr('Aggiungi ordine fornitore').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ordini fornitore', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file-o fa-flip-horizontal"></i>'.tr('Nuovo ordine fornitore').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt di acquisto', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').'
<li><a data-toggle="modal" data-title="'.tr('Aggiungi ddt entrata').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-truck fa-flip-horizontal"></i>'.tr('Nuovo ddt in entrata').'
</a></li>
<li><a data-toggle="modal" data-title="'.tr('Aggiungi fattura di acquisto').'" data-href="add.php?id_module='.(new Module())->getByField('title', 'Fatture di acquisto', Models\Locale::getPredefined()->id).'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-file fa-flip-horizontal"></i>'.tr('Nuova fattura di acquisto').'

View File

@ -60,8 +60,8 @@ if (empty($_GET['visualizza_allegati'])) {
}
// Interventi dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id), $permessi)) {
$interventi = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->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));
if ($user->is_admin || in_array((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id), $permessi)) {
$interventi = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->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);
}
@ -78,13 +78,13 @@ if (empty($_GET['visualizza_allegati'])) {
}
// DDT dell'anagrafica
if ($user->is_admin || in_array((new Module())->getByField('title', 'Ddt di vendita', Models\Locale::getPredefined()->id), $permessi)) {
$ddt_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('title', 'Ddt di vendita', Models\Locale::getPredefined()->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));
if ($user->is_admin || in_array((new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id), $permessi)) {
$ddt_vendita = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->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);
}
if ($user->is_admin || in_array((new Module())->getByField('title', 'Ddt di acquisto', Models\Locale::getPredefined()->id), $permessi)) {
$ddt_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('title', 'Ddt di acquisto', Models\Locale::getPredefined()->id))." AS id_module, id AS id_record, CONCAT('Ddt di acquisto num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record));
if ($user->is_admin || in_array((new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id), $permessi)) {
$ddt_acquisto = $dbo->fetcharray('SELECT '.prepare((new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id))." AS id_module, id AS id_record, CONCAT('Ddt di acquisto 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_acquisto);
}

View File

@ -20,7 +20,7 @@
include_once __DIR__.'/../../core.php';
use Models\Module;
$modulo_interventi = Module::find((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id));
$modulo_interventi = Module::find((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id));
$modulo_preventivi = Module::find((new Module())->getByField('title', 'Preventivi', Models\Locale::getPredefined()->id));
$modulo_eventi = Module::find((new Module())->getByField('title', 'Eventi', Models\Locale::getPredefined()->id));

View File

@ -390,7 +390,7 @@ foreach ($days as $key => $day) {
}
}
$modulo_interventi = Module::find((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id));
$modulo_interventi = Module::find((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id));
echo '
<script type="text/javascript">

View File

@ -518,7 +518,7 @@ switch (filter('op')) {
$ddt->save();
$id_record = $copia->id;
$id_module = $ddt->direzione == 'entrata' ? (new Module())->getByField('title', 'Ddt di acquisto', Models\Locale::getPredefined()->id) : (new Module())->getByField('title', 'Ddt di vendita', Models\Locale::getPredefined()->id);
$id_module = $ddt->direzione == 'entrata' ? (new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id) : (new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id);
break;

View File

@ -24,7 +24,7 @@ use Modules\DDT\Tipo;
$module = Module::find($id_module);
if ($module->getTranslation('title') == 'Ddt di vendita') {
if ($module->name == 'Ddt di vendita') {
$dir = 'entrata';
$id_tipoddt = (new Tipo())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id);

View File

@ -21,7 +21,7 @@ use Models\Module;
include_once __DIR__.'/../../core.php';
$id_module_collegamento = $ddt->direzione == 'entrata' ? (new Module())->getByField('title', 'Ddt di acquisto', Models\Locale::getPredefined()->id) : (new Module())->getByField('title', 'Ddt di vendita', Models\Locale::getPredefined()->id);
$id_module_collegamento = $ddt->direzione == 'entrata' ? (new Module())->getByField('title', 'Ddt in entrata', Models\Locale::getPredefined()->id) : (new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id);
// Informazioni sui movimenti interni
if (!empty($ddt->id_ddt_trasporto_interno)) {

View File

@ -24,7 +24,7 @@ use Modules\DDT\DDT;
$azienda = Anagrafica::find(setting('Azienda predefinita'));
$module_name = $module ? $module->getTranslation('title', Models\Locale::getPredefined()->id) : '';
$module_name = $module ? $module->name : '';
if ($module_name == 'Ddt di acquisto') {
$dir = 'uscita';

View File

@ -23,7 +23,7 @@ use Models\Module;
use Modules\Fatture\Fattura;
$module = Module::find($id_module);
$module_interventi = Module::find((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id));
$module_interventi = Module::find((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id));
if ($module->getTranslation('title') == 'Fatture di vendita') {
$dir = 'entrata';

View File

@ -20,7 +20,7 @@
include_once __DIR__.'/../../../core.php';
use Models\Module;
$link_id = (new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id);
$link_id = (new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id);
$fields = [
'Codice intervento' => 'codice',

View File

@ -45,7 +45,7 @@ switch (get('op')) {
$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 = Query::replacePlaceholder($query);
$query = Modules::replaceAdditionals((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id), $query);
$query = Modules::replaceAdditionals((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id), $query);
$records = $dbo->fetchArray($query);
@ -108,7 +108,7 @@ switch (get('op')) {
$descrizione .= '<hr>';
$descrizione .= '<a class="btn btn-info btn-block btn-xs" onclick="window.open(\''.$rootdir.'/editor.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&id_record='.$records[$i]['idintervento'].'\');">
$descrizione .= '<a class="btn btn-info btn-block btn-xs" onclick="window.open(\''.$rootdir.'/editor.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&id_record='.$records[$i]['idintervento'].'\');">
<i class="fa fa-external-link"></i> Apri attività
</a>';

View File

@ -361,28 +361,17 @@ $tipi = $dbo->fetchArray('SELECT * FROM `in_tipiintervento`');
$dataset = '';
foreach ($tipi as $tipo) {
$interventi = $dbo->fetchArray('SELECT
$interventi = $dbo->fetchArray('
SELECT
COUNT(`in_interventi`.`id`) AS result,
YEAR(`sessioni`.`orario_fine`) AS `year`,
MONTH(`sessioni`.`orario_fine`) AS `month`
FROM
`in_interventi`
LEFT JOIN(
SELECT
`in_interventi_tecnici`.`idintervento`,
MAX(`orario_fine`) AS orario_fine
FROM
`in_interventi_tecnici`
GROUP BY
`idintervento`
) sessioni
ON
`in_interventi`.`id` = `sessioni`.`idintervento`
LEFT JOIN(SELECT `in_interventi_tecnici`.`idintervento`, MAX(`orario_fine`) AS orario_fine FROM `in_interventi_tecnici` GROUP BY `idintervento`) sessioni ON `in_interventi`.`id` = `sessioni`.`idintervento`
WHERE
`in_interventi`.`idtipointervento` = '.prepare($tipo['idtipointervento']).' AND IFNULL(
`sessioni`.`orario_fine`,
`in_interventi`.`data_richiesta`
) BETWEEN '.prepare($start).' AND '.prepare($end).'
`in_interventi`.`idtipointervento` = '.prepare($tipo['idtipointervento']).'
AND `sessioni`.`orario_fine` BETWEEN '.prepare($start).' AND '.prepare($end).'
GROUP BY
YEAR(`sessioni`.`orario_fine`),
MONTH(`sessioni`.`orario_fine`)
@ -443,8 +432,7 @@ $(document).ready(function() {
// Ore interventi per tipologia
$dataset = '';
foreach ($tipi as $tipo) {
$interventi = $dbo->fetchArray('SELECT ROUND( SUM(in_interventi_tecnici.ore), 2 ) AS result, YEAR(in_interventi_tecnici.orario_fine) AS year, MONTH(in_interventi_tecnici.orario_fine) AS month FROM in_interventi INNER JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY
YEAR(in_interventi_tecnici.orario_fine), MONTH(in_interventi_tecnici.orario_fine) ORDER BY YEAR(in_interventi_tecnici.orario_fine) ASC, MONTH(in_interventi_tecnici.orario_fine) ASC');
$interventi = $dbo->fetchArray('SELECT ROUND(SUM(in_interventi_tecnici.ore), 2) AS result, YEAR(in_interventi_tecnici.orario_fine) AS year, MONTH(in_interventi_tecnici.orario_fine) AS month FROM in_interventi INNER JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' AND in_interventi_tecnici.orario_fine BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(in_interventi_tecnici.orario_fine), MONTH(in_interventi_tecnici.orario_fine) ORDER BY YEAR(in_interventi_tecnici.orario_fine) ASC, MONTH(in_interventi_tecnici.orario_fine) ASC');
$interventi = Stats::monthly($interventi, $start, $end);

View File

@ -154,7 +154,7 @@ if (!$elenco_promemoria->isEmpty()) {
<i class="fa fa-clock-o"></i>
</button>
<button type="button" '.$disabled.' class="btn btn-primary btn-sm '.$disabled.' " title="Pianifica intervento ora..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica intervento\', \''.base_path().'/add.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&ref=interventi_contratti&idcontratto='.$id_record.'&idcontratto_riga='.$promemoria['id'].'\');"'.(!empty($is_pianificabile) ? '' : ' disabled').'>
<button type="button" '.$disabled.' class="btn btn-primary btn-sm '.$disabled.' " title="Pianifica intervento ora..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica intervento\', \''.base_path().'/add.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&ref=interventi_contratti&idcontratto='.$id_record.'&idcontratto_riga='.$promemoria['id'].'\');"'.(!empty($is_pianificabile) ? '' : ' disabled').'>
<i class="fa fa-calendar"></i>
</button>

View File

@ -24,7 +24,7 @@ use Models\Plugin;
$plugin = Plugin::find($id_plugin);
$id_module = (new Module())->getByField('title', 'Contratti', Models\Locale::getPredefined()->id);
$block_edit = filter('add') ? false : true;
$id_module_interventi = (new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id);
$id_module_interventi = (new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id);
// Informazioni contratto
$contratto = $dbo->fetchOne('SELECT * FROM `co_contratti` WHERE `id` = :id', [

View File

@ -117,7 +117,7 @@ foreach ($raggruppamenti as $mese => $raggruppamento) {
// Pulsanti
echo '
<td>
<button type="button" class="btn btn-primary btn-sm" title="Pianifica intervento ora..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica intervento\', \''.base_path().'/add.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&ref=interventi_contratti&idcontratto='.$contratto->id.'&idcontratto_riga='.$promemoria->id.'\');">
<button type="button" class="btn btn-primary btn-sm" title="Pianifica intervento ora..." data-toggle="tooltip" onclick="launch_modal(\'Pianifica intervento\', \''.base_path().'/add.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&ref=interventi_contratti&idcontratto='.$contratto->id.'&idcontratto_riga='.$promemoria->id.'\');">
<i class="fa fa-calendar"></i>
</button>
</td>

View File

@ -75,7 +75,7 @@ class NotificheRicevuteHook extends Manager
]);
}
$id_module = (new Module())->getByField('title', 'Interventi', \Models\Locale::getPredefined()->id);
$id_module = (new Module())->getByField('title', 'Attività', \Models\Locale::getPredefined()->id);
$id_plugin = (new Plugin())->getByField('title', 'Ricevute FE', \Models\Locale::getPredefined()->id);
return [

View File

@ -172,10 +172,10 @@ echo '
<span class="info-box-text pull-left">'.tr('Attività').'</span>';
if ($anagrafica->isTipo('Cliente')) {
echo '
'.($interventi->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
'.($interventi->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
} else {
echo '
'.($interventi->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&search_Tecnici='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
'.($interventi->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&search_Tecnici='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
}
echo '
<br class="clearfix">
@ -192,7 +192,7 @@ echo '
<span class="info-box-icon bg-'.($ddt_uscita->count() == 0 ? 'gray' : 'maroon').'"><i class="fa fa-truck"></i></span>
<div class="info-box-content">
<span class="info-box-text pull-left">'.tr('Ddt in uscita').'</span>
'.($ddt_uscita->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Ddt di vendita', Models\Locale::getPredefined()->id).'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'
'.($ddt_uscita->count() > 0 ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Ddt in uscita', Models\Locale::getPredefined()->id).'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'
<br class="clearfix">
<span class="info-box-number">
<big>'.$ddt_uscita->count().'</big><br>
@ -226,10 +226,10 @@ echo '
<span class="info-box-text pull-left">'.tr('Ore lavorate').'</span>';
if ($anagrafica->isTipo('Cliente')) {
echo '
'.($sessioni ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
'.($sessioni ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&search_Ragione-sociale='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
} else {
echo '
'.($sessioni ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id).'&search_Tecnici='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
'.($sessioni ? '<span class="info-box-text pull-right"><a href="'.base_path().'/controller.php?id_module='.(new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id).'&search_Tecnici='.rawurlencode($anagrafica['ragione_sociale']).'">'.tr('Visualizza').' <i class="fa fa-chevron-circle-right"></i></a></span>' : '').'';
}
echo '
<br class="clearfix">

View File

@ -31,7 +31,7 @@ class CampiPersonalizzati extends AppResource
public function getModifiedRecords($last_sync_at)
{
$module = (new Module())->getByField('title', 'Interventi', \Models\Locale::getPredefined()->id);
$module = (new Module())->getByField('title', 'Attività', \Models\Locale::getPredefined()->id);
$query = 'SELECT `zz_fields`.`id`, `zz_fields`.`updated_at` FROM `zz_fields` WHERE id_module='.prepare($module->id_record)." AND `content` LIKE '%text%'";

View File

@ -31,7 +31,7 @@ class CampiPersonalizzatiValori extends AppResource
public function getModifiedRecords($last_sync_at)
{
$module = (new Module())->getByField('title', 'Interventi', \Models\Locale::getPredefined()->id);
$module = (new Module())->getByField('title', 'Attività', \Models\Locale::getPredefined()->id);
$query = 'SELECT `zz_field_record`.`id`, `zz_field_record`.`updated_at` FROM `zz_field_record` INNER JOIN `zz_fields` ON `zz_field_record`.`id_field` = `zz_fields`.`id` WHERE id_module='.prepare($module->id_record).' AND `zz_fields`.`content` LIKE "%text%"';

View File

@ -135,7 +135,7 @@ class Plugins
if (!empty($plugin) && in_array($plugin->permission, ['r', 'rw'])) {
$anchor = 'tab_'.$plugin->id;
return Modules::link($plugin->module->getTranslation('title'), $id_record, $testo, $alternativo, $extra, $blank, $anchor);
return Modules::link($plugin->module->name, $id_record, $testo, $alternativo, $extra, $blank, $anchor);
}
return $alternativo;

View File

@ -527,7 +527,7 @@ echo '
</table>';
if ($options['checklist']) {
$structure = Module::find((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id));
$structure = Module::find((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id));
$checks = $structure->mainChecks($id_record);
if (!empty($checks)) {
@ -540,7 +540,7 @@ if ($options['checklist']) {
</th>
</tr>';
$structure = Module::find((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id));
$structure = Module::find((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id));
$checks = $structure->mainChecks($id_record);
foreach ($checks as $check) {
@ -549,7 +549,7 @@ if ($options['checklist']) {
$impianti_collegati = $dbo->fetchArray('SELECT * FROM my_impianti_interventi INNER JOIN my_impianti ON my_impianti_interventi.idimpianto = my_impianti.id WHERE idintervento = '.prepare($id_record));
foreach ($impianti_collegati as $impianto) {
$checks = Check::where('id_module_from', (new Module())->getByField('title', 'Impianti', Models\Locale::getPredefined()->id))->where('id_record_from', $impianto['id'])->where('id_module', (new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id))->where('id_record', $id_record)->where('id_parent', null)->get();
$checks = Check::where('id_module_from', (new Module())->getByField('title', 'Impianti', Models\Locale::getPredefined()->id))->where('id_record_from', $impianto['id'])->where('id_module', (new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id))->where('id_record', $id_record)->where('id_parent', null)->get();
if (sizeof($checks)) {
echo '

View File

@ -23,7 +23,7 @@ use Models\Module;
$date_start = $_SESSION['period_start'];
$date_end = $_SESSION['period_end'];
$module = Module::find((new Module())->getByField('title', 'Interventi', Models\Locale::getPredefined()->id));
$module = Module::find((new Module())->getByField('title', 'Attività', Models\Locale::getPredefined()->id));
$total = Util\Query::readQuery($module);

View File

@ -1605,11 +1605,6 @@ ALTER TABLE `my_impianti_interventi` ADD `note` TEXT NOT NULL AFTER `idimpianto`
-- Aggiornato plugin Impianti
UPDATE `zz_plugins` SET `script` = '', `directory` = 'impianti_intervento', `options` = 'custom' WHERE `zz_plugins`.`id` = (SELECT `id_record` FROM `zz_plugins_lang` WHERE `name` = 'Impianti');
UPDATE `zz_plugins` SET `options` = ' { "main_query": [ { "type": "table", "fields": "Numero, Data inizio, Data fine, Tipo", "query": "SELECT in_interventi.id, in_interventi.codice AS Numero, DATE_FORMAT(MAX(orario_inizio), ''%d/%m/%Y'') AS ''Data inizio'', DATE_FORMAT(MAX(orario_fine), ''%d/%m/%Y'') AS ''Data fine'', (SELECT name FROM in_tipiintervento LEFT JOIN in_tipiintervento_lang ON (in_tipiintervento_lang.id_record = in_tipiintervento.id AND in_tipiintervento_lang.id_lang = (SELECT `valore` FROM `zz_settings` WHERE `nome` = ''Lingua''))WHERE in_tipiintervento.id=in_interventi.idtipointervento) AS ''Tipo'', (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = ''Interventi'' LIMIT 1) AS _link_module_, in_interventi.id AS _link_record_ FROM in_interventi LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id` WHERE 1=1 AND in_interventi.deleted_at IS NULL AND idanagrafica = |id_parent| GROUP BY `in_interventi`.`id` HAVING 2=2 ORDER BY in_interventi.id DESC"} ]}' WHERE `zz_plugins`.`id` = (SELECT `id_record` FROM `zz_plugins_lang` WHERE `name` = 'Storico attività');
-- Fix plugin Ddt del cliente
UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\", \"fields\": \"Numero, Data, Descrizione, Qtà\", \"query\": \"SELECT dt_ddt.id, IF(dt_tipiddt.dir = \'entrata\', (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = \'Ddt di vendita\' LIMIT 1), (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = \'Ddt di acquisto\' LIMIT 1)) AS _link_module_, dt_ddt.id AS _link_record_, IF(dt_ddt.numero_esterno = \'\', dt_ddt.numero, dt_ddt.numero_esterno) AS Numero, DATE_FORMAT(dt_ddt.data, \'%d/%m/%Y\') AS Data, dt_righe_ddt.descrizione AS `Descrizione`, REPLACE(REPLACE(REPLACE(FORMAT(dt_righe_ddt.qta, 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\') AS `Qtà` FROM dt_ddt LEFT JOIN dt_righe_ddt ON dt_ddt.id=dt_righe_ddt.idddt JOIN dt_tipiddt ON dt_ddt.idtipoddt = dt_tipiddt.id WHERE dt_ddt.idanagrafica=|id_parent| HAVING 2=2 ORDER BY dt_ddt.id DESC\"} ]}' WHERE `zz_plugins`.`id` = (SELECT `id_record` FROM `zz_plugins_lang` WHERE `name` = 'Ddt del cliente');
DROP TABLE IF EXISTS `in_vociservizio`;
DELETE FROM `zz_views` WHERE `id_module` = (SELECT `id_record` FROM `zz_modules_lang` WHERE `name` = 'Voci di servizio');
@ -1911,7 +1906,7 @@ INSERT INTO `zz_storage_adapters` (`id`, `name`, `class`, `options`, `can_delete
(1, 'Adattatore locale', '\\Modules\\FileAdapters\\Adapters\\LocalAdapter', '{ \"directory\":\"/files\" }', 0, 1, 1, NULL);
-- Modulo adattatori di archiviazione
INSERT INTO `zz_modules` (`id`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`, `use_notes`, `use_checklists`) VALUES (NULL, 'adattatori_archiviazione', 'SELECT |select| FROM zz_storage_adapters WHERE 1=1 HAVING 2=2', '', 'fa fa-folder', '2.5', '2.5', '2', '36', '1', '1', '0', '0');
INSERT INTO `zz_modules` (`name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`, `use_notes`, `use_checklists`) VALUES ('Adattatori di archiviazione', 'adattatori_archiviazione', 'SELECT |select| FROM zz_storage_adapters WHERE 1=1 HAVING 2=2', '', 'fa fa-folder', '2.5', '2.5', '2', '36', '1', '1', '0', '0');
INSERT INTO `zz_modules_lang` (`id`, `id_lang`, `id_record`, `name`, `title`) VALUES (NULL, '1', (SELECT id FROM zz_modules WHERE directory='adattatori_archiviazione'), 'Adattatori di archiviazione', 'Adattatori di archiviazione');
-- Viste modulo adattatori di archiviazione

View File

@ -295,10 +295,10 @@ ORDER BY
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_views`.`id_module` SET `zz_views`.`query` = 'CONCAT(`mg_articoli`.`codice`, " - ", `mg_articoli_lang`.`title`)' WHERE `zz_views`.`name` = 'Articolo' AND `zz_modules`.`name` = 'Listini';
-- Allineamento zz_views Categorie in Listini
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_views`.`id_module` SET `zz_views`.`query` = '`categorialang`.`name`' WHERE `zz_views`.`name` = 'Categoria' AND `zz_modules`.`name` = 'Listini';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_views`.`id_module` SET `zz_views`.`query` = '`categorialang`.`title`' WHERE `zz_views`.`name` = 'Categoria' AND `zz_modules`.`name` = 'Listini';
-- Allineamento zz_views Sottocategorie in Listini
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_views`.`id_module` SET `zz_views`.`query` = '`sottocategorialang`.`name`' WHERE `zz_views`.`name` = 'Sottocategoria' AND `zz_modules`.`name` = 'Listini';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_modules`.`id` = `zz_views`.`id_module` SET `zz_views`.`query` = '`sottocategorialang`.`title`' WHERE `zz_views`.`name` = 'Sottocategoria' AND `zz_modules`.`name` = 'Listini';
-- Sposto impostazione sotto sezione Aggiornamenti
UPDATE `zz_settings` SET `sezione` = 'Aggiornamenti' WHERE `zz_settings`.`nome` = 'Abilita canale pre-release per aggiornamenti';
@ -308,12 +308,16 @@ UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
zz_storage_adapters
`zz_storage_adapters`
WHERE
1=1 AND `deleted_at` IS NULL
HAVING
2=2" WHERE `zz_modules`.`name` = 'Adattatori di archiviazione';
UPDATE `zz_modules` SET `name` = 'Adattatori di archiviazione' WHERE `zz_modules`.`directory` = 'adattatori_archiviazione';
UPDATE `zz_views` SET `name` = 'id' WHERE `zz_views`.`query` = 'id' AND `zz_views`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Adattatori di archiviazione');
UPDATE `zz_views` SET `name` = 'Nome' WHERE `zz_views`.`query` = 'name' AND `zz_views`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Adattatori di archiviazione');
UPDATE `zz_views` SET `name` = 'icon_Predefinito' WHERE `zz_views`.`query` = 'if(is_default=1, "fa fa-check", "")' AND `zz_views`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Adattatori di archiviazione');
-- Rinomino plugin Sedi in Anagrafica
UPDATE `zz_plugins_lang` SET `title` = 'Sedi aggiuntive' WHERE `zz_plugins_lang`.`id_lang` = (SELECT `id` FROM `zz_langs` WHERE `predefined` = 1) AND `name` = 'Sedi';
@ -950,4 +954,10 @@ UPDATE `zz_settings` SET `tipo` = 'query=SELECT `zz_prints`.`id`, `zz_prints_lan
UPDATE `zz_settings` SET `tipo` = 'query=SELECT `an_anagrafiche`.`idanagrafica` AS id, `ragione_sociale` AS descrizione FROM `an_anagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica` = `an_tipianagrafiche_anagrafiche`.`idanagrafica` WHERE `idtipoanagrafica` = (SELECT `an_tipianagrafiche`.`id` FROM `an_tipianagrafiche` LEFT JOIN `an_tipianagrafiche_lang` ON(`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record`) WHERE `title` = \'Azienda\') AND `deleted_at` IS NULL' WHERE `zz_settings`.`nome` = 'Azienda predefinita';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`co_tipi_scadenze_lang`.`title`' WHERE `zz_modules`.`name` = 'Tipi scadenze' AND `zz_views`.`name` = 'Descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_causalet_lang`.`title`' WHERE `zz_modules`.`name` = 'Causali' AND `zz_views`.`name` = 'Descrizione';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_causalet_lang`.`title`' WHERE `zz_modules`.`name` = 'Causali' AND `zz_views`.`name` = 'Descrizione';
-- Fix plugin Storico attività
UPDATE `zz_plugins` SET `options` = ' { "main_query": [ { "type": "table", "fields": "Numero, Data inizio, Data fine, Tipo", "query": "SELECT in_interventi.id, in_interventi.codice AS Numero, DATE_FORMAT(MAX(orario_inizio), ''%d/%m/%Y'') AS ''Data inizio'', DATE_FORMAT(MAX(orario_fine), ''%d/%m/%Y'') AS ''Data fine'', `in_tipiintervento_lang`.`title`AS ''Tipo'', (SELECT `id` FROM `zz_modules` WHERE `name` = ''Interventi'' LIMIT 1) AS _link_module_, in_interventi.id AS _link_record_ FROM in_interventi LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id` INNER JOIN `in_tipiintervento` ON (`in_interventi`.`idtipointervento` = `in_tipiintervento`.`id`) LEFT JOIN `in_tipiintervento_lang` ON (`in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.`id_lang` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = ''Lingua'')) WHERE 1=1 AND in_interventi.deleted_at IS NULL AND idanagrafica = |id_parent| GROUP BY `in_interventi`.`id` HAVING 2=2 ORDER BY in_interventi.id DESC"} ]}' WHERE `zz_plugins`.`name` = 'Storico attività';
-- Fix plugin Ddt del cliente
UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\", \"fields\": \"Numero, Data, Descrizione, Qtà\", \"query\": \"SELECT dt_ddt.id, IF(dt_tipiddt.dir = \'entrata\', (SELECT `id` FROM `zz_modules` WHERE `name` = \'Ddt di vendita\'), (SELECT `id` FROM `zz_modules` WHERE `name` = \'Ddt di acquisto\')) AS _link_module_, dt_ddt.id AS _link_record_, IF(dt_ddt.numero_esterno = \'\', dt_ddt.numero, dt_ddt.numero_esterno) AS Numero, DATE_FORMAT(dt_ddt.data, \'%d/%m/%Y\') AS Data, dt_righe_ddt.descrizione AS `Descrizione`, REPLACE(REPLACE(REPLACE(FORMAT(dt_righe_ddt.qta, 2), \',\', \'#\'), \'.\', \',\'), \'#\', \'.\') AS `Qtà` FROM dt_ddt LEFT JOIN dt_righe_ddt ON dt_ddt.id=dt_righe_ddt.idddt JOIN dt_tipiddt ON dt_ddt.idtipoddt = dt_tipiddt.id WHERE dt_ddt.idanagrafica=|id_parent| HAVING 2=2 ORDER BY dt_ddt.id DESC\"} ]}' WHERE `zz_plugins`.`name` = 'Ddt del cliente';