Fix dei bug segnalati da #1, #2, #4, #5,  #7. Parziale risoluzione di #6 (in attesa di ulteriori specifiche).
This commit is contained in:
Thomas Zilio 2017-08-08 14:04:46 +02:00
parent 9c055cef99
commit f50aae1534
7 changed files with 12 additions and 17 deletions

View File

@ -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

View File

@ -14,7 +14,7 @@ $type = $_POST['type'];
if (!extension_loaded('zip')) {
$_SESSION['errors'][] = _('Estensione php_zip non caricata!').'<br>'._('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();

View File

@ -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']);
}

View File

@ -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!');

View File

@ -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!'));

View File

@ -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 "<p>Ordine numero $numero</p>";
echo "Seleziona le righe che vuoi inserire nel ddt e la quantità:<br><br>";
echo '<form id="link_form" action="'.$rootdir.'/editor.php?id_module='.Modules::getModule('Ddt di acquisto')['id'].'&id_record='.$id_record."\" method=\"post\">";
echo '<form id="link_form" action="'.$rootdir.'/editor.php?id_module='.Modules::getModule($module_name)['id'].'&id_record='.$id_record."\" method=\"post\">";
// Altri id utili
echo " <input type='hidden' name='idordine' value='".$id_record."' />";

View File

@ -6,8 +6,10 @@ $module = Modules::getModule($id_module);
if ($module['name'] == 'Ordini cliente') {
$dir = 'entrata';
$module_name = 'Fatture di vendita';
} else {
$dir = 'uscita';
$module_name = 'Fatture di acquisto';
}
// Info documento
@ -24,7 +26,7 @@ $idconto = $rs[0]['idconto'];
echo "<h4>Ordine numero $numero</h4>\n";
echo "Seleziona le righe che vuoi inserire nella fattura e la quantità:<br><br>\n";
echo '<form id="link_form" action="'.$rootdir.'/editor.php?id_module='.Modules::getModule('Fatture di acquisto')['id'].'&id_record='.$id_record."\" method=\"post\">\n";
echo '<form id="link_form" action="'.$rootdir.'/editor.php?id_module='.Modules::getModule($module_name)['id'].'&id_record='.$id_record."\" method=\"post\">\n";
// Altri id utili
echo " <input type='hidden' name='idordine' value='".$id_record."' />\n";