Bugfix e rimozione warnings

This commit is contained in:
Thomas Zilio 2018-06-23 18:35:08 +02:00
parent 893d1b6081
commit 5f5e836652
31 changed files with 412 additions and 463 deletions

View File

@ -161,7 +161,7 @@ if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom
// Icona
if (preg_match('/^color_(.+?)$/', $field, $m)) {
$value = $r['color_title_'.$m[1]] ?: '';
$value = isset($r['color_title_'.$m[1]]) ? $r['color_title_'.$m[1]] : '';
$column['class'] = 'text-center small';
$column['data-background'] = $r[$field];

View File

@ -1,5 +1,7 @@
<?php
$result['idarticolo'] = isset($result['idarticolo']) ? $result['idarticolo'] : null;
// Articolo
if (!isset($options['edit_articolo']) || !empty($options['edit_articolo'])) {
echo '

View File

@ -1,5 +1,7 @@
<?php
$result['id'] = isset($result['id']) ? $result['id'] : null;
/*
Form di inserimento riga documento
*/

View File

@ -42,9 +42,10 @@ switch ($resource) {
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
if ($prev != $r['id_sottocategoria']) {
$categoria = $dbo->fetchArray('SELECT `nome` FROM `mg_categorie` WHERE `id`='.prepare($r['id_categoria']))[0]['nome'];
$categoria = $dbo->fetchOne('SELECT `nome` FROM `mg_categorie` WHERE `id`='.prepare($r['id_categoria']))['nome'];
$sottocategoria = $dbo->fetchArray('SELECT `nome` FROM `mg_categorie` WHERE `id`='.prepare($r['id_sottocategoria']))[0]['nome'];
$sottocategoria = $dbo->fetchOne('SELECT `nome` FROM `mg_categorie` WHERE `id`='.prepare($r['id_sottocategoria']));
$sottocategoria = isset($sottocategoria['nome']) ? $sottocategoria['nome'] : null;
$prev = $r['id_sottocategoria'];
$results[] = ['text' => $categoria.' ('.(!empty($r['id_sottocategoria']) ? $sottocategoria : '-').')', 'children' => []];

View File

@ -41,7 +41,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
<div class="row">
<div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Quantità'); ?>", "name": "qta", "required": 1, "value": "$qta$", "readonly": 1, "decimals": "qta", "min-value": "undefined" ]}
<input type="hidden" id="old_qta" value="<?=$records[0]['qta']?>">
<input type="hidden" id="old_qta" value="<?php echo $records[0]['qta']; ?>">
</div>
<div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Modifica quantità manualmente'); ?>", "name": "qta_manuale", "value": 0, "help": "<?php echo tr('Seleziona per modificare manualmente la quantità'); ?>", "placeholder": "<?php echo tr('Quantità manuale'); ?>", "extra": "<?php echo ($records[0]['servizio']) ? 'disabled' : ''; ?>" ]}
@ -93,7 +93,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
</div>
<div class='row' id="div_modifica_manuale" style="display:none;">
<div class='col-md-3'>
{[ "type": "text", "label": "<?php echo tr('Descrizione movimento'); ?>", "name": "descrizione_movimento", "value": "" ]}

View File

@ -12,7 +12,7 @@ include_once __DIR__.'/../../core.php';
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti" ]}
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "<?php echo $user['idanagrafica']; ?>", "ajax-source": "clienti" ]}
</div>
</div>

View File

@ -33,7 +33,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "ajax-source": "sedi", "extra": "<?php echo $readonly; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Sede'); ?>", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "ajax-source": "sedi" ]}
</div>
<div class="col-md-3">

View File

@ -4,7 +4,6 @@ include_once __DIR__.'/../../../core.php';
$idriga = filter('idriga');
//Lettura idanagrafica cliente e percentuale di sconto/rincaro in base al listino
//$rs = $dbo->fetchArray('SELECT idanagrafica, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=.in_interventi.idanagrafica)) AS prc_sconto FROM in_interventi WHERE id='.prepare($id_record));
//$idanagrafica = $rs[0]['idanagrafica'];
@ -25,9 +24,8 @@ if (empty($idriga)) {
$sconto_unitario = $rs[0]['prc_guadagno'];
$tipo_sconto = 'PRC';
}
(empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_righe_contratti`')[0]['max_idcontratto_riga'] : '';
(empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_righe_contratti`')[0]['max_idcontratto_riga'] : '';
} else {
$op = 'editriga';
$button = '<i class="fa fa-edit"></i> '.tr('Modifica');
@ -42,28 +40,23 @@ if (empty($idriga)) {
$idiva = $rsr[0]['idiva'];
$prezzo_vendita = $rsr[0]['prezzo_vendita'];
$prezzo_acquisto = $rsr[0]['prezzo_acquisto'];
$idcontratto_riga = $rsr[0]['id_riga_contratto'];
$idcontratto_riga = $rsr[0]['id_riga_contratto'];
$sconto_unitario = $rsr[0]['sconto_unitario'];
$tipo_sconto = $rsr[0]['tipo_sconto'];
}
/*
Form di inserimento
<form id="add-righe" action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'&idcontratto_riga='.$idcontratto_riga.'" method="post">
<form id="add-righe" action="'.$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'&idcontratto_riga='.$idcontratto_riga.'" method="post">
*/
echo '
<form id="add-righe" action="'.$rootdir.'/modules/contratti/plugins/actions.php" method="post">
<input type="hidden" name="op" value="'.$op.'">
<input type="hidden" name="idriga" value="'.$idriga.'">
<input type="hidden" name="idcontratto_riga" value="'.$idcontratto_riga.'">';
// Descrizione
echo '
@ -86,7 +79,7 @@ echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
</div>';
// Iva
echo '
<div class="col-md-4">
@ -136,8 +129,6 @@ echo '
// Ricarico le righe
$('#righe').load(globals.rootdir + '/modules/contratti/plugins/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>');
}
});
});

View File

@ -21,7 +21,7 @@ $mesi = [
];
// Pianificazione fatture
if ($get['op'] == 'add_fatturazione') {
if (get('op') == 'add_fatturazione') {
$prev_data = '';
// Azzero la pianificazione zone se era già stata fatta, per poter sostituire la pianificazione,
@ -50,7 +50,7 @@ if ($get['op'] == 'add_fatturazione') {
}
// Eliminazione pianificazione specifica
elseif ($get['op'] == 'del_pianificazione') {
elseif (get('op') == 'del_pianificazione') {
$idpianificazione = $get['idpianificazione'];
$n = $dbo->fetchNum('SELECT id FROM co_ordiniservizio_pianificazionefatture WHERE id='.prepare($idpianificazione));
@ -64,7 +64,7 @@ elseif ($get['op'] == 'del_pianificazione') {
}
// Creazione fattura pianificata
elseif ($get['op'] == 'addfattura') {
elseif (get('op') == 'addfattura') {
include_once $docroot.'/modules/fatture/modutil.php';
$idpianificazione = $get['idpianificazione'];
@ -82,7 +82,7 @@ elseif ($get['op'] == 'addfattura') {
$numero = get_new_numerofattura($data);
$id_segment = post('id_segment');
$numero_esterno = get_new_numerosecondariofattura($data);
// Tipo di pagamento + banca predefinite dall'anagrafica
$query = 'SELECT id, (SELECT idbanca_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($idanagrafica).') AS idbanca FROM co_pagamenti WHERE id = (SELECT idpagamento_vendite AS pagamento FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).')';
$rs = $dbo->fetchArray($query);
@ -101,7 +101,7 @@ elseif ($get['op'] == 'addfattura') {
$rs = $dbo->fetchArray($query);
$idbanca = $rs[0]['id'];
}
$query = 'INSERT INTO co_documenti(numero, numero_esterno, idanagrafica, idtipodocumento, idpagamento, data, idstatodocumento, note, idsede, id_segment, idconto, idbanca) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), ".prepare($note).', (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica='.prepare($idanagrafica).'), '.prepare($id_segment).', '.prepare($idconto).', '.prepare($idbanca).' )';
$dbo->query($query);
$iddocumento = $dbo->lastInsertedID();

View File

@ -21,7 +21,7 @@ $mesi = [
];
// Generazione ordini di servizio
if ($get['op'] == 'add_ordineservizio') {
if (get('op') == 'add_ordineservizio') {
$prev_data = '';
// Ciclo fra le voci in arrivo dal form
@ -49,7 +49,7 @@ if ($get['op'] == 'add_ordineservizio') {
}
// Eliminazione pianificazione specifica
elseif ($get['op'] == 'del_ordineservizio') {
elseif (get('op') == 'del_ordineservizio') {
$idordineservizio = $get['idordineservizio'];
$n = $dbo->fetchNum('SELECT id FROM co_ordiniservizio WHERE id='.prepare($idordineservizio)." AND stato='aperto'");

View File

@ -2,57 +2,51 @@
include_once __DIR__.'/../../../core.php';
// Pianificazione intervento
switch (filter('op')) {
case 'add-pianifica':
$data_richiesta = filter('data_richiesta');
$query = 'INSERT INTO `co_righe_contratti` ( `idcontratto`, `data_richiesta` ) VALUES ('.prepare($id_record).', '.prepare($data_richiesta).')';
if ($dbo->query($query)) {
case 'add-pianifica':
$data_richiesta = filter('data_richiesta');
$query = 'INSERT INTO `co_righe_contratti` ( `idcontratto`, `data_richiesta` ) VALUES ('.prepare($id_record).', '.prepare($data_richiesta).')';
if ($dbo->query($query)) {
} else {
$_SESSION['errors'][] = tr("Errore durante l'aggiunta del promemoria!");
}
break;
}else{
$_SESSION['errors'][] = tr("Errore durante l'aggiunta del promemoria!");
}
break;
case 'edit-pianifica':
$idcontratto_riga = filter('idcontratto_riga');
$data_richiesta = filter('data_richiesta');
$idcontratto_riga = filter('idcontratto_riga');
$data_richiesta = filter('data_richiesta');
$idtipointervento = filter('idtipointervento');
$richiesta = filter('richiesta');
$idsede = filter('idsede_c');
$idimpianti = implode(",", $post['idimpianti']);
$query = 'UPDATE co_righe_contratti SET idtipointervento='.prepare($idtipointervento).', data_richiesta='.prepare($data_richiesta).', richiesta='.prepare($richiesta).', idsede='.prepare($idsede).', idimpianti='.prepare($idimpianti).' WHERE id = '.prepare($idcontratto_riga);
$idimpianti = implode(',', $post['idimpianti']);
$query = 'UPDATE co_righe_contratti SET idtipointervento='.prepare($idtipointervento).', data_richiesta='.prepare($data_richiesta).', richiesta='.prepare($richiesta).', idsede='.prepare($idsede).', idimpianti='.prepare($idimpianti).' WHERE id = '.prepare($idcontratto_riga);
if (isset($id_record)) {
if ($dbo->query($query)) {
$_SESSION['infos'][] = tr('Promemoria inserito!');
} else {
$_SESSION['errors'][] = tr("Errore durante la modifica del promemoria!");
$_SESSION['errors'][] = tr('Errore durante la modifica del promemoria!');
}
}
break;
// Eliminazione pianificazione
case 'depianifica':
$id = filter('id');
$dbo->query('DELETE FROM `co_righe_contratti` WHERE id='.prepare($id));
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto='.prepare($id));
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto='.prepare($id));
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto='.prepare($id));
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto='.prepare($id));
$_SESSION['infos'][] = tr('Pianificazione eliminata!');
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
@ -63,9 +57,9 @@ switch (filter('op')) {
case 'delete-promemoria':
$dbo->query('DELETE FROM `co_righe_contratti` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL');
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto IN (SELECT id FROM `co_righe_contratti` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto IN (SELECT id FROM `co_righe_contratti` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
$dbo->query('DELETE FROM `co_righe_contratti_materiali` WHERE id_riga_contratto IN (SELECT id FROM `co_righe_contratti` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
$dbo->query('DELETE FROM `co_righe_contratti_articoli` WHERE id_riga_contratto IN (SELECT id FROM `co_righe_contratti` WHERE idcontratto = '.$id_record.' AND idintervento IS NULL ) ');
$_SESSION['errors'][] = tr('Tutti i promemoria non associati sono stati eliminati!');
redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin);
@ -80,25 +74,24 @@ switch (filter('op')) {
$parti_da_oggi = post('parti_da_oggi');
if (!empty($idcontratto_riga) && !empty($intervallo)) {
$qp = 'SELECT *, (SELECT idanagrafica FROM co_contratti WHERE id = '.$id_record.' ) AS idanagrafica, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_record.' ) AS data_conclusione, '.
'(SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento FROM co_righe_contratti '.
'WHERE co_righe_contratti.id = '.$idcontratto_riga;
$qp = 'SELECT *, (SELECT idanagrafica FROM co_contratti WHERE id = '.$id_record.' ) AS idanagrafica, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_record.' ) AS data_conclusione, '.
'(SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento FROM co_righe_contratti '.
'WHERE co_righe_contratti.id = '.$idcontratto_riga;
$rsp = $dbo->fetchArray($qp);
$idtipointervento = $rsp[0]['idtipointervento'];
$idsede = $rsp[0]['idsede'];
$richiesta = $rsp[0]['richiesta'];
$data_richiesta = $rsp[0]['data_richiesta'];
$idimpianti = $rsp[0]['idimpianti'];
//mi serve per la pianificazione dei promemoria
$data_conclusione = $rsp[0]['data_conclusione'];
$data_richiesta = $rsp[0]['data_richiesta'];
$idimpianti = $rsp[0]['idimpianti'];
//mi serve per la pianificazione dei promemoria
$data_conclusione = $rsp[0]['data_conclusione'];
//mi serve per la pianificazione interventi
$idanagrafica = $rsp[0]['idanagrafica'];
//se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria)
if ($parti_da_oggi) {
//oggi
@ -118,21 +111,18 @@ switch (filter('op')) {
if ((date('Y-m-d', strtotime($data_richiesta)) >= $min_date) && (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione)))) {
//Controllo che non esista già un promemoria idcontratto, idtipointervento e data_richiesta.
if (count($dbo->fetchArray("SELECT id FROM co_righe_contratti WHERE data_richiesta = '".$data_richiesta."' AND idtipointervento = '".$idtipointervento."' AND idcontratto = '".$id_record."' ")) == 0) {
//inserisco il nuovo promemoria
//inserisco il nuovo promemoria
$query = 'INSERT INTO `co_righe_contratti`(`idcontratto`, `idtipointervento`, `data_richiesta`, `richiesta`, `idsede`, `idimpianti` ) VALUES('.prepare($id_record).', '.prepare($idtipointervento).', '.prepare($data_richiesta).', '.prepare($richiesta).', '.prepare($idsede).', '.prepare($idimpianti).')';
if ($dbo->query($query)) {
$idriga = $dbo->lastInsertedID();
//copio anche righe materiali nel nuovo promemoria
$dbo->query('INSERT INTO co_righe_contratti_materiali (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,id_riga_contratto,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,'.$idriga.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
//copio righe articoli nel nuovo promemoria
$dbo->query('INSERT INTO co_righe_contratti_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
//copio anche righe materiali nel nuovo promemoria
$dbo->query('INSERT INTO co_righe_contratti_materiali (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,id_riga_contratto,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva, desc_iva,iva,'.$idriga.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
//copio righe articoli nel nuovo promemoria
$dbo->query('INSERT INTO co_righe_contratti_articoli (idarticolo, id_riga_contratto,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idriga.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
$_SESSION['infos'][] = tr('Promemoria intervento pianificato!');
//pianificare anche l' intervento?
@ -183,27 +173,25 @@ switch (filter('op')) {
//collego l'intervento ai promemoria
$dbo->query('UPDATE co_righe_contratti SET idintervento='.prepare($idintervento).' WHERE id='.prepare($idriga));
//copio le righe dal promemoria all'intervento
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$idintervento.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
//copio gli articoli dal promemoria all'intervento
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idintervento.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
// Decremento la quantità per ogni articolo copiato
include_once $docroot.'/modules/articoli/modutil.php';
$rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$idintervento.' ');
foreach ($rs_articoli as $rs_articolo) {
add_movimento_magazzino($rs_articolo['idarticolo'], -force_decimal($rs_articolo['qta']), ['idautomezzo' => $rs_articolo['idautomezzo'], 'idintervento' => $idintervento]);
}
// Collego gli impianti del promemoria all' intervento appena inserito
$rs_idimpianti = explode(',', $idimpianti);
foreach ($rs_idimpianti as $idimpianto) {
$dbo->query('INSERT INTO my_impianti_interventi (idintervento, idimpianto) VALUES ('.$idintervento.', '.$idimpianto.' )' );
}
//copio le righe dal promemoria all'intervento
$dbo->query('INSERT INTO in_righe_interventi (descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,idintervento,sconto,sconto_unitario,tipo_sconto) SELECT descrizione, qta,um,prezzo_vendita,prezzo_acquisto,idiva,desc_iva,iva,'.$idintervento.',sconto,sconto_unitario,tipo_sconto FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.$idcontratto_riga.' ');
//copio gli articoli dal promemoria all'intervento
$dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idintervento.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' ');
// Decremento la quantità per ogni articolo copiato
include_once $docroot.'/modules/articoli/modutil.php';
$rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$idintervento.' ');
foreach ($rs_articoli as $rs_articolo) {
add_movimento_magazzino($rs_articolo['idarticolo'], -force_decimal($rs_articolo['qta']), ['idautomezzo' => $rs_articolo['idautomezzo'], 'idintervento' => $idintervento]);
}
// Collego gli impianti del promemoria all' intervento appena inserito
$rs_idimpianti = explode(',', $idimpianti);
foreach ($rs_idimpianti as $idimpianto) {
$dbo->query('INSERT INTO my_impianti_interventi (idintervento, idimpianto) VALUES ('.$idintervento.', '.$idimpianto.' )');
}
// $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.');
@ -268,8 +256,6 @@ if (count($rsp) != 0) {
// Elenco promemoria
for ($i = 0; $i < sizeof($rsp); ++$i) {
// Sede
if ($rsp[$i]['idsede'] == '-1') {
echo '- '.('Nessuna').' -';
@ -295,42 +281,41 @@ if (count($rsp) != 0) {
$info_intervento = '- '.('Nessuno').' -';
$disabled = '';
}
//data_conclusione contratto
//data_conclusione contratto
if (date('Y', strtotime($records[0]['data_conclusione'])) < 1971) {
$records[0]['data_conclusione'] = '';
}
//info impianti
$info_impianti = '';
if (!empty($rsp[$i]['idimpianti'])){
$rsp3 = $dbo->fetchArray('SELECT id, matricola, nome FROM my_impianti WHERE id IN ('.($rsp[$i]['idimpianti']).')');
if (!empty( $rsp3 )){
for ($a=0; $a<count($rsp3); $a++){
$info_impianti .= Modules::link('MyImpianti', $rsp3[$a]['id'], tr('_NOME_ (_MATRICOLA_)', [
'_NOME_' => $rsp3[$a]['nome'],
'_MATRICOLA_' => $rsp3[$a]['matricola'],
])).'<br>';
}
}
}
$rsp4 = $dbo->fetchArray('SELECT id, descrizione,qta,um,prezzo_vendita, \'\' AS idarticolo FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.prepare($rsp[$i]['id']).'
UNION SELECT id, descrizione,qta,um,prezzo_vendita, idarticolo FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.prepare($rsp[$i]['id']) );
$info_materiali = '';
if (!empty( $rsp4 )){
for ($b=0; $b<count($rsp4); $b++){
$info_materiali .= tr(' _QTA_ _UM_ x _DESC_', [
'_DESC_' => ((!empty($rsp4[$b]['idarticolo'])) ? Modules::link('Articoli', $rsp4[$b]['idarticolo'], $rsp4[$b]['descrizione']) : $rsp4[$b]['descrizione'] ),
'_QTA_' => Translator::numberToLocale($rsp4[$b]['qta']),
'_UM_' => $rsp4[$b]['um'],
'_PREZZO_' => $rsp4[$b]['prezzo_vendita'],
]).'<br>';
}
}
//info impianti
$info_impianti = '';
if (!empty($rsp[$i]['idimpianti'])) {
$rsp3 = $dbo->fetchArray('SELECT id, matricola, nome FROM my_impianti WHERE id IN ('.($rsp[$i]['idimpianti']).')');
if (!empty($rsp3)) {
for ($a = 0; $a < count($rsp3); ++$a) {
$info_impianti .= Modules::link('MyImpianti', $rsp3[$a]['id'], tr('_NOME_ (_MATRICOLA_)', [
'_NOME_' => $rsp3[$a]['nome'],
'_MATRICOLA_' => $rsp3[$a]['matricola'],
])).'<br>';
}
}
}
$rsp4 = $dbo->fetchArray('SELECT id, descrizione,qta,um,prezzo_vendita, \'\' AS idarticolo FROM co_righe_contratti_materiali WHERE id_riga_contratto = '.prepare($rsp[$i]['id']).'
UNION SELECT id, descrizione,qta,um,prezzo_vendita, idarticolo FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.prepare($rsp[$i]['id']));
$info_materiali = '';
if (!empty($rsp4)) {
for ($b = 0; $b < count($rsp4); ++$b) {
$info_materiali .= tr(' _QTA_ _UM_ x _DESC_', [
'_DESC_' => ((!empty($rsp4[$b]['idarticolo'])) ? Modules::link('Articoli', $rsp4[$b]['idarticolo'], $rsp4[$b]['descrizione']) : $rsp4[$b]['descrizione']),
'_QTA_' => Translator::numberToLocale($rsp4[$b]['qta']),
'_UM_' => $rsp4[$b]['um'],
'_PREZZO_' => $rsp4[$b]['prezzo_vendita'],
]).'<br>';
}
}
echo '
<tr>
<td>'.Translator::dateToLocale($rsp[$i]['data_richiesta']).'<!--br><small>'.Translator::dateToLocale($records[0]['data_conclusione']).'</small--></td>
@ -339,8 +324,8 @@ if (count($rsp) != 0) {
<td>'.$info_intervento.'</td>
<td>'.$info_sede.'</td>
<td>'.$info_impianti.'</td>
<td>'.$info_materiali.'</td>
<td>'.$info_allegati.'</td>
<td>'.$info_materiali.'</td>
<td>'.$info_allegati.'</td>
<td align="right">';
echo '
@ -362,20 +347,18 @@ if (count($rsp) != 0) {
</tbody>
</table>';
echo '<br><div class="pull-right">';
echo '<br><div class="pull-right">';
if (count($rsp) > 0) {
echo ' <button type="button" title="Elimina tutti i promemoria per questo contratto che non sono associati ad intervento." class="btn btn-danger ask tip" data-op="delete-promemoria" >
echo ' <button type="button" title="Elimina tutti i promemoria per questo contratto che non sono associati ad intervento." class="btn btn-danger ask tip" data-op="delete-promemoria" >
<i class="fa fa-trash"></i> '.tr('Elimina promemoria').'
</button>';
}
echo '</div>';
echo '</div>';
}
echo ' <button type="button" title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary" id="add_promemoria">
echo ' <button type="button" title="Aggiungi un nuovo promemoria da pianificare." data-toggle="tooltip" class="btn btn-primary" id="add_promemoria">
<i class="fa fa-plus"></i> '.tr('Nuovo promemoria').'
</button>';
@ -425,43 +408,40 @@ echo '
</div>
</div>';
?>
<script type="text/javascript">
$( "#add_promemoria" ).click(function() {
swal({
title: '<?php echo tr("Aggiungere un nuovo promemoria?") ?>',
title: '<?php echo tr('Aggiungere un nuovo promemoria?'); ?>',
type: "info",
showCancelButton: true,
confirmButtonText: '<?php echo tr("Aggiungi") ?>',
confirmButtonText: '<?php echo tr('Aggiungi'); ?>',
confirmButtonClass: 'btn btn-lg btn-success',
}).then(
function (result) {
prev_html = $("#add_promemoria").html();
$("#add_promemoria").html("<i class='fa fa-spinner fa-pulse fa-fw'></i> <?php echo tr("Attendere...") ?>");
$("#add_promemoria").html("<i class='fa fa-spinner fa-pulse fa-fw'></i> <?php echo tr('Attendere...'); ?>");
$("#add_promemoria").prop('disabled', true);
$.post( "<?php echo $rootdir ?>/editor.php?id_module=<?php echo Modules::get('Contratti')['id'] ?>&id_record=<?php echo $id_record ?>", { backto: "record-edit", op: "add-pianifica", data_richiesta: '<?php echo date('Y-m-d'); ?>' })
$.post( "<?php echo $rootdir; ?>/editor.php?id_module=<?php echo Modules::get('Contratti')['id']; ?>&id_record=<?php echo $id_record; ?>", { backto: "record-edit", op: "add-pianifica", data_richiesta: '<?php echo date('Y-m-d'); ?>' })
.done(function( data ) {
//$('#righe').load(globals.rootdir + '/modules/contratti/plugins/ajax_righe.php?id_module=<?php echo $id_module; ?>&id_record=<?php echo $id_record; ?>&idcontratto_riga=<?php echo $idcontratto_riga; ?>');
launch_modal('Nuovo promemoria', '<?php echo $rootdir ?>/modules/contratti/plugins/addpianficazione.php?id_module=<?php echo Modules::get('Contratti')['id'] ?>&id_plugin=<?php echo Plugins::get('Pianificazione interventi')['id'] ?>&ref=interventi_contratti&id_record=<?php echo $id_record?>', 1, '#bs-popup');
launch_modal('Nuovo promemoria', '<?php echo $rootdir; ?>/modules/contratti/plugins/addpianficazione.php?id_module=<?php echo Modules::get('Contratti')['id']; ?>&id_plugin=<?php echo Plugins::get('Pianificazione interventi')['id']; ?>&ref=interventi_contratti&id_record=<?php echo $id_record; ?>', 1, '#bs-popup');
$("#add_promemoria").html(prev_html);
$("#add_promemoria").prop('disabled', false);
});
},
function (dismiss) {}
);
});
$(document).ready(function() {
});
</script>

View File

@ -22,87 +22,85 @@ echo '
</thead>
<tbody class="sortable">';
// se ho almeno un articolo caricato mostro la riga
if (!empty($rs)) {
foreach ($rs as $r) {
// descrizione
echo '
foreach ($rs as $r) {
// Descrizione
echo '
<tr data-id="'.$r['id'].'">
<td>';
if (!empty($r['idarticolo'])) {
echo Modules::link('Articoli', $r['idarticolo'], $r['codice'].' - '.$r['descrizione']);
} else {
echo nl2br($r['descrizione']);
}
if (!empty($r['idarticolo'])) {
echo Modules::link('Articoli', $r['idarticolo'], $r['codice'].' - '.$r['descrizione']);
} else {
echo nl2br($r['descrizione']);
}
echo '
echo '
</td>';
// q.tà
echo '
// Q.tà
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['qta']);
}
echo '
}
echo '
</td>';
// um
echo '
// um
echo '
<td class="text-center">';
if (empty($r['is_descrizione'])) {
echo '
'.$r['um'];
}
if (empty($r['is_descrizione'])) {
echo '
'.$r['um'];
}
echo '
</td>';
// costo unitario
echo '
// Costo unitario
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['subtotale'] / $r['qta']).' &euro;';
if ($r['sconto_unitario'] > 0) {
echo '
if ($r['sconto_unitario'] > 0) {
echo '
<br><small class="label label-danger">'.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}
}
echo'
}
echo'
</td>';
// iva
echo '
// IVA
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['iva'])." &euro;<br>
<small class='help-block'>".$r['desc_iva'].'</small>';
}
echo '
}
echo '
</td>';
// Imponibile
echo '
// Imponibile
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' &euro;';
}
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' &euro;';
}
echo '
</td>';
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
echo '
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
echo '
<td class="text-center">';
if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) {
echo '
if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) {
echo '
<form action="'.$rootdir.'/editor.php?id_module='.Modules::get('Contratti')['id'].'&id_record='.$id_record.'" method="post" id="delete-form-'.$r['id'].'" role="form">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="id_record" value="'.$id_record.'">
@ -112,43 +110,39 @@ if (!empty($rs)) {
<div class="btn-group">';
echo "
echo "
<a class='btn btn-xs btn-warning' onclick=\"launch_modal('Modifica riga', '".$rootdir.'/modules/contratti/row-edit.php?id_module='.$id_module.'&id_record='.$id_record.'&idriga='.$r['id']."', 1 );\"><i class='fa fa-edit'></i></a>
<a href='javascript:;' class='btn btn-xs btn-danger' title='Rimuovi questa riga' onclick=\"if( confirm('Rimuovere questa riga dal contratto?') ){ $('#delete-form-".$r['id']."').submit(); }\"><i class='fa fa-trash'></i></a>";
echo '
echo '
</div>
</form>';
}
}
if (empty($r['sconto_globale'])) {
echo '
if (empty($r['sconto_globale'])) {
echo '
<div class="handle clickable" style="padding:10px">
<i class="fa fa-sort"></i>
</div>';
}
}
echo '
echo '
</td>
</tr>';
// Calcoli
$imponibile = sum(array_column($rs, 'subtotale'));
$sconto = sum(array_column($rs, 'sconto'));
$iva = sum(array_column($rs, 'iva'));
$imponibile_scontato = sum($imponibile, -$sconto);
$totale = sum([
$imponibile_scontato,
$iva,
]);
}
}
// Calcoli
$imponibile = sum(array_column($rs, 'subtotale'));
$sconto = sum(array_column($rs, 'sconto'));
$iva = sum(array_column($rs, 'iva'));
$imponibile_scontato = sum($imponibile, -$sconto);
$totale = sum([
$imponibile_scontato,
$iva,
]);
echo '
</tbody>';

View File

@ -10,6 +10,13 @@ unset($_SESSION['superselect']['idsede']);
$idanagrafica = filter('idanagrafica');
$idsede = filter('idsede');
$idimpianto = null;
$idzona = null;
$idtipointervento = null;
$idstatointervento = null;
$idtecnico = null;
$richiesta = null;
$impianti = [];
if (!empty($idanagrafica)) {
@ -38,8 +45,6 @@ if (!empty($idcontratto) && !empty($idordineservizio)) {
$rs = $dbo->fetchArray('SELECT *, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = co_contratti.idanagrafica) AS idzona FROM co_contratti WHERE id='.prepare($idcontratto));
$idanagrafica = $rs[0]['idanagrafica'];
$idzona = $rs[0]['idzona'];
// Info riga pianificata
$rs = $dbo->fetchArray('SELECT * FROM co_ordiniservizio WHERE idcontratto='.prepare($idcontratto).' AND id='.prepare($idordineservizio));
@ -60,11 +65,11 @@ elseif (!empty($idcontratto) && !empty($idcontratto_riga)) {
$rs = $dbo->fetchArray('SELECT *, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica = co_contratti.idanagrafica) AS idzona, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_contratti.idtipointervento) AS tempo_standard FROM co_contratti WHERE id='.prepare($idcontratto));
$idanagrafica = $rs[0]['idanagrafica'];
$idzona = $rs[0]['idzona'];
//aumento orario inizio del tempo standard definito dalla tipologia dell'intervento (PRESO DAL CONTRATTO)
if (!empty($rs[0]['tempo_standard']))
$orario_fine = date('H:i', strtotime($orario_inizio) + ((60 * 60 ) * $rs[0]['tempo_standard']));
// aumento orario inizio del tempo standard definito dalla tipologia dell'intervento (PRESO DAL CONTRATTO)
if (!empty($rs[0]['tempo_standard'])) {
$orario_fine = date('H:i', strtotime($orario_inizio) + ((60 * 60) * $rs[0]['tempo_standard']));
}
// Info riga pianificata
$rs = $dbo->fetchArray('SELECT *, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_righe_contratti.idtipointervento) AS tempo_standard FROM co_righe_contratti WHERE idcontratto='.prepare($idcontratto).' AND id='.prepare($idcontratto_riga));
@ -72,21 +77,21 @@ elseif (!empty($idcontratto) && !empty($idcontratto_riga)) {
$data = (null !== filter('data')) ? filter('data') : $rs[0]['data_richiesta'];
$richiesta = $rs[0]['richiesta'];
$idsede = $rs[0]['idsede'];
$idimpianti = $rs[0]['idimpianti'];
//aumento orario inizio del tempo standard definito dalla tipologia dell'intervento (PRESO DAL PROMEMORIA)
if (!empty($rs[0]['tempo_standard']))
$orario_fine = date('H:i', strtotime($orario_inizio) + ((60 * 60 ) * $rs[0]['tempo_standard']));
//se gli impianti non sono stati definiti nel promemoria, carico tutti gli impianti a contratto
if (empty($idimpianti)){
$rs = $dbo->fetchArray('SELECT idimpianto FROM my_impianti_contratti WHERE idcontratto='.prepare($idcontratto));
$idimpianto = implode(',', array_column($rs, 'idimpianto'));
}else{
$idimpianto = $idimpianti;
}
$idimpianti = $rs[0]['idimpianti'];
// aumento orario inizio del tempo standard definito dalla tipologia dell'intervento (PRESO DAL PROMEMORIA)
if (!empty($rs[0]['tempo_standard'])) {
$orario_fine = date('H:i', strtotime($orario_inizio) + ((60 * 60) * $rs[0]['tempo_standard']));
}
// se gli impianti non sono stati definiti nel promemoria, carico tutti gli impianti a contratto
if (empty($idimpianti)) {
$rs = $dbo->fetchArray('SELECT idimpianto FROM my_impianti_contratti WHERE idcontratto='.prepare($idcontratto));
$idimpianto = implode(',', array_column($rs, 'idimpianto'));
} else {
$idimpianto = $idimpianti;
}
// Seleziono "In programmazione" come stato
$rs = $dbo->fetchArray("SELECT * FROM in_statiintervento WHERE idstatointervento='WIP'");
$idstatointervento = $rs[0]['idstatointervento'];
@ -119,7 +124,7 @@ if (empty($new_codice)) {
<form action="" method="post" id="add-form" id="add-form" onsubmit="if($(this).parsley().validate()) { return add_intervento(); }">
<input type="hidden" name="op" value="add">
<input type="hidden" name="ref" value="<?php echo $_GET['ref']; ?>">
<input type="hidden" name="ref" value="<?php echo get('ref'); ?>">
<input type="hidden" name="backto" value="record-edit">
<!-- DATI CLIENTE -->
@ -148,7 +153,7 @@ if (empty($new_codice)) {
<!-- RIGA 2 -->
<div class="row">
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Preventivo'); ?>", "name": "idpreventivo", "value": "<?php echo $idpreventivo; ?>", "placeholder": "<?php echo tr('Seleziona prima un cliente'); ?>...", "ajax-source": "preventivi" ]}
{[ "type": "select", "label": "<?php echo tr('Preventivo'); ?>", "name": "idpreventivo", "placeholder": "<?php echo tr('Seleziona prima un cliente'); ?>...", "ajax-source": "preventivi" ]}
</div>
<div class="col-md-4">
@ -162,7 +167,7 @@ if (empty($new_codice)) {
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "<?php echo tr('Componenti'); ?>", "multiple": 1, "name": "componenti[]", "value": "<?php echo $componenti; ?>", "placeholder": "<?php echo tr('Seleziona prima un impianto'); ?>...", "ajax-source": "componenti" ]}
{[ "type": "select", "label": "<?php echo tr('Componenti'); ?>", "multiple": 1, "name": "componenti[]", "placeholder": "<?php echo tr('Seleziona prima un impianto'); ?>...", "ajax-source": "componenti" ]}
</div>
</div>
</div>
@ -186,11 +191,11 @@ if (empty($new_codice)) {
</div>
<div class="col-md-4">
{[ "type": "date", "label": "<?php echo tr('Data intervento'); ?>", "name": "data", "required": <?php echo ($get['ref']) ? 1 : 0; ?>, "value": "<?php echo $data; ?>" ]}
{[ "type": "date", "label": "<?php echo tr('Data intervento'); ?>", "name": "data", "required": <?php echo get('ref') ? 1 : 0; ?>, "value": "<?php echo $data; ?>" ]}
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Zona'); ?>", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "<?php echo $idzona; ?>", "placeholder": "<?php echo tr('Nessuna zona'); ?>", "help":"<?php echo 'La zona viene definita automaticamente in base al cliente selezionato' ?>.", "extra": "readonly" ]}
{[ "type": "select", "label": "<?php echo tr('Zona'); ?>", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "<?php echo $idzona; ?>", "placeholder": "<?php echo tr('Nessuna zona'); ?>", "help":"<?php echo 'La zona viene definita automaticamente in base al cliente selezionato'; ?>.", "extra": "readonly" ]}
</div>
</div>
@ -205,18 +210,18 @@ if (empty($new_codice)) {
</div>
<div class="col-md-2">
{[ "type": "time", "label": "<?php echo tr('Orario inizio'); ?>", "name": "orario_inizio", "required": <?php echo ($get['ref']) ? 1 : 0; ?>, "value": "<?php echo $orario_inizio; ?>" ]}
{[ "type": "time", "label": "<?php echo tr('Orario inizio'); ?>", "name": "orario_inizio", "required": <?php echo get('ref') ? 1 : 0; ?>, "value": "<?php echo $orario_inizio; ?>" ]}
</div>
<div class="col-md-2">
{[ "type": "time", "label": "<?php echo tr('Orario fine'); ?>", "name": "orario_fine", "required": <?php echo ($get['ref']) ? 1 : 0; ?>, "value": "<?php echo $orario_fine; ?>" ]}
{[ "type": "time", "label": "<?php echo tr('Orario fine'); ?>", "name": "orario_fine", "required": <?php echo get('ref') ? 1 : 0; ?>, "value": "<?php echo $orario_fine; ?>" ]}
</div>
</div>
<!-- RIGA 5 -->
<div class="row">
<div class="col-md-12">
{[ "type": "select", "label": "<?php echo tr('Tecnici'); ?>", "multiple": "1", "name": "idtecnico[]", "required": <?php echo ($get['ref']) ? 1 : 0; ?>, "ajax-source": "tecnici", "value": "<?php echo $idtecnico; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Tecnici'); ?>", "multiple": "1", "name": "idtecnico[]", "required": <?php echo get('ref') ? 1 : 0; ?>, "ajax-source": "tecnici", "value": "<?php echo $idtecnico; ?>" ]}
</div>
<div class="col-md-12">
@ -297,7 +302,7 @@ if (empty($new_codice)) {
$("#idimpianti").prop("disabled", value);
$("#impianti").find("button").prop("disabled", value);
$("#idimpianti").selectReset();
if (($(this).val())) {
if (($(this).selectData().idzona)){
@ -306,7 +311,7 @@ if (empty($new_codice)) {
}else{
$('#idzona').val('').change();
}
//session_set('superselect,idzona', $(this).selectData().idzona, 0);
// session_set('superselect,idzona', $(this).selectData().idzona, 0);
}
@ -323,7 +328,7 @@ if (empty($new_codice)) {
}else{
$('#idzona').val('').change();
}
//session_set('superselect,idzona', $(this).selectData().idzona, 0);
// session_set('superselect,idzona', $(this).selectData().idzona, 0);
}
});
@ -351,30 +356,32 @@ if (empty($new_codice)) {
$("#componenti").prop("disabled", !$(this).val() ? true : false);
$("#componenti").selectReset();
});
$('#idtipointervento').change( function(){
if ( (($(this).selectData().tempo_standard)>0) && ('<?php echo filter('orario_fine') ?>' == '')){
//data = moment('<?php echo $data.' '.$orario_inizio ?>').format('YYYY-MM-DD HH:mm
data = moment( moment().format('YYYY-MM-DD') + '<?php echo ' '.$orario_inizio ?>').format('YYYY-MM-DD HH:mm');
if ( (($(this).selectData().tempo_standard)>0) && ('<?php echo filter('orario_fine'); ?>' == '')){
// data = moment('<?php echo $data.' '.$orario_inizio; ?>').format('YYYY-MM-DD HH:mm
data = moment( moment().format('YYYY-MM-DD') + '<?php echo ' '.$orario_inizio; ?>').format('YYYY-MM-DD HH:mm');
tempo_standard = $(this).selectData().tempo_standard;
orario_fine = moment(data).add(tempo_standard, 'hours').format("HH:mm");
$('input[name=orario_fine]').val(orario_fine);
}
});
$('#idtecnico').change( function(){
<?php if (!$get['ref']){ ?>
<?php if (!get('ref')) {
?>
var value = ($(this).val()>0) ? true : false;
$('#orario_inizio').prop("required", value);
$('#orario_fine').prop("required", value);
$('#data').prop("required", value);
<?php } ?>
});
var ref = "<?php echo $get['ref']; ?>";
<?php
} ?>
});
var ref = "<?php echo get('ref'); ?>";
function add_intervento(){
// Se l'aggiunta intervento proviene dal calendario, faccio il submit via ajax e ricarico gli eventi...

View File

@ -32,7 +32,6 @@ switch (post('op')) {
if ($dbo->query($query)) {
$id_record = $dbo->lastInsertedID();
}
}
break;

View File

@ -2,13 +2,13 @@
include_once __DIR__.'/../../core.php';
?><form action="<?php echo ROOTDIR ?>/editor.php?id_module=<?php echo Modules::get('Modelli prima nota')['id']; ?>" method="post" id="add-form">
?><form action="" method="post" id="add-form">
<input type="hidden" name="op" value="add">
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-8">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "<?php echo $descrizione; ?>" ]}
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1 ]}
</div>
</div>
@ -27,22 +27,14 @@ include_once __DIR__.'/../../core.php';
</tr>';
for ($i = 0; $i < 10; ++$i) {
($i<=1) ? $required = 1 : $required = 0;
// Conto
$required = ($i <= 1) ? 1 : 0;
// Conto
echo '
<tr>
<td>
{[ "type": "select", "name": "idconto['.$i.']", "value": "';
if ($i == 0) {
echo $idconto_controparte;
} elseif ($i == 1) {
echo $idconto_aziendale;
}
echo '", "ajax-source": "conti", "required": "'.$required.'" ]}
</td>';
echo '
{[ "type": "select", "name": "idconto['.$i.']", "ajax-source": "conti", "required": "'.$required.'" ]}
</td>
</tr>';
}
@ -56,21 +48,5 @@ include_once __DIR__.'/../../core.php';
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
</div>
</div>
<script type="text/javascript">
$(document).ready( function(){
$('select').on('change', function(){
if($(this).parent().parent().find('input[disabled]').length != 1){
if($(this).val()) {
$(this).parent().parent().find('input').prop("disabled", false);
}
else{
$(this).parent().parent().find('input').prop("disabled", true);
$(this).parent().parent().find('input').val("");
}
}
});
});
</script>
</form>

View File

@ -16,59 +16,50 @@ include_once __DIR__.'/../../core.php';
</div>
</div>
<?php
<?php
$conti3 = []; // contenitore conti di terzo livello
$idmastrino = $records[0]['idmastrino'];
$conti3 = []; // contenitore conti di terzo livello
$idmastrino = $records[0]['idmastrino'];
// Salvo l'elenco conti in un array (per non fare il ciclo ad ogni riga)
$query2 = 'SELECT * FROM co_pianodeiconti2';
$conti2 = $dbo->fetchArray($query2);
for ($x = 0; $x < sizeof($conti2); ++$x) {
$query3 = 'SELECT * FROM co_pianodeiconti3 WHERE idpianodeiconti2='.prepare($conti2[$x]['id']);
$rs3 = $dbo->fetchArray($query3);
for ($y = 0; $y < sizeof($rs3); ++$y) {
// Creo un array con le descrizioni dei conti di livello 3 che ha come indice l'id del livello2 e del livello3
$conti3[$rs3[$y]['idpianodeiconti2']][$y]['id'] = $rs3[$y]['id'];
$conti3[$rs3[$y]['idpianodeiconti2']][$y]['descrizione'] = $conti2[$x]['numero'].'.'.$rs3[$y]['numero'].' '.$rs3[$y]['descrizione'];
}
// Salvo l'elenco conti in un array (per non fare il ciclo ad ogni riga)
$query2 = 'SELECT * FROM co_pianodeiconti2';
$conti2 = $dbo->fetchArray($query2);
for ($x = 0; $x < sizeof($conti2); ++$x) {
$query3 = 'SELECT * FROM co_pianodeiconti3 WHERE idpianodeiconti2='.prepare($conti2[$x]['id']);
$rs3 = $dbo->fetchArray($query3);
for ($y = 0; $y < sizeof($rs3); ++$y) {
// Creo un array con le descrizioni dei conti di livello 3 che ha come indice l'id del livello2 e del livello3
$conti3[$rs3[$y]['idpianodeiconti2']][$y]['id'] = $rs3[$y]['id'];
$conti3[$rs3[$y]['idpianodeiconti2']][$y]['descrizione'] = $conti2[$x]['numero'].'.'.$rs3[$y]['numero'].' '.$rs3[$y]['descrizione'];
}
}
/*
Form di modifica riga movimento
*/
// Lettura movimenti del mastrino selezionato
$query = 'SELECT * FROM co_movimenti_modelli WHERE idmastrino='.prepare($records[0]['idmastrino']);
$rs = $dbo->fetchArray($query);
$n = sizeof($rs);
echo '
/*
Form di modifica riga movimento
*/
echo '
<table class="table table-striped table-condensed table-hover table-bordered"
<tr>
<th>'.tr('Conto').'</th>
</tr>';
for ($i = 0; $i < 10; ++$i) {
($i<=1) ? $required = 1 : $required = 0;
// Conto
echo '
// Lettura movimenti del mastrino selezionato
$rs = $dbo->fetchArray('SELECT * FROM co_movimenti_modelli WHERE idmastrino='.prepare($records[0]['idmastrino']));
for ($i = 0; $i < 10; ++$i) {
$required = ($i <= 1) ? 1 : 0;
// Conto
echo '
<tr>
<td>
{[ "type": "select", "name": "idconto['.$i.']", "value": "'.$rs[$i]['idconto'].'", "ajax-source": "conti", "required": "'.$required.'" ]}
</td>';
echo '
</td>
</tr>';
}
}
// Totale per controllare sbilancio
// Verifica sbilancio
echo '
echo '
</table>';
?>
?>
<script type="text/javascript">
@ -86,7 +77,7 @@ include_once __DIR__.'/../../core.php';
});
});
</script>
</form>
<a class="btn btn-danger ask" data-backto="record-list" data-idmastrino="<?php echo $records[0]['idmastrino']; ?>">

View File

@ -2,15 +2,17 @@
include_once __DIR__.'/../../core.php';
if (get('source') == 'Attività') {
$source = get('source');
$idanagrafica = null;
if ($source == 'Attività') {
$idanagrafica = $_SESSION['superselect']['idanagrafica'];
$source = get('source');
}
?><form action="" method="post" id="add-form">
<input type="hidden" name="op" value="add">
<input type="hidden" name="backto" value="record-edit">
<input type="hidden" name="source" value="<?=$source?>">
<input type="hidden" name="source" value="<?php echo $source; ?>">
<div class="row">
<div class="col-md-4">
@ -22,7 +24,7 @@ if (get('source') == 'Attività') {
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione 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 descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "<?=$idanagrafica?>", "ajax-source": "clienti" ]}
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione 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 descrizione='Cliente' AND deleted=0 ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti" ]}
</div>
<div class="col-md-6">

View File

@ -79,7 +79,7 @@ switch (filter('op')) {
}
// Componenti non ancora collegati
if ($id_list == '') {
if (empty($id_list)) {
$id_list = '0';
}

View File

@ -27,7 +27,7 @@ if ($module['name'] == 'Ordini cliente') {
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "required": 1, "value": "", "value": "<?php echo $idanagrafica; ?>", "ajax-source": "<?php echo $ajax; ?>" ]}
{[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "required": 1, "value": "", "value": "<?php echo $user['idanagrafica']; ?>", "ajax-source": "<?php echo $ajax; ?>" ]}
</div>
</div>

View File

@ -6,10 +6,10 @@ switch ($resource) {
case 'conti':
$query = 'SELECT co_pianodeiconti2.* FROM co_pianodeiconti2 LEFT JOIN co_pianodeiconti3 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id |where| GROUP BY co_pianodeiconti2.id';
if($search!=''){
$wh = "WHERE (co_pianodeiconti3.descrizione LIKE ".prepare('%'.$search.'%')." OR CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero ) LIKE ".prepare("%".$search."%").")";
}else{
$wh = "";
if ($search != '') {
$wh = 'WHERE (co_pianodeiconti3.descrizione LIKE '.prepare('%'.$search.'%')." OR CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero ) LIKE ".prepare('%'.$search.'%').')';
} else {
$wh = '';
}
$query = str_replace('|where|', $wh, $query);
@ -24,7 +24,7 @@ switch ($resource) {
$search_fields = [];
foreach ($elements as $element) {
$filter[] = 'id='.prepare($element);
$filter[] = 'co_pianodeiconti3.id='.prepare($element);
}
if (!empty($filter)) {
$where[] = '('.implode(' OR ', $filter).')';
@ -33,7 +33,7 @@ switch ($resource) {
$where[] = 'idpianodeiconti2='.prepare($r['id']);
if (!empty($search)) {
$search_fields[] = "(co_pianodeiconti3.descrizione LIKE ".prepare('%'.$search.'%')." OR CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero ) LIKE ".prepare("%".$search."%").")";
$search_fields[] = '(co_pianodeiconti3.descrizione LIKE '.prepare('%'.$search.'%')." OR CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero ) LIKE ".prepare('%'.$search.'%').')';
}
if (!empty($search_fields)) {
$where[] = '('.implode(' OR ', $search_fields).')';
@ -47,7 +47,7 @@ switch ($resource) {
$rs2 = $dbo->fetchArray($subquery);
foreach ($rs2 as $r2) {
$results[count($results) - 1]['children'][] = ['id' => $r2['id'], 'text' => $r['numero'].".".$r2['numero']." ".$r2['descrizione']];
$results[count($results) - 1]['children'][] = ['id' => $r2['id'], 'text' => $r['numero'].'.'.$r2['numero'].' '.$r2['descrizione']];
}
}

View File

@ -11,14 +11,15 @@ include_once __DIR__.'/../../core.php';
{[ "type": "text", "label": "<?php echo tr('Nome preventivo'); ?>", "name": "nome", "required": 1, "value": "" ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale 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 (descrizione='Cliente') AND deleted=0 ORDER BY ragione_sociale", "value": "", "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Cliente" ]}
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale 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 (descrizione='Cliente') AND deleted=0 ORDER BY ragione_sociale", "value": "", "value": "<?php echo $user['idanagrafica']; ?>", "ajax-source": "clienti", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Cliente" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Tipo di Attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "<?php echo $idtipointervento; ?>" ]}
{[ "type": "select", "label": "<?php echo tr('Tipo di Attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento" ]}
</div>
</div>

View File

@ -104,7 +104,7 @@ function get_imponibile_preventivo($idpreventivo)
$query = 'SELECT SUM(co_righe_preventivi.subtotale - co_righe_preventivi.sconto) AS imponibile FROM co_righe_preventivi GROUP BY idpreventivo HAVING idpreventivo='.prepare($idpreventivo);
$rs = $dbo->fetchArray($query);
return $rs[0]['imponibile'];
return isset($rs[0]['imponibile']) ? $rs[0]['imponibile'] : 0;
}
/**

View File

@ -299,10 +299,8 @@ echo '
'.Prints::getLink('Consuntivo preventivo', $id_record, 'btn-primary', tr('Stampa consuntivo')).'
</div>';
/*
Aggiunta interventi se il preventivo é aperto o in attesa o pagato (non si possono inserire interventi collegati ad altri preventivi)
*/
if ($stato == 'Accettato' || $stato == 'In lavorazione' || $stato = 'Pagato') {
// Aggiunta interventi se il preventivo é aperto o in attesa o pagato (non si possono inserire interventi collegati ad altri preventivi)
if (in_array($records[0]['stato'], ['Accettato', 'In lavorazione', 'Pagato'])) {
echo '
<form action="" method="post">
<input type="hidden" name="op" value="addintervento">

View File

@ -24,87 +24,86 @@ echo '
<tbody class="sortable">';
// se ho almeno un articolo caricato mostro la riga
if (!empty($rs)) {
foreach ($rs as $r) {
echo '
foreach ($rs as $r) {
echo '
<tr data-id="'.$r['id'].'">
<td>';
if (!empty($r['idarticolo'])) {
echo Modules::link('Articoli', $r['idarticolo'], $r['codice'].' - '.$r['descrizione']);
} else {
echo nl2br($r['descrizione']);
}
if (!empty($r['idarticolo'])) {
echo Modules::link('Articoli', $r['idarticolo'], $r['codice'].' - '.$r['descrizione']);
} else {
echo nl2br($r['descrizione']);
}
echo '
echo '
</td>';
// q.tà
echo '
// q.tà
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['qta'] - $r['qta_evasa']);
}
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['qta']);
}
echo '
</td>';
// um
echo '
// um
echo '
<td class="text-center">';
if (empty($r['is_descrizione'])) {
echo '
'.$r['um'];
}
if (empty($r['is_descrizione'])) {
echo '
'.$r['um'];
}
echo '
</td>';
// costo unitario
echo '
// costo unitario
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['subtotale'] / $r['qta']).' &euro;';
if ($r['sconto_unitario'] > 0) {
echo '
if ($r['sconto_unitario'] > 0) {
echo '
<br><small class="label label-danger">'.tr('sconto _TOT_ _TYPE_', [
'_TOT_' => Translator::numberToLocale($r['sconto_unitario']),
'_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '&euro;'),
]).'</small>';
}
}
}
echo '
echo '
</td>';
// iva
echo '
// iva
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['iva']).' &euro;
<br><small class="help-block">'.$r['desc_iva'].'</small>';
}
echo'
}
echo'
</td>';
// Imponibile
echo '
// Imponibile
echo '
<td class="text-right">';
if (empty($r['is_descrizione'])) {
echo '
if (empty($r['is_descrizione'])) {
echo '
'.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' &euro;';
}
echo'
}
echo'
</td>';
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
echo '
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
echo '
<td class="text-center">';
if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) {
echo "
if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) {
echo "
<form action='".$rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record."' method='post' id='delete-form-".$r['id']."' role='form'>
<input type='hidden' name='backto' value='record-edit'>
<input type='hidden' name='op' value='unlink_articolo'>
@ -117,18 +116,17 @@ if (!empty($rs)) {
<a href='javascript:;' class='btn btn-xs btn-danger' title='Rimuovi questa riga' onclick=\"if( confirm('Rimuovere questa riga dal preventivo?') ){ $('#delete-form-".$r['id']."').submit(); }\"><i class='fa fa-trash'></i></a>
</div>
</form>";
}
}
if (empty($r['sconto_globale'])) {
echo '
if (empty($r['sconto_globale'])) {
echo '
<div class="handle clickable" style="padding:10px">
<i class="fa fa-sort"></i>
</div>';
}
echo '
}
echo '
</td>
</tr>';
}
}
// Calcoli

View File

@ -20,12 +20,12 @@ include_once __DIR__.'/../../core.php';
$dir = $rs[0]['dir'];
$numero_doc = !empty($rs[0]['numero_esterno']) ? $rs[0]['numero_esterno'] : $rs[0]['numero'];
$tipo_doc = $rs[0]['tdescrizione'];
$nota_accredito = false;
if( $tipo_doc == 'Nota di accredito' ){
$nota_accredito = true;
}
$nota_accredito = false;
if ($tipo_doc == 'Nota di accredito') {
$nota_accredito = true;
}
$descrizione = tr('_DOC_ numero _NUM_ del _DATE_ (_NAME_)', [
'_DOC_' => $tipo_doc,
@ -187,13 +187,13 @@ include_once __DIR__.'/../../core.php';
$value_dare = '';
$value_avere = '';
}
// Se è una nota di accredito, inverto i valori
if( $nota_accredito ){
$tmp = $value_dare;
$value_dare = $value_avere;
$value_avere= $tmp;
}
// Se è una nota di accredito, inverto i valori
if ($nota_accredito) {
$tmp = $value_dare;
$value_dare = $value_avere;
$value_avere = $tmp;
}
// Dare
echo '

View File

@ -45,13 +45,13 @@ $month = intval($d1->format('m')) - 1;
for ($i = 0; $i < $count; ++$i) {
$month = $month % 12;
if (intval($fatturato[$i]['month']) != $month + 1) {
if (!isset($fatturato[$i]) || intval($fatturato[$i]['month']) != $month + 1) {
array_splice($fatturato, $i, 0, [[
'totale' => 0,
]]);
}
if (intval($acquisti[$i]['month']) != $month + 1) {
if (!isset($acquisti[$i]) || intval($acquisti[$i]['month']) != $month + 1) {
array_splice($acquisti, $i, 0, [[
'totale' => 0,
]]);
@ -215,7 +215,7 @@ foreach ($tipi as $tipo) {
for ($i = 0; $i < $count; ++$i) {
$month = $month % 12;
if (intval($interventi[$i]['month']) != $month + 1) {
if (!isset($interventi[$i]) || intval($interventi[$i]['month']) != $month + 1) {
array_splice($interventi, $i, 0, [[
'totale' => 0,
]]);

View File

@ -4,8 +4,8 @@ include_once __DIR__.'/../../core.php';
$records = $dbo->fetchArray('SELECT in_tariffe.id AS idtariffa, in_tipiintervento.idtipointervento, idtecnico, ragione_sociale, descrizione, in_tariffe.costo_ore, in_tariffe.costo_km, in_tariffe.costo_dirittochiamata, in_tariffe.costo_ore_tecnico, in_tariffe.costo_km_tecnico, in_tariffe.costo_dirittochiamata_tecnico FROM ((in_tariffe INNER JOIN an_anagrafiche ON in_tariffe.idtecnico=an_anagrafiche.idanagrafica) LEFT OUTER JOIN in_tipiintervento ON in_tariffe.idtipointervento=in_tipiintervento.idtipointervento) WHERE in_tariffe.id='.prepare($id_record));
//Se non ci sono record nelle tariffe leggo i dati del tecnico singolarmente e creo l'associazione tecnico-tariffe nel primo submit
if ($records[0]['idtariffa'] != $id_record) {
// Se non ci sono record nelle tariffe leggo i dati del tecnico singolarmente e creo l'associazione tecnico-tariffe nel primo submit
if (isset($records[0]) && $records[0]['idtariffa'] != $id_record) {
$v = explode('|', $id_record);
$idanagrafica = $v[0];

View File

@ -43,8 +43,10 @@ class App
*/
public static function getCurrentModule()
{
if (empty(self::$current_module)) {
self::$current_module = Modules::get(filter('id_module'));
$id = filter('id_module');
if (empty(self::$current_module) && !empty($id)) {
self::$current_module = Modules::get($id);
}
return self::$current_module;

View File

@ -74,8 +74,8 @@ class FileManager implements ManagerInterface
<i class="fa fa-download"></i>
</a>';
//Anteprime supportate dal browser
$extension = strtolower(end((explode('.', $r['original']))));
// Anteprime supportate dal browser
$extension = pathinfo($r['original'])['extension'];
$supported_extensions = ['pdf', 'jpg', 'png', 'gif', 'jpeg', 'bmp'];
if (in_array($extension, $supported_extensions)) {
$result .= "<div class='hide' id='view-".$r['id']."' >";

View File

@ -80,6 +80,7 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
$results = $database->fetchArray('SELECT * FROM zz_emails WHERE deleted = 0');
$templates = [];
$references = [];
// Inizializzazione dei riferimenti
foreach (Modules::getModules() as $module) {
@ -109,11 +110,13 @@ class Mail extends PHPMailer\PHPMailer\PHPMailer
*/
public static function getTemplate($template)
{
$templates = self::getTemplates();
if (!is_numeric($template) && !empty(self::$references[$template])) {
$template = self::$references[$template];
}
return self::getTemplates()[$template];
return $templates[$template];
}
/**

View File

@ -44,26 +44,26 @@ class Modules
$results = $database->fetchArray('SELECT * FROM `zz_modules` LEFT JOIN (SELECT `idmodule`, `permessi` FROM `zz_permissions` WHERE `idgruppo` = (SELECT `idgruppo` FROM `zz_users` WHERE `id` = '.prepare($user['id_utente']).')) AS `zz_permissions` ON `zz_modules`.`id`=`zz_permissions`.`idmodule`');
$modules = [];
$references = [];
foreach ($results as $result) {
$result['options'] = App::replacePlaceholder($result['options']);
$result['options2'] = App::replacePlaceholder($result['options2']);
$result['option'] = empty($result['options2']) ? $result['options'] : $result['options2'];
if (empty($modules[$result['id']])) {
if (empty($result['permessi'])) {
if (Auth::admin()) {
$result['permessi'] = 'rw';
} else {
$result['permessi'] = '-';
}
if (empty($result['permessi'])) {
if (Auth::admin()) {
$result['permessi'] = 'rw';
} else {
$result['permessi'] = '-';
}
unset($result['idmodule']);
$modules[$result['id']] = $result;
$references[$result['name']] = $result['id'];
}
unset($result['idmodule']);
$modules[$result['id']] = $result;
$references[$result['name']] = $result['id'];
}
self::$modules = $modules;
@ -101,11 +101,13 @@ class Modules
*/
public static function get($module)
{
$modules = self::getModules();
if (!is_numeric($module) && !empty(self::$references[$module])) {
$module = self::$references[$module];
}
return self::getModules()[$module];
return $modules[$module];
}
/**