mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-16 19:40:44 +01:00
Aggiornamento stato ddt automatico in base alla fattura
This commit is contained in:
parent
f6a544f448
commit
16d78485be
@ -158,7 +158,7 @@ if ($records[0]['stato'] != 'Evaso') {
|
||||
<!-- Stampe -->
|
||||
<?php
|
||||
|
||||
if ( $records[0]['stato'] != 'Pagato') {
|
||||
if( !in_array( $records[0]['stato'], array( 'Bozza', 'Fatturato')) ) {
|
||||
?>
|
||||
<a class="btn btn-sm btn-info" data-href="<?php echo $rootdir ?>/modules/fatture/crea_documento.php?id_module=<?php echo $id_module ?>&id_record=<?php echo $id_record ?>&documento=fattura" data-toggle="modal" data-title="Crea fattura" data-target="#bs-popup">
|
||||
<i class="fa fa-magic"></i> <?php echo tr('Crea fattura da ddt'); ?>...</i>
|
||||
|
@ -322,3 +322,23 @@ function add_articolo_inddt($idddt, $idarticolo, $descrizione, $idiva, $qta, $pr
|
||||
|
||||
return $idriga;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restituisce lo stato del ddt in base alle righe.
|
||||
*/
|
||||
function get_stato_ddt($idddt)
|
||||
{
|
||||
global $dbo;
|
||||
|
||||
$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';
|
||||
}
|
||||
} else {
|
||||
return 'Evaso';
|
||||
}
|
||||
}
|
@ -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/interventi/modutil.php';
|
||||
include_once $docroot.'/modules/ddt/modutil.php';
|
||||
|
||||
$module = Modules::get($id_module);
|
||||
|
||||
@ -776,8 +777,10 @@ switch (post('op')) {
|
||||
$subtot = $prezzo * $qta;
|
||||
|
||||
// Lettura idarticolo dalla riga documento
|
||||
$rs = $dbo->fetchArray('SELECT iddocumento, idarticolo, qta, abilita_serial, is_descrizione FROM co_righe_documenti WHERE id='.prepare($idriga));
|
||||
$rs = $dbo->fetchArray('SELECT * FROM co_righe_documenti WHERE id='.prepare($idriga));
|
||||
$idarticolo = $rs[0]['idarticolo'];
|
||||
$idddt = $rs[0]['idddt'];
|
||||
$idordine = $rs[0]['idordine'];
|
||||
$old_qta = $rs[0]['qta'];
|
||||
$iddocumento = $rs[0]['iddocumento'];
|
||||
$abilita_serial = $rs[0]['abilita_serial'];
|
||||
@ -791,6 +794,11 @@ switch (post('op')) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Se c'è un collegamento ad un ddt, aggiorno la quantità evasa
|
||||
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']) );
|
||||
}
|
||||
|
||||
// Calcolo iva
|
||||
$query = 'SELECT * FROM co_iva WHERE id='.prepare($idiva);
|
||||
@ -919,15 +927,6 @@ switch (post('op')) {
|
||||
|
||||
// Scalo la quantità dal ddt
|
||||
$dbo->query('UPDATE dt_righe_ddt SET qta_evasa = qta_evasa+'.$qta.' WHERE id='.prepare($idrigaddt));
|
||||
|
||||
// Aggiorno lo stato ddt in base alle quantità totali evase
|
||||
$rs = $dbo->fetchArray( "SELECT SUM(qta) AS tot_qta, SUM(qta_evasa) AS tot_qta_evasa FROM dt_righe_ddt WHERE idddt=".prepare($idddt) );
|
||||
|
||||
if( $rs[0]['tot_qta_evasa'] == $rs[0]['tot_qta'] ){
|
||||
$dbo->query( 'UPDATE dt_ddt SET idstatoddt=(SELECT id FROM dt_statiddt WHERE descrizione="Fatturato")' );
|
||||
} elseif( $rs[0]['tot_qta_evasa'] > 0 ){
|
||||
$dbo->query( 'UPDATE dt_ddt SET idstatoddt=(SELECT id FROM dt_statiddt WHERE descrizione="Parzialmente fatturato")' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1319,6 +1318,16 @@ switch (post('op')) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Aggiornamento stato dei ddt presenti in questa fattura in base alle quantità totali evase
|
||||
if( !empty($id_record) ){
|
||||
$rs = $dbo->fetchArray( 'SELECT idddt FROM co_righe_documenti WHERE iddocumento='.prepare($id_record) );
|
||||
|
||||
for( $i=0; $i<sizeof($rs); $i++ ){
|
||||
$dbo->query( 'UPDATE dt_ddt SET idstatoddt=(SELECT id FROM dt_statiddt WHERE descrizione="'.get_stato_ddt($rs[$i]['idddt']).'")' );
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiornamento sconto sulle righe
|
||||
if (post('op') !== null && post('op') != 'update') {
|
||||
aggiorna_sconto([
|
||||
'parent' => 'co_documenti',
|
||||
|
Loading…
x
Reference in New Issue
Block a user