From f50aae15347c795e9d1909c1770947eec5aeebf6 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Tue, 8 Aug 2017 14:04:46 +0200 Subject: [PATCH] Bugfix Fix dei bug segnalati da #1, #2, #4, #5, #7. Parziale risoluzione di #6 (in attesa di ulteriori specifiche). --- core.php | 4 ++-- modules/aggiornamenti/upload_modules.php | 2 +- modules/articoli/modutil.php | 2 +- modules/ddt/actions.php | 11 +---------- modules/fatture/actions.php | 2 +- modules/ordini/creaddt.php | 4 +++- modules/ordini/creafattura.php | 4 +++- 7 files changed, 12 insertions(+), 17 deletions(-) diff --git a/core.php b/core.php index 007aefc6f..3d760daa7 100644 --- a/core.php +++ b/core.php @@ -159,8 +159,8 @@ if (!API::isAPIRequest()) { register_shutdown_function('translateTemplate'); // Impostazione della sessione di base - $_SESSION['infos'] = (array) $_SESSION['errors']; - $_SESSION['warnings'] = (array) $_SESSION['errors']; + $_SESSION['infos'] = (array) $_SESSION['infos']; + $_SESSION['warnings'] = (array) $_SESSION['warnings']; $_SESSION['errors'] = (array) $_SESSION['errors']; // Imposto il periodo di visualizzazione dei record dal 01-01-yyy al 31-12-yyyy diff --git a/modules/aggiornamenti/upload_modules.php b/modules/aggiornamenti/upload_modules.php index 6ed45e84a..acff9f5ee 100644 --- a/modules/aggiornamenti/upload_modules.php +++ b/modules/aggiornamenti/upload_modules.php @@ -14,7 +14,7 @@ $type = $_POST['type']; if (!extension_loaded('zip')) { $_SESSION['errors'][] = _('Estensione php_zip non caricata!').'
'._('Verifica e attivala sul tuo php.ini'); -} elseif (strstr($filename, '.zip')) { +} elseif (!ends_with($filename, '.zip')) { $_SESSION['errors'][] = _('Il file non è un archivio zip!'); } elseif (!empty($tmp) && is_file($tmp)) { $zip = new ZipArchive(); diff --git a/modules/articoli/modutil.php b/modules/articoli/modutil.php index 2c34d234a..ec9ed76b3 100644 --- a/modules/articoli/modutil.php +++ b/modules/articoli/modutil.php @@ -15,7 +15,7 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = ' // DDT if (!empty($array['idddt'])) { - $rs = $dbo->fetchArray('SELECT numero, numero_esterno, dt_ddt.descrizione AS tipo, dt_ddt.dir FROM dt_ddt LEFT JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='.prepare($array['idddt'])); + $rs = $dbo->fetchArray('SELECT numero, numero_esterno, dt_tipiddt.descrizione AS tipo, dt_tipiddt.dir FROM dt_ddt LEFT JOIN dt_tipiddt ON dt_tipiddt.id = dt_ddt.idtipoddt WHERE dt_ddt.id='.prepare($array['idddt'])); $numero = (!empty($rs[0]['numero_esterno'])) ? $rs[0]['numero_esterno'] : $rs[0]['numero']; $tipo = strtolower($rs[0]['tipo']); } diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index f2addb724..990aa6cc8 100644 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -190,16 +190,7 @@ switch (post('op')) { $iva = ($subtot - $sconto) / 100 * $rs[0]['percentuale']; $iva_indetraibile = $iva / 100 * $rs[0]['indetraibile']; - // Se la riga che sto inserendo è simile ad altre già inserite, aggiorno solo la quantità e l'iva... - $query = 'SELECT id FROM dt_righe_ddt WHERE idddt='.prepare($id_record).' AND descrizione='.prepare($descrizione).' AND (iva/qta)='.prepare($iva / $qta).' AND (iva_indetraibile/qta)='.prepare($iva_indetraibile / $qta).' AND (subtotale/qta)='.prepare($subtot / $qta).' AND um='.prepare($um).' AND sconto='.prepare($sconto); - $rs = $dbo->fetchArray($query); - if (sizeof($rs) > 0) { - $query = 'UPDATE dt_righe_ddt SET qta=qta+'.$qta.', iva=iva+'.$iva.', iva_indetraibile=iva_indetraibile+'.$iva_indetraibile.' WHERE id='.prepare($rs[0]['id']); - } - // ...altrimenti aggiungo una nuova riga - else { - $query = 'INSERT INTO dt_righe_ddt(idddt, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idgruppo, `order`) VALUES('.prepare($id_record).', '.prepare($idiva).', '.prepare($rs[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'), (SELECT IFNULL(MAX(`order`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'))'; - } + $query = 'INSERT INTO dt_righe_ddt(idddt, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idgruppo, `order`) VALUES('.prepare($id_record).', '.prepare($idiva).', '.prepare($rs[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'), (SELECT IFNULL(MAX(`order`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'))'; if ($dbo->query($query)) { $_SESSION['infos'][] = _('Riga aggiunta!'); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 3d17647db..1463afe8f 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -548,7 +548,7 @@ switch (post('op')) { $ritenutaacconto = ($prezzo) / 100 * $rs[0]['percentuale']; // Aggiunta riga contratto sul documento - $query = 'INSERT INTO co_righe_documenti(iddocumento, idcontratto, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, idgruppo, `order`) VALUES('.prepare($id_record).', '.prepare($idcontratto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($idconto).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'), (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))'; + $query = 'INSERT INTO co_righe_documenti(iddocumento, idcontratto, idconto, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, idrivalsainps, rivalsainps, idritenutaacconto, ritenutaacconto, idgruppo, `order`) VALUES('.prepare($id_record).', '.prepare($idcontratto).', '.prepare($idconto).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($prezzo).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).", '-', 1, ".prepare(get_var('Percentuale rivalsa INPS')).', '.prepare($rivalsainps).', '.prepare(get_var("Percentuale ritenuta d'acconto")).', '.prepare($ritenutaacconto).', (SELECT IFNULL(MAX(`idgruppo`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'), (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))'; if ($dbo->query($query)) { $_SESSION['infos'][] = str_replace('_NUM_', $numero, _('Contratto _NUM_ aggiunto!')); diff --git a/modules/ordini/creaddt.php b/modules/ordini/creaddt.php index 5db0f360a..d7868e10f 100644 --- a/modules/ordini/creaddt.php +++ b/modules/ordini/creaddt.php @@ -6,8 +6,10 @@ $module = Modules::getModule($id_module); if ($module['name'] == 'Ordini cliente') { $dir = 'entrata'; + $module_name = 'Ddt di vendita'; } else { $dir = 'uscita'; + $module_name = 'Ddt di acquisto'; } // Info documento @@ -24,7 +26,7 @@ $idconto = $rs[0]['idconto']; echo "

Ordine numero $numero

"; echo "Seleziona le righe che vuoi inserire nel ddt e la quantità:

"; -echo '