Corretto il passaggio di sconti da ordine a ddt/fattura

This commit is contained in:
Fabio Lovato 2018-01-27 12:46:38 +01:00
parent b1114bd98c
commit 1745f0c342
2 changed files with 15 additions and 9 deletions

View File

@ -199,12 +199,12 @@ switch (post('op')) {
}
}
break;
case 'adddescrizione':
if (!empty($id_record)) {
$descrizione = post('descrizione');
$query = 'INSERT INTO dt_righe_ddt(idddt, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)';
if ($dbo->query($query)) {
$_SESSION['infos'][] = tr('Riga descrittiva aggiunta!');
}
@ -235,7 +235,7 @@ switch (post('op')) {
foreach ($post['qta_da_evadere'] AS $idriga=>$value) {
// Processo solo le righe da evadere
if ($post['evadere'][$idriga] == 'on') {
$idarticolo = post('idarticolo')[$idriga];
$descrizione = post('descrizione')[$idriga];
@ -250,13 +250,19 @@ switch (post('op')) {
$idiva = post('idiva')[$idriga];
$iva = $post['iva'][$idriga] * $qta;
$qprc = 'SELECT tipo_sconto, sconto_unitario FROM or_righe_ordini WHERE id='.prepare($idriga);
$rsprc = $dbo->fetchArray($qprc);
$sconto_unitario = $rsprc[0]['sconto_unitario'];
$tipo_sconto = $rsprc[0]['tipo_sconto'];
// Calcolo l'iva indetraibile
$q = 'SELECT descrizione, indetraibile FROM co_iva WHERE id='.prepare($idiva);
$rs = $dbo->fetchArray($q);
$iva_indetraibile = $iva / 100 * $rs[0]['indetraibile'];
// Inserisco la riga in ddt
$dbo->query('INSERT INTO dt_righe_ddt(idddt, idordine, idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, abilita_serial, `order`) VALUES('.prepare($id_record).', '.prepare($idordine).', '.prepare($idarticolo).', '.prepare($idiva).', '.prepare($rs[0]['descrizione']).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($um).', '.prepare($qta).', '.prepare($abilita_serial).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'))');
$dbo->query('INSERT INTO dt_righe_ddt(idddt, idordine, idarticolo, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, abilita_serial, `order`) VALUES('.prepare($id_record).', '.prepare($idordine).', '.prepare($idarticolo).', '.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).', '.prepare($abilita_serial).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM dt_righe_ddt AS t WHERE idddt='.prepare($id_record).'))');
$riga = $dbo->lastInsertedID();
// Aggiornamento seriali dalla riga dell'ordine
@ -373,7 +379,7 @@ switch (post('op')) {
return;
}
}
// Se c'è un collegamento ad un ordine, aggiorno la quantità evasa
if (!empty($idddt)) {
$dbo->query( 'UPDATE or_righe_ordini SET qta_evasa=qta_evasa-'.$old_qta.' + '.$qta.' WHERE descrizione='.prepare($rs[0]['descrizione']).' AND idarticolo='.prepare($rs[0]['idarticolo']).' AND idordine='.prepare($idordine).' AND idiva='.prepare($rs[0]['idiva']) );
@ -492,7 +498,7 @@ switch (post('op')) {
// Aggiornamento stato degli ordini presenti in questa fattura in base alle quantità totali evase
if( !empty($id_record) ){
$rs = $dbo->fetchArray( 'SELECT idordine FROM dt_righe_ddt WHERE idddt='.prepare($id_record) );
for( $i=0; $i<sizeof($rs); $i++ ){
$dbo->query( 'UPDATE or_ordini SET idstatoordine=(SELECT id FROM or_statiordine WHERE descrizione="'.get_stato_ordine($rs[$i]['idordine']).'")' );
}

View File

@ -903,7 +903,7 @@ switch (post('op')) {
$rs = $dbo->fetchArray($query);
$perc_iva = $rs[0]['percentuale'];
$desc_iva = $rs[0]['descrizione'];
$iva = $subtot / 100 * $perc_iva;
$iva = ($subtot - $sconto) / 100 * $perc_iva;
// Calcolo l'iva indetraibile
$q = 'SELECT indetraibile FROM co_iva WHERE id='.prepare($idiva);
@ -925,7 +925,7 @@ switch (post('op')) {
// Inserimento riga normale
elseif ($qta != 0) {
$query = 'INSERT INTO co_righe_documenti(iddocumento, idarticolo, descrizione, idddt, idiva, desc_iva, iva, iva_indetraibile, subtotale, sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($descrizione).', '.prepare($idddt).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
$query = 'INSERT INTO co_righe_documenti(iddocumento, idarticolo, descrizione, idddt, idiva, desc_iva, iva, iva_indetraibile, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($descrizione).', '.prepare($idddt).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))';
$dbo->query($query);
}
@ -1008,7 +1008,7 @@ switch (post('op')) {
// Inserimento riga normale
elseif ($qta != 0) {
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idordine).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
$dbo->query('INSERT INTO co_righe_documenti(iddocumento, idarticolo, idordine, idiva, desc_iva, iva, iva_indetraibile, descrizione, subtotale, sconto, sconto_unitario, tipo_sconto, um, qta, `order`) VALUES('.prepare($id_record).', '.prepare($idarticolo).', '.prepare($idordine).', '.prepare($idiva).', '.prepare($desc_iva).', '.prepare($iva).', '.prepare($iva_indetraibile).', '.prepare($descrizione).', '.prepare($subtot).', '.prepare($sconto).', '.prepare($sconto_unitario).', '.prepare($tipo_sconto).', '.prepare($um).', '.prepare($qta).', (SELECT IFNULL(MAX(`order`) + 1, 0) FROM co_righe_documenti AS t WHERE iddocumento='.prepare($id_record).'))');
$idriga = $dbo->lastInsertedID();
}