diff --git a/ajax_dataload.php b/ajax_dataload.php index e4e8da30e..0b3077ab6 100644 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -58,19 +58,19 @@ if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom } } - /*filtro sezionali*/ - if (isset($_SESSION['entrata']['idsezionale']) and (($modules_info[$id_module]['name'] == 'Fatture di vendita') or ($modules_info[$id_module]['name'] == 'Laboratorio') or ($modules_info[$id_module]['name'] == 'Ticket'))) { + // Ricerca + if (!empty($search_filters)) { + $result_query = str_replace('2=2', '2=2 AND ('.implode(' AND ', $search_filters).') ', $result_query); + } + + // Filtro sezionali + if (isset($_SESSION['entrata']['idsezionale']) && (($modules_info[$id_module]['name'] == 'Fatture di vendita') || ($modules_info[$id_module]['name'] == 'Laboratorio') || ($modules_info[$id_module]['name'] == 'Ticket'))) { $result_query = str_replace('1=1', " 1=1 AND idsezionale = '".$_SESSION['entrata']['idsezionale']."' ", $result_query); } - if (isset($_SESSION['uscita']['idsezionale']) and ($modules_info[$id_module]['name'] == 'Fatture di acquisto')) { + if (isset($_SESSION['uscita']['idsezionale']) && ($modules_info[$id_module]['name'] == 'Fatture di acquisto')) { $result_query = str_replace('1=1', " 1=1 AND idsezionale = '".$_SESSION['uscita']['idsezionale']."' ", $result_query); } - /*fine filtro sezionali*/ - - if (!empty($search_filters)) { - $result_query = str_replace('2=2', '2=2 AND ('.implode(' AND ', $search_filters).') ', $result_query); - } // Filtri derivanti dai permessi (eventuali) if (empty($id_plugin)) { diff --git a/modules/contratti/plugins/contratti.pianificazioneinterventi.php b/modules/contratti/plugins/contratti.pianificazioneinterventi.php index 03cdef60c..58a3d9fa1 100644 --- a/modules/contratti/plugins/contratti.pianificazioneinterventi.php +++ b/modules/contratti/plugins/contratti.pianificazioneinterventi.php @@ -31,170 +31,128 @@ switch (filter('op')) { redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); break; - - - - //pianificazione - case 'pianificazione': - - $idcontratto_riga = filter('idcontratto_riga'); - $intervallo = filter('intervallo'); - $parti_da_oggi = post('parti_da_oggi'); - - if (!empty($idcontratto_riga) and !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 id = '.$idcontratto_riga; - $rsp = $dbo->fetchArray($qp); - - $idtipointervento = $rsp[0]['idtipointervento']; - $idsede = $rsp[0]['idsede']; - $richiesta = $rsp[0]['richiesta']; - - //mi serve per la pianificazione interventi - $idanagrafica = $rsp[0]['idanagrafica']; - - $data_conclusione = $rsp[0]['data_conclusione']; - $data_richiesta = $rsp[0]['data_richiesta']; - - - //se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria) - if ($parti_da_oggi){ - - //oggi - $min_date = date('Y-m-d'); - - - }else{ - - $min_date = date('Y-m-d', strtotime($data_richiesta)); - - } - - //inizio controllo data_conclusione, data valida e maggiore della $min_date - if ( (date('Y', strtotime($data_conclusione)) > 1970) and (date('Y-m-d', strtotime($min_date)) < date('Y-m-d', strtotime($data_conclusione))) ) { - - //Ciclo partendo dalla data_richiesta fino all data conclusione del contratto - while ( date('Y-m-d', strtotime($data_richiesta)) < date('Y-m-d', strtotime($data_conclusione)) ){ - - //calcolo nuova data richiesta - $data_richiesta = date('Y-m-d', strtotime($data_richiesta. " + ".intval($intervallo)." days") ); - - - //controllo nuova data richiesta --> solo date maggiori o uguali di [oggi o data richiesta iniziale] ma che non superano la data di fine del contratto - if ( (date('Y-m-d', strtotime($data_richiesta)) >= $min_date ) and (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 ){ - - $query = 'INSERT INTO `co_righe_contratti`(`idcontratto`, `idtipointervento`, `data_richiesta`, `richiesta`, `idsede`) VALUES('.prepare($id_record).', '.prepare($idtipointervento).', '.prepare($data_richiesta).', '.prepare($richiesta).', '.prepare($idsede).')'; - - if ($dbo->query($query)) { - - $idriga = $dbo->lastInsertedID(); - - $_SESSION['infos'][] = tr('Promemoria intervento pianificato!'); - - - //pianificare anche l' intervento? - if ($post['pianifica_intervento']){ - - /*$orario_inizio = post('orario_inizio'); - $orario_fine = post('orario_fine');*/ - - //$idanagrafica = 2; - - //intervento sempre nello stato "In programmazione" - $idstatointervento = 'WIP'; - - //calcolo codice intervento - $formato = get_var('Formato codice intervento'); - $template = str_replace('#', '%', $formato); - $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); - $codice = get_next_code($rs[0]['codice'], 1, $formato); + //pianificazione + case 'pianificazione': - if (empty($codice)) { - $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); + $idcontratto_riga = filter('idcontratto_riga'); + $intervallo = filter('intervallo'); + $parti_da_oggi = post('parti_da_oggi'); - $codice = get_next_code($rs[0]['codice'], 1, $formato); - } - - - - // Creo intervento - $dbo->insert('in_interventi', [ - 'idanagrafica' => $idanagrafica, - 'idclientefinale' => post('idclientefinale') ?: 0, - 'idstatointervento' => $idstatointervento, - 'idtipointervento' => $idtipointervento, - 'idsede' => $idsede ?: 0, - 'idautomezzo' => $idautomezzo ?: 0, + 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 id = '.$idcontratto_riga; + $rsp = $dbo->fetchArray($qp); - 'codice' => $codice, - 'data_richiesta' => $data_richiesta, - 'richiesta' => $richiesta, - ]); + $idtipointervento = $rsp[0]['idtipointervento']; + $idsede = $rsp[0]['idsede']; + $richiesta = $rsp[0]['richiesta']; - $idintervento = $dbo->lastInsertedID(); - - - - $idtecnici = post('idtecnico'); - - //aggiungo i tecnici - foreach ($idtecnici as $idtecnico) { - add_tecnico($idintervento, $idtecnico, $data_richiesta.' '.post('orario_inizio'), $data_richiesta.' '.post('orario_fine'), $id_record); - } - - //collego l'intervento ai promemoria - $dbo->query('UPDATE co_righe_contratti SET idintervento='.prepare($idintervento).' WHERE id='.prepare($idriga)); - - // $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.'); - - $_SESSION['infos'][] = tr('Interventi pianificati correttamente.'); - - - } - //fine if pianificazione intervento - - - }else{ - - $_SESSION['errors'][] = tr('Errore durante esecuzione query di pianificazione. #'.$idcontratto_riga); - - } - - }else{ - - $_SESSION['warnings'][] = tr("Esiste già un promemoria pianificato per il ".readDate($data_richiesta)."."); - - - } - - } - //fine controllo nuova data richiesta - - } - //fine ciclo while - - }else{ - - $_SESSION['errors'][] = tr('Nessuna data di conclusione del contratto oppure quest\'ultima è già trascorsa, impossibile pianificare nuovi promemoria.'); - - } - //fine controllo data_conclusione - - - }else{ - - $_SESSION['errors'][] = tr('Errore durante la pianificazione. #'.$idcontratto_riga); - - } - - redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); - break; - - + //mi serve per la pianificazione interventi + $idanagrafica = $rsp[0]['idanagrafica']; + + $data_conclusione = $rsp[0]['data_conclusione']; + $data_richiesta = $rsp[0]['data_richiesta']; + + //se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria) + if ($parti_da_oggi) { + //oggi + $min_date = date('Y-m-d'); + } else { + $min_date = date('Y-m-d', strtotime($data_richiesta)); + } + + //inizio controllo data_conclusione, data valida e maggiore della $min_date + if ((date('Y', strtotime($data_conclusione)) > 1970) && (date('Y-m-d', strtotime($min_date)) < date('Y-m-d', strtotime($data_conclusione)))) { + //Ciclo partendo dalla data_richiesta fino all data conclusione del contratto + while (date('Y-m-d', strtotime($data_richiesta)) < date('Y-m-d', strtotime($data_conclusione))) { + //calcolo nuova data richiesta + $data_richiesta = date('Y-m-d', strtotime($data_richiesta.' + '.intval($intervallo).' days')); + + //controllo nuova data richiesta --> solo date maggiori o uguali di [oggi o data richiesta iniziale] ma che non superano la data di fine del contratto + 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) { + $query = 'INSERT INTO `co_righe_contratti`(`idcontratto`, `idtipointervento`, `data_richiesta`, `richiesta`, `idsede`) VALUES('.prepare($id_record).', '.prepare($idtipointervento).', '.prepare($data_richiesta).', '.prepare($richiesta).', '.prepare($idsede).')'; + + if ($dbo->query($query)) { + $idriga = $dbo->lastInsertedID(); + + $_SESSION['infos'][] = tr('Promemoria intervento pianificato!'); + + //pianificare anche l' intervento? + if ($post['pianifica_intervento']) { + /*$orario_inizio = post('orario_inizio'); + $orario_fine = post('orario_fine');*/ + + //$idanagrafica = 2; + + //intervento sempre nello stato "In programmazione" + $idstatointervento = 'WIP'; + + //calcolo codice intervento + $formato = get_var('Formato codice intervento'); + $template = str_replace('#', '%', $formato); + + $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); + $codice = get_next_code($rs[0]['codice'], 1, $formato); + + if (empty($codice)) { + $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); + + $codice = get_next_code($rs[0]['codice'], 1, $formato); + } + + // Creo intervento + $dbo->insert('in_interventi', [ + 'idanagrafica' => $idanagrafica, + 'idclientefinale' => post('idclientefinale') ?: 0, + 'idstatointervento' => $idstatointervento, + 'idtipointervento' => $idtipointervento, + 'idsede' => $idsede ?: 0, + 'idautomezzo' => $idautomezzo ?: 0, + + 'codice' => $codice, + 'data_richiesta' => $data_richiesta, + 'richiesta' => $richiesta, + ]); + + $idintervento = $dbo->lastInsertedID(); + + $idtecnici = post('idtecnico'); + + //aggiungo i tecnici + foreach ($idtecnici as $idtecnico) { + add_tecnico($idintervento, $idtecnico, $data_richiesta.' '.post('orario_inizio'), $data_richiesta.' '.post('orario_fine'), $id_record); + } + + //collego l'intervento ai promemoria + $dbo->query('UPDATE co_righe_contratti SET idintervento='.prepare($idintervento).' WHERE id='.prepare($idriga)); + + // $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.'); + + $_SESSION['infos'][] = tr('Interventi pianificati correttamente.'); + } + //fine if pianificazione intervento + } else { + $_SESSION['errors'][] = tr('Errore durante esecuzione query di pianificazione. #'.$idcontratto_riga); + } + } else { + $_SESSION['warnings'][] = tr('Esiste già un promemoria pianificato per il '.readDate($data_richiesta).'.'); + } + } + //fine controllo nuova data richiesta + } + //fine ciclo while + } else { + $_SESSION['errors'][] = tr('Nessuna data di conclusione del contratto oppure quest\'ultima è già trascorsa, impossibile pianificare nuovi promemoria.'); + } + //fine controllo data_conclusione + } else { + $_SESSION['errors'][] = tr('Errore durante la pianificazione. #'.$idcontratto_riga); + } + + redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); + break; } // Righe già inserite @@ -248,18 +206,16 @@ if (count($rsp) != 0) { '_NUM_' => $rsp2[0]['codice'], '_DATE_' => Translator::dateToLocale($rsp2[0]['data']), ])); - - $disabled = 'disabled'; - + + $disabled = 'disabled'; } else { $info_intervento = '- '.('Nessuno').' -'; - $disabled = ''; + $disabled = ''; + } + + if (date('Y', strtotime($records[0]['data_conclusione'])) < 1971) { + $records[0]['data_conclusione'] = ''; } - - - if (date('Y', strtotime($records[0]['data_conclusione']))<1971){ - $records[0]['data_conclusione'] = ''; - } echo ' '.Translator::dateToLocale($rsp[$i]['data_richiesta']).' @@ -268,20 +224,14 @@ if (count($rsp) != 0) { '.$info_intervento.' '.$info_sede.' '; - - - - echo ' - '; - - - - - - echo ' + + echo ' + '; + + echo ' '; - echo ' + echo ' '; diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index b6a3c2811..2d34a7110 100644 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -49,7 +49,7 @@ if (!empty($rs_art)) { // q.tà echo ' '; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['qta']); } @@ -59,7 +59,7 @@ if (!empty($rs_art)) { // um echo ' '; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo $r['um']; } @@ -69,7 +69,7 @@ if (!empty($rs_art)) { // costo unitario echo ' '; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['subtotale'] / $r['qta']).' €'; } @@ -79,7 +79,7 @@ if (!empty($rs_art)) { // iva echo ' '; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['iva'])." €
".$r['desc_iva'].''; @@ -90,7 +90,7 @@ if (!empty($rs_art)) { // Imponibile echo ' '; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['subtotale']).' €'; diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 6684ddb8c..e61e7f8d8 100644 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -91,7 +91,8 @@ if (!empty($rs)) { $ref_modulo = null; $ref_id = null; - // Aggiunta riferimento a ordine + // Aggiunta dei riferimenti ai documenti + // Ordine if (!empty($r['idordine'])) { $data = $dbo->fetchArray("SELECT IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM or_ordini WHERE id=".prepare($r['idordine'])); @@ -99,28 +100,36 @@ if (!empty($rs)) { $ref_id = $r['idordine']; $documento = tr('Ordine'); - } elseif (!empty($r['idddt'])) { + } + // DDT + elseif (!empty($r['idddt'])) { $data = $dbo->fetchArray("SELECT IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM dt_ddt WHERE id=".prepare($r['idddt'])); $ref_modulo = ($dir == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto'; $ref_id = $r['idddt']; $documento = tr('Ddt'); - } elseif (!empty($r['idpreventivo'])) { + } + // Preventivo + elseif (!empty($r['idpreventivo'])) { $data = $dbo->fetchArray('SELECT numero, data_bozza AS data FROM co_preventivi WHERE id='.prepare($r['idpreventivo'])); $ref_modulo = 'Preventivi'; $ref_id = $r['idpreventivo']; $documento = tr('Preventivo'); - } elseif (!empty($r['idcontratto'])) { + } + // Contratto + elseif (!empty($r['idcontratto'])) { $data = $dbo->fetchArray('SELECT numero, data_bozza AS data FROM co_contratti WHERE id='.prepare($r['idcontratto'])); $ref_modulo = 'Contratti'; $ref_id = $r['idcontratto']; $documento = tr('Contratto'); - } elseif (!empty($r['idintervento'])) { + } + // Intervento + elseif (!empty($r['idintervento'])) { $data = $dbo->fetchArray('SELECT codice AS numero, data_richiesta AS data FROM in_interventi WHERE id='.prepare($r['idintervento'])); $ref_modulo = 'Interventi'; @@ -154,32 +163,32 @@ if (!empty($rs)) { echo ' '; - - if($r['is_descrizione']==0){ - echo + + if (empty($r['is_descrizione'])) { + echo Translator::numberToLocale($r['qta']); } - - echo ' + + echo ' '; // Unità di misura echo ' '; - - if($r['is_descrizione']==0){ + + if (empty($r['is_descrizione'])) { echo $r['um']; } - + echo ' '; // Costo unitario echo ' '; - - if($r['is_descrizione']==0){ + + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['subtotale'] / $r['qta']).' €'; @@ -191,27 +200,27 @@ if (!empty($rs)) { ]).''; } } - + echo ' '; // Iva echo ' '; - - if($r['is_descrizione']==0){ + + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['iva']).' €
'.$r['desc_iva'].''; } - + echo ' '; // Imponibile echo ' '; - if($r['is_descrizione']==0){ + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['subtotale'] - $r['sconto']).' €'; } diff --git a/templates/ddt/body.php b/templates/ddt/body.php index 1fb0dd346..cfb0b0e2b 100644 --- a/templates/ddt/body.php +++ b/templates/ddt/body.php @@ -70,7 +70,7 @@ foreach ($rs_gen as $r) { echo ' '; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['qta']).' '.$r['um']; } @@ -91,7 +91,7 @@ foreach ($rs_gen as $r) { // Imponibile echo " "; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['subtotale']).' €'; @@ -112,7 +112,7 @@ foreach ($rs_gen as $r) { // Iva echo " "; - if ($r['is_descrizione'] == 0) { + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['perc_iva']); } diff --git a/templates/fatture/body.php b/templates/fatture/body.php index 1bc2fccad..409ca4836 100644 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -57,6 +57,73 @@ foreach ($righe as $r) { } } + // Aggiunta dei riferimenti ai documenti + $ref_modulo = null; + $ref_id = null; + + // Ordine + if (!empty($r['idordine'])) { + $data = $dbo->fetchArray("SELECT IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM or_ordini WHERE id=".prepare($r['idordine'])); + + $ref_modulo = ($records[0]['dir'] == 'entrata') ? 'Ordini cliente' : 'Ordini fornitore'; + $ref_id = $r['idordine']; + + $documento = tr('Ordine'); + } + // DDT + elseif (!empty($r['idddt'])) { + $data = $dbo->fetchArray("SELECT IF(numero_esterno != '', numero_esterno, numero) AS numero, data FROM dt_ddt WHERE id=".prepare($r['idddt'])); + + $ref_modulo = ($records[0]['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto'; + $ref_id = $r['idddt']; + + $documento = tr('Ddt'); + } + // Preventivo + elseif (!empty($r['idpreventivo'])) { + $data = $dbo->fetchArray('SELECT numero, data_bozza AS data FROM co_preventivi WHERE id='.prepare($r['idpreventivo'])); + + $ref_modulo = 'Preventivi'; + $ref_id = $r['idpreventivo']; + + $documento = tr('Preventivo'); + } + // Contratto + elseif (!empty($r['idcontratto'])) { + $data = $dbo->fetchArray('SELECT numero, data_bozza AS data FROM co_contratti WHERE id='.prepare($r['idcontratto'])); + + $ref_modulo = 'Contratti'; + $ref_id = $r['idcontratto']; + + $documento = tr('Contratto'); + } + // Intervento + elseif (!empty($r['idintervento'])) { + $data = $dbo->fetchArray('SELECT codice AS numero, data_richiesta AS data FROM in_interventi WHERE id='.prepare($r['idintervento'])); + + $ref_modulo = 'Interventi'; + $ref_id = $r['idintervento']; + + $documento = tr('Intervento'); + } + + if (!empty($ref_modulo) && !empty($ref_id)) { + $documento = Stringy\Stringy::create($documento)->toLowerCase(); + + if (!empty($data)) { + $descrizione = tr('Rif. _DOC_ num. _NUM_ del _DATE_', [ + '_DOC_' => $documento, + '_NUM_' => $data[0]['numero'], + '_DATE_' => Translator::dateToLocale($data[0]['data']), + ]); + } else { + $descrizione = tr('_DOC_ di riferimento _ID_ eliminato', [ + '_DOC_' => $documento->upperCaseFirst(), + '_ID_' => $ref_id, + ]); + } + } + // Aggiunta riferimento a ordine if (!empty($r['idordine'])) { $rso = $dbo->fetchArray('SELECT numero, numero_esterno, data FROM or_ordini WHERE id='.prepare($r['idordine'])); @@ -96,9 +163,12 @@ foreach ($righe as $r) { } // Aumento del conteggio - if ((!empty($r['idordine']) || !empty($r['idddt']) || !empty($r['idpreventivo'])) && $count <= 1 && !empty($descrizione)) { - echo '
'.$descrizione.''; - $count += 0.4; + if (!empty($descrizione)) { + echo ' +
'.$descrizione.''; + if ($count <= 1) { + $count += 0.4; + } } echo ' @@ -106,8 +176,8 @@ foreach ($righe as $r) { echo ' '; - if($r['is_descrizione']==0){ - echo + if (empty($r['is_descrizione'])) { + echo Translator::numberToLocale($r['qta']).' '.$r['um']; } echo ' @@ -116,9 +186,8 @@ foreach ($righe as $r) { // Prezzo unitario echo " "; - if($r['is_descrizione']==0){ - echo - (empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €'; + if (empty($r['is_descrizione'])) { + echo(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €'; if ($r['sconto'] > 0) { echo " @@ -139,10 +208,9 @@ foreach ($righe as $r) { // Imponibile echo " "; - if($r['is_descrizione']==0){ - echo - (empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] - $r['sconto'])).' €'; - + if (empty($r['is_descrizione'])) { + echo(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] - $r['sconto'])).' €'; + if ($r['sconto'] > 0) { echo "
".tr('sconto di _TOT_ _TYPE_', [ @@ -161,7 +229,7 @@ foreach ($righe as $r) { // Iva echo ' '; - if($r['is_descrizione']==0){ + if (empty($r['is_descrizione'])) { echo Translator::numberToLocale($r['perc_iva']); }