From 5f5e836652dd39f72dc8ad95eac17db70a658d86 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Sat, 23 Jun 2018 18:35:08 +0200 Subject: [PATCH] Bugfix e rimozione warnings --- ajax_dataload.php | 2 +- include/common/articolo.php | 2 + include/common/form.php | 2 + modules/articoli/ajax/select.php | 5 +- modules/articoli/edit.php | 4 +- modules/contratti/add.php | 2 +- modules/contratti/edit.php | 2 +- modules/contratti/plugins/add_righe.php | 25 +- .../contratti.fatturaordiniservizio.php | 10 +- .../plugins/contratti.ordiniservizio.php | 4 +- .../contratti.pianificazioneinterventi.php | 258 ++++++++---------- modules/contratti/row-list.php | 134 +++++---- modules/interventi/add.php | 97 ++++--- modules/modelli_primanota/actions.php | 1 - modules/modelli_primanota/add.php | 38 +-- modules/modelli_primanota/edit.php | 69 ++--- modules/my_impianti/add.php | 10 +- .../plugins/my_impianti.componenti.php | 2 +- modules/ordini/add.php | 2 +- modules/partitario/ajax/select.php | 14 +- modules/preventivi/add.php | 5 +- modules/preventivi/modutil.php | 2 +- .../plugins/preventivi.consuntivo.php | 6 +- modules/preventivi/row-list.php | 100 ++++--- modules/primanota/add.php | 26 +- modules/statistiche/edit.php | 6 +- modules/tecnici_tariffe/init.php | 4 +- src/App.php | 6 +- src/HTMLBuilder/Manager/FileManager.php | 4 +- src/Mail.php | 5 +- src/Modules.php | 28 +- 31 files changed, 412 insertions(+), 463 deletions(-) diff --git a/ajax_dataload.php b/ajax_dataload.php index 5faf8d93d..13e5570eb 100644 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -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]; diff --git a/include/common/articolo.php b/include/common/articolo.php index 990a6159e..b83b69159 100644 --- a/include/common/articolo.php +++ b/include/common/articolo.php @@ -1,5 +1,7 @@ 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' => []]; diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index 2ffd644ae..6b5655fdd 100644 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -41,7 +41,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
{[ "type": "number", "label": "", "name": "qta", "required": 1, "value": "$qta$", "readonly": 1, "decimals": "qta", "min-value": "undefined" ]} - +
{[ "type": "checkbox", "label": "", "name": "qta_manuale", "value": 0, "help": "", "placeholder": "", "extra": "" ]} @@ -93,7 +93,7 @@ $_SESSION['superselect']['id_categoria'] = $records[0]['id_categoria'];
- + diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index 8f16b9220..e903bf8d0 100644 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -33,7 +33,7 @@ $_SESSION['superselect']['idanagrafica'] = $records[0]['idanagrafica'];
- {[ "type": "select", "label": "", "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": "" ]} + {[ "type": "select", "label": "", "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" ]}
diff --git a/modules/contratti/plugins/add_righe.php b/modules/contratti/plugins/add_righe.php index 4f3ff3820..ad072170b 100644 --- a/modules/contratti/plugins/add_righe.php +++ b/modules/contratti/plugins/add_righe.php @@ -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 = ' '.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 -
+ */ echo ' - - + + '; - // Descrizione echo ' @@ -86,7 +79,7 @@ echo '
{[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
'; - + // Iva echo '
@@ -136,8 +129,6 @@ echo ' // Ricarico le righe $('#righe').load(globals.rootdir + '/modules/contratti/plugins/ajax_righe.php?id_module=&id_record=&idcontratto_riga='); - - } }); }); diff --git a/modules/contratti/plugins/contratti.fatturaordiniservizio.php b/modules/contratti/plugins/contratti.fatturaordiniservizio.php index f5bd3d9d6..27a1c7fc6 100644 --- a/modules/contratti/plugins/contratti.fatturaordiniservizio.php +++ b/modules/contratti/plugins/contratti.fatturaordiniservizio.php @@ -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(); diff --git a/modules/contratti/plugins/contratti.ordiniservizio.php b/modules/contratti/plugins/contratti.ordiniservizio.php index c6f3cb002..a6c8eb4c6 100644 --- a/modules/contratti/plugins/contratti.ordiniservizio.php +++ b/modules/contratti/plugins/contratti.ordiniservizio.php @@ -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'"); diff --git a/modules/contratti/plugins/contratti.pianificazioneinterventi.php b/modules/contratti/plugins/contratti.pianificazioneinterventi.php index 59e99823c..830673378 100644 --- a/modules/contratti/plugins/contratti.pianificazioneinterventi.php +++ b/modules/contratti/plugins/contratti.pianificazioneinterventi.php @@ -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 $rsp3[$a]['nome'], - '_MATRICOLA_' => $rsp3[$a]['matricola'], - ])).'
'; - } - } - } - - - $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 ((!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'], - ]).'
'; - } - } - + + //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'], + ])).'
'; + } + } + } + + $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'], + ]).'
'; + } + } + echo ' '.Translator::dateToLocale($rsp[$i]['data_richiesta']).' @@ -339,8 +324,8 @@ if (count($rsp) != 0) { '.$info_intervento.' '.$info_sede.' '.$info_impianti.' - '.$info_materiali.' - '.$info_allegati.' + '.$info_materiali.' + '.$info_allegati.' '; echo ' @@ -362,20 +347,18 @@ if (count($rsp) != 0) { '; - echo '
'; - + echo '
'; + if (count($rsp) > 0) { - echo ' '; } - - echo '
'; - + + echo '
'; } - - echo ' '; @@ -425,43 +408,40 @@ echo '
'; - ?> diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index dd9670b74..72fcac199 100644 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -22,87 +22,85 @@ echo ' '; -// se ho almeno un articolo caricato mostro la riga -if (!empty($rs)) { - foreach ($rs as $r) { - // descrizione - echo ' +foreach ($rs as $r) { + // Descrizione + echo ' '; - 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 ' '; - // q.tà - echo ' + // Q.tà + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' + if (empty($r['is_descrizione'])) { + echo ' '.Translator::numberToLocale($r['qta']); - } - echo ' + } + echo ' '; - // um - echo ' + // um + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' - '.$r['um']; - } + if (empty($r['is_descrizione'])) { echo ' + '.$r['um']; + } + echo ' '; - // costo unitario - echo ' + // Costo unitario + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' + if (empty($r['is_descrizione'])) { + echo ' '.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €'; - if ($r['sconto_unitario'] > 0) { - echo ' + if ($r['sconto_unitario'] > 0) { + echo '
'.tr('sconto _TOT_ _TYPE_', [ '_TOT_' => Translator::numberToLocale($r['sconto_unitario']), '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'), ]).''; - } } - echo' + } + echo' '; - // iva - echo ' + // IVA + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' + if (empty($r['is_descrizione'])) { + echo ' '.Translator::numberToLocale($r['iva'])." €
".$r['desc_iva'].''; - } - echo ' + } + echo ' '; - // Imponibile - echo ' + // Imponibile + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' - '.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €'; - } + if (empty($r['is_descrizione'])) { echo ' + '.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €'; + } + echo ' '; - // 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 ' '; - if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) { - echo ' + if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) { + echo ' @@ -112,43 +110,39 @@ if (!empty($rs)) {
'; - echo " + echo " "; - echo ' + echo '
'; - } + } - if (empty($r['sconto_globale'])) { - echo ' + if (empty($r['sconto_globale'])) { + echo '
'; - } + } - echo ' + echo ' '; - - - // 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 ' '; diff --git a/modules/interventi/add.php b/modules/interventi/add.php index ee62adb4b..83ef0e84a 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -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)) {
- + @@ -148,7 +153,7 @@ if (empty($new_codice)) {
- {[ "type": "select", "label": "", "name": "idpreventivo", "value": "", "placeholder": "...", "ajax-source": "preventivi" ]} + {[ "type": "select", "label": "", "name": "idpreventivo", "placeholder": "...", "ajax-source": "preventivi" ]}
@@ -162,7 +167,7 @@ if (empty($new_codice)) {
- {[ "type": "select", "label": "", "multiple": 1, "name": "componenti[]", "value": "", "placeholder": "...", "ajax-source": "componenti" ]} + {[ "type": "select", "label": "", "multiple": 1, "name": "componenti[]", "placeholder": "...", "ajax-source": "componenti" ]}
@@ -186,11 +191,11 @@ if (empty($new_codice)) {
- {[ "type": "date", "label": "", "name": "data", "required": , "value": "" ]} + {[ "type": "date", "label": "", "name": "data", "required": , "value": "" ]}
- {[ "type": "select", "label": "", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "", "placeholder": "", "help":".", "extra": "readonly" ]} + {[ "type": "select", "label": "", "name": "idzona", "values": "query=SELECT id, CONCAT_WS( ' - ', nome, descrizione) AS descrizione FROM an_zone ORDER BY nome", "value": "", "placeholder": "", "help":".", "extra": "readonly" ]}
@@ -205,18 +210,18 @@ if (empty($new_codice)) {
- {[ "type": "time", "label": "", "name": "orario_inizio", "required": , "value": "" ]} + {[ "type": "time", "label": "", "name": "orario_inizio", "required": , "value": "" ]}
- {[ "type": "time", "label": "", "name": "orario_fine", "required": , "value": "" ]} + {[ "type": "time", "label": "", "name": "orario_fine", "required": , "value": "" ]}
- {[ "type": "select", "label": "", "multiple": "1", "name": "idtecnico[]", "required": , "ajax-source": "tecnici", "value": "" ]} + {[ "type": "select", "label": "", "multiple": "1", "name": "idtecnico[]", "required": , "ajax-source": "tecnici", "value": "" ]}
@@ -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) && ('' == '')){ - //data = moment('').format('YYYY-MM-DD HH:mm - data = moment( moment().format('YYYY-MM-DD') + '').format('YYYY-MM-DD HH:mm'); + + if ( (($(this).selectData().tempo_standard)>0) && ('' == '')){ + // data = moment('').format('YYYY-MM-DD HH:mm + data = moment( moment().format('YYYY-MM-DD') + '').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(){ - + var value = ($(this).val()>0) ? true : false; $('#orario_inizio').prop("required", value); $('#orario_fine').prop("required", value); $('#data').prop("required", value); - - }); - - var ref = ""; + + }); + + var ref = ""; function add_intervento(){ // Se l'aggiunta intervento proviene dal calendario, faccio il submit via ajax e ricarico gli eventi... diff --git a/modules/modelli_primanota/actions.php b/modules/modelli_primanota/actions.php index 00e210a21..4cdd49212 100644 --- a/modules/modelli_primanota/actions.php +++ b/modules/modelli_primanota/actions.php @@ -32,7 +32,6 @@ switch (post('op')) { if ($dbo->query($query)) { $id_record = $dbo->lastInsertedID(); } - } break; diff --git a/modules/modelli_primanota/add.php b/modules/modelli_primanota/add.php index 11eafe5ac..de1e220c4 100644 --- a/modules/modelli_primanota/add.php +++ b/modules/modelli_primanota/add.php @@ -2,13 +2,13 @@ include_once __DIR__.'/../../core.php'; -?> +?>
- {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "" ]} + {[ "type": "text", "label": "", "name": "descrizione", "required": 1 ]}
@@ -27,22 +27,14 @@ include_once __DIR__.'/../../core.php'; '; for ($i = 0; $i < 10; ++$i) { - - ($i<=1) ? $required = 1 : $required = 0; - // Conto + $required = ($i <= 1) ? 1 : 0; + + // Conto echo ' - {[ "type": "select", "name": "idconto['.$i.']", "value": "'; - if ($i == 0) { - echo $idconto_controparte; - } elseif ($i == 1) { - echo $idconto_aziendale; - } - echo '", "ajax-source": "conti", "required": "'.$required.'" ]} - '; - - echo ' + {[ "type": "select", "name": "idconto['.$i.']", "ajax-source": "conti", "required": "'.$required.'" ]} + '; } @@ -56,21 +48,5 @@ include_once __DIR__.'/../../core.php';
- -
diff --git a/modules/modelli_primanota/edit.php b/modules/modelli_primanota/edit.php index e268b96df..d266c94bd 100644 --- a/modules/modelli_primanota/edit.php +++ b/modules/modelli_primanota/edit.php @@ -16,59 +16,50 @@ include_once __DIR__.'/../../core.php'; +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 ' '; - 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 ' '; - - echo ' + '; - } +} - // Totale per controllare sbilancio - - // Verifica sbilancio - echo ' +echo '
'.tr('Conto').'
{[ "type": "select", "name": "idconto['.$i.']", "value": "'.$rs[$i]['idconto'].'", "ajax-source": "conti", "required": "'.$required.'" ]} -
'; - ?> +?> - + diff --git a/modules/my_impianti/add.php b/modules/my_impianti/add.php index 90471f24a..0de4cb150 100644 --- a/modules/my_impianti/add.php +++ b/modules/my_impianti/add.php @@ -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'); } ?>
- +
@@ -22,7 +24,7 @@ if (get('source') == 'Attività') {
- {[ "type": "select", "label": "", "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": "", "ajax-source": "clienti" ]} + {[ "type": "select", "label": "", "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": "", "ajax-source": "clienti" ]}
diff --git a/modules/my_impianti/plugins/my_impianti.componenti.php b/modules/my_impianti/plugins/my_impianti.componenti.php index 572628e51..c4cf39a0b 100644 --- a/modules/my_impianti/plugins/my_impianti.componenti.php +++ b/modules/my_impianti/plugins/my_impianti.componenti.php @@ -79,7 +79,7 @@ switch (filter('op')) { } // Componenti non ancora collegati -if ($id_list == '') { +if (empty($id_list)) { $id_list = '0'; } diff --git a/modules/ordini/add.php b/modules/ordini/add.php index b00348008..ba68331ce 100644 --- a/modules/ordini/add.php +++ b/modules/ordini/add.php @@ -27,7 +27,7 @@ if ($module['name'] == 'Ordini cliente') {
- {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "value": "", "ajax-source": "" ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "", "value": "", "ajax-source": "" ]}
diff --git a/modules/partitario/ajax/select.php b/modules/partitario/ajax/select.php index 93ddc1d79..96bfe3a74 100644 --- a/modules/partitario/ajax/select.php +++ b/modules/partitario/ajax/select.php @@ -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']]; } } diff --git a/modules/preventivi/add.php b/modules/preventivi/add.php index bb89bea32..d165f6c07 100644 --- a/modules/preventivi/add.php +++ b/modules/preventivi/add.php @@ -11,14 +11,15 @@ include_once __DIR__.'/../../core.php'; {[ "type": "text", "label": "", "name": "nome", "required": 1, "value": "" ]}
- {[ "type": "select", "label": "", "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": "", "ajax-source": "clienti", "icon-after": "add||tipoanagrafica=Cliente" ]} + {[ "type": "select", "label": "", "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": "", "ajax-source": "clienti", "icon-after": "add||tipoanagrafica=Cliente" ]}
+
- {[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "" ]} + {[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento" ]}
diff --git a/modules/preventivi/modutil.php b/modules/preventivi/modutil.php index f10f89ca6..09b558e22 100644 --- a/modules/preventivi/modutil.php +++ b/modules/preventivi/modutil.php @@ -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; } /** diff --git a/modules/preventivi/plugins/preventivi.consuntivo.php b/modules/preventivi/plugins/preventivi.consuntivo.php index 9559fc7e8..74d7cb952 100644 --- a/modules/preventivi/plugins/preventivi.consuntivo.php +++ b/modules/preventivi/plugins/preventivi.consuntivo.php @@ -299,10 +299,8 @@ echo ' '.Prints::getLink('Consuntivo preventivo', $id_record, 'btn-primary', tr('Stampa consuntivo')).' '; -/* - 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 ' diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index 23e955e56..15a21b0c5 100644 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -24,87 +24,86 @@ echo ' '; // se ho almeno un articolo caricato mostro la riga -if (!empty($rs)) { - foreach ($rs as $r) { - echo ' +foreach ($rs as $r) { + echo ' '; - 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 ' '; - // q.tà - echo ' + // q.tà + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' - '.Translator::numberToLocale($r['qta'] - $r['qta_evasa']); - } + if (empty($r['is_descrizione'])) { echo ' + '.Translator::numberToLocale($r['qta']); + } + echo ' '; - // um - echo ' + // um + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' - '.$r['um']; - } + if (empty($r['is_descrizione'])) { echo ' + '.$r['um']; + } + echo ' '; - // costo unitario - echo ' + // costo unitario + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' + if (empty($r['is_descrizione'])) { + echo ' '.Translator::numberToLocale($r['subtotale'] / $r['qta']).' €'; - if ($r['sconto_unitario'] > 0) { - echo ' + if ($r['sconto_unitario'] > 0) { + echo '
'.tr('sconto _TOT_ _TYPE_', [ '_TOT_' => Translator::numberToLocale($r['sconto_unitario']), '_TYPE_' => ($r['tipo_sconto'] == 'PRC' ? '%' : '€'), ]).''; - } } + } - echo ' + echo ' '; - // iva - echo ' + // iva + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' + if (empty($r['is_descrizione'])) { + echo ' '.Translator::numberToLocale($r['iva']).' €
'.$r['desc_iva'].''; - } - echo' + } + echo' '; - // Imponibile - echo ' + // Imponibile + echo ' '; - if (empty($r['is_descrizione'])) { - echo ' + if (empty($r['is_descrizione'])) { + echo ' '.Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €'; - } - echo' + } + echo' '; - // 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 ' '; - if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) { - echo " + if ($records[0]['stato'] != 'Pagato' && empty($r['sconto_globale'])) { + echo " @@ -117,18 +116,17 @@ if (!empty($rs)) {
"; - } + } - if (empty($r['sconto_globale'])) { - echo ' + if (empty($r['sconto_globale'])) { + echo '
'; - } - echo ' + } + echo ' '; - } } // Calcoli diff --git a/modules/primanota/add.php b/modules/primanota/add.php index 38ce767c1..7e01afe1a 100644 --- a/modules/primanota/add.php +++ b/modules/primanota/add.php @@ -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 ' diff --git a/modules/statistiche/edit.php b/modules/statistiche/edit.php index bb2782dbd..a7d459229 100644 --- a/modules/statistiche/edit.php +++ b/modules/statistiche/edit.php @@ -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, ]]); diff --git a/modules/tecnici_tariffe/init.php b/modules/tecnici_tariffe/init.php index 5160ab2e0..16644c06a 100644 --- a/modules/tecnici_tariffe/init.php +++ b/modules/tecnici_tariffe/init.php @@ -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]; diff --git a/src/App.php b/src/App.php index ae3f8a2a8..73a0de367 100644 --- a/src/App.php +++ b/src/App.php @@ -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; diff --git a/src/HTMLBuilder/Manager/FileManager.php b/src/HTMLBuilder/Manager/FileManager.php index 3a649d13e..c34987984 100644 --- a/src/HTMLBuilder/Manager/FileManager.php +++ b/src/HTMLBuilder/Manager/FileManager.php @@ -74,8 +74,8 @@ class FileManager implements ManagerInterface '; - //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 .= "
"; diff --git a/src/Mail.php b/src/Mail.php index 3c121210f..9e0b3d1af 100644 --- a/src/Mail.php +++ b/src/Mail.php @@ -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]; } /** diff --git a/src/Modules.php b/src/Modules.php index 212d0be52..6934b5a14 100644 --- a/src/Modules.php +++ b/src/Modules.php @@ -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]; } /**