Aggiunto automatismo cambio stati su ordini/ddt. Migliorata evasione qtà
This commit is contained in:
parent
16d78485be
commit
824eb089a3
|
@ -5,6 +5,7 @@ include_once __DIR__.'/../../core.php';
|
|||
// Necessaria per la funzione add_movimento_magazzino
|
||||
include_once $docroot.'/modules/articoli/modutil.php';
|
||||
include_once $docroot.'/modules/fatture/modutil.php';
|
||||
include_once $docroot.'/modules/ordini/modutil.php';
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
|
@ -357,7 +358,7 @@ switch (post('op')) {
|
|||
$subtot = $prezzo * $qta;
|
||||
|
||||
// Lettura idarticolo dalla riga ddt
|
||||
$rs = $dbo->fetchArray('SELECT idddt, abilita_serial, idarticolo, idordine, qta FROM dt_righe_ddt WHERE id='.prepare($idriga));
|
||||
$rs = $dbo->fetchArray('SELECT * FROM dt_righe_ddt WHERE id='.prepare($idriga));
|
||||
$idarticolo = $rs[0]['idarticolo'];
|
||||
$idordine = $rs[0]['idordine'];
|
||||
$old_qta = $rs[0]['qta'];
|
||||
|
@ -372,6 +373,11 @@ 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']) );
|
||||
}
|
||||
|
||||
// Calcolo iva
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
|
@ -483,6 +489,16 @@ switch (post('op')) {
|
|||
break;
|
||||
}
|
||||
|
||||
// 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']).'")' );
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiornamento sconto sulle righe
|
||||
if (post('op') !== null && post('op') != 'update') {
|
||||
aggiorna_sconto([
|
||||
'parent' => 'dt_ddt',
|
||||
|
|
|
@ -332,13 +332,17 @@ function get_stato_ddt($idddt)
|
|||
|
||||
$rs = $dbo->fetchArray('SELECT SUM(qta) AS qta, SUM(qta_evasa) AS qta_evasa FROM dt_righe_ddt GROUP BY idddt HAVING idddt='.prepare($idddt));
|
||||
|
||||
if ($rs[0]['qta_evasa'] > 0) {
|
||||
if ($rs[0]['qta'] > $rs[0]['qta_evasa']) {
|
||||
return 'Parzialmente fatturato';
|
||||
} elseif ($rs[0]['qta'] == $rs[0]['qta_evasa']) {
|
||||
return 'Fatturato';
|
||||
}
|
||||
if ($rs[0]['qta'] == 0) {
|
||||
return 'Bozza';
|
||||
} else {
|
||||
return 'Evaso';
|
||||
if ($rs[0]['qta_evasa'] > 0) {
|
||||
if ($rs[0]['qta'] > $rs[0]['qta_evasa']) {
|
||||
return 'Parzialmente fatturato';
|
||||
} elseif ($rs[0]['qta'] == $rs[0]['qta_evasa']) {
|
||||
return 'Fatturato';
|
||||
}
|
||||
} else {
|
||||
return 'Evaso';
|
||||
}
|
||||
}
|
||||
}
|
|
@ -799,6 +799,11 @@ switch (post('op')) {
|
|||
if (!empty($idddt)) {
|
||||
$dbo->query( 'UPDATE dt_righe_ddt SET qta_evasa=qta_evasa-'.$old_qta.' + '.$qta.' WHERE descrizione='.prepare($rs[0]['descrizione']).' AND idarticolo='.prepare($rs[0]['idarticolo']).' AND idddt='.prepare($idddt).' AND idiva='.prepare($rs[0]['idiva']) );
|
||||
}
|
||||
|
||||
// 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']) );
|
||||
}
|
||||
|
||||
// Calcolo iva
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
|
@ -1327,6 +1332,15 @@ if( !empty($id_record) ){
|
|||
}
|
||||
}
|
||||
|
||||
// Aggiornamento stato degli ordini presenti in questa fattura in base alle quantità totali evase
|
||||
if( !empty($id_record) ){
|
||||
$rs = $dbo->fetchArray( 'SELECT idordine FROM co_righe_documenti WHERE iddocumento='.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']).'")' );
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiornamento sconto sulle righe
|
||||
if (post('op') !== null && post('op') != 'update') {
|
||||
aggiorna_sconto([
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
// Aggiornamento stato di questo ordine
|
||||
$dbo->query( 'UPDATE or_ordini SET idstatoordine=(SELECT id FROM or_statiordine WHERE descrizione="'.get_stato_ordine($id_record).'")' );
|
||||
|
||||
if (isset($id_record)) {
|
||||
$records = $dbo->fetchArray('SELECT *, or_ordini.note, or_ordini.idpagamento, or_ordini.id AS idordine, or_statiordine.descrizione AS `stato`, or_tipiordine.descrizione AS `descrizione_tipodoc` FROM ((or_ordini LEFT OUTER JOIN or_statiordine ON or_ordini.idstatoordine=or_statiordine.id) INNER JOIN an_anagrafiche ON or_ordini.idanagrafica=an_anagrafiche.idanagrafica) INNER JOIN or_tipiordine ON or_ordini.idtipoordine=or_tipiordine.id WHERE or_ordini.id='.prepare($id_record));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue