2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../../core.php' ;
if ( $_GET [ 'dir' ] == 'entrata' ) {
$dir = 'entrata' ;
$module_name = 'Fatture di vendita' ;
} else {
$dir = 'uscita' ;
$module_name = 'Fatture di acquisto' ;
}
$idddt = $get [ 'idddt' ];
// Info documento
$q = 'SELECT * FROM dt_ddt WHERE id=' . prepare ( $idddt );
$rs = $dbo -> fetchArray ( $q );
$numero = $rs [ 0 ][ 'numero' ];
$idanagrafica = $rs [ 0 ][ 'idanagrafica' ];
$idpagamento = $rs [ 0 ][ 'idpagamento' ];
$idconto = $rs [ 0 ][ 'idconto' ];
/*
Form di inserimento riga documento
*/
echo '
< p > '.str_replace(' _NUM_ ', $numero, _(' Ddt numero _NUM_ ')).' </ p > ' ;
//Selezione articoli del ddt da portare nella fattura, escludo quelli completamente evasi
$query = 'SELECT *, (qta - qta_evasa) AS qta_rimanente FROM dt_ddt INNER JOIN dt_righe_ddt ON dt_ddt.id=dt_righe_ddt.idddt WHERE dt_ddt.id=' . prepare ( $idddt ) . ' HAVING qta_rimanente > 0' ;
$rs = $dbo -> fetchArray ( $query );
if ( ! empty ( $rs )) {
echo '
< p > '._(' Seleziona le righe che vuoi inserire nella fattura e la relativa quantità ').' .</ p >< br />< br /> ' ;
echo '
< form id = " link_form " action = " '. $rootdir .'/editor.php?id_module='.Modules::getModule( $module_name )['id'].'&id_record='. $idddt .' " method = " post " >
< input type = " hidden " name = " idddt " value = " '. $idddt .' " >
< input type = " hidden " name = " idanagrafica " value = " '. $idanagrafica .' " >
< input type = " hidden " name = " idconto " value = " '. $idconto .' " >
< input type = " hidden " name = " idpagamento " value = " '. $idpagamento .' " >
< input type = " hidden " name = " op " value = " fattura_da_ddt " >
< input type = " hidden " name = " backto " value = " record-edit " >
< input type = " hidden " name = " dir " value = " '. $dir .' " > ' ;
echo '
< div class = " row " >
< div class = " col-md-12 " >
{[ " type " : " date " , " label " : " '._('Data fattura').' " , " name " : " data " , " required " : 1 , " value " : " -now- " ]}
</ div >
</ div > ' ;
echo '
< div class = " clearfix " ></ div >
< br >
< table class = " table table-striped table-hover table-condensed " >
< tr >
< th > '._(' Descrizione ').' </ th >
< th width = " 10%% " > '._(' Q . tà ').' </ th >
< th width = " 15% " > '._(' Q . tà da evadere ').' </ th >
< th width = " 20% " > '._(' Subtot . ').' </ th >
< th width = " 10% " > '._(' Da evadere ').' </ th >
< th width = " 2% " ></ th >
</ tr > ' ;
$totale = 0.00 ;
foreach ( $rs as $i => $r ) {
// Descrizione
echo '
< tr >
< td >
< input type = " hidden " name = " idrigaddt[] " value = " '. $r['id'] .' " />
< input type = " hidden " id = " idarticolo_'. $i .' " name = " idarticolo[] " value = " '. $r['idarticolo'] .' " />
< input type = " hidden " id = " descrizione_'. $i .' " name = " descrizione[] " " value= " '.$r[' descrizione '].' " />
'.nl2br($r[' descrizione ']).'
< small > ' ;
if ( $r [ 'lotto' ] != '' ) {
echo '<br/>' . _ ( 'Lotto' ) . ': ' . $r [ 'lotto' ];
}
if ( $r [ 'serial' ] != '' ) {
echo '<br/>' . _ ( 'SN' ) . ': ' . $r [ 'serial' ];
}
if ( $r [ 'altro' ] != '' ) {
echo '<br/>' . $r [ 'altro' ];
}
echo '
</ small >
</ td > ' ;
// Q.tà rimanente
echo '
< td id = truerimanente_ '.$i.' " >
< input type = " hidden " id = " qtamax_'. $i .' " value = " '.( $r['qta'] - $r['qta_evasa'] ).' " />
< input type = " hidden " id = " um_'. $i .' " name = " um[] " value = " '. $r['um'] .' " />
< p class = " text-center " > '.$r[' qta_rimanente '].' </ p >
</ td > ' ;
// Q.tà da evadere
echo '
< td >
< input class = " form-control inputmask-decimal " type = " text " id = " qta_'. $i .' " name = " qta_da_evadere[] " value = " '.( $r['qta'] - $r['qta_evasa'] ).' " onkeyup = " ricalcola_subtotale_riga('. $i .'); " />
</ td > ' ;
// Subtotale
$subtotale = $r [ 'subtotale' ] / $r [ 'qta' ] * ( $r [ 'qta' ] - $r [ 'qta_evasa' ]);
$sconto = $r [ 'sconto' ] / $r [ 'qta' ] * ( $r [ 'qta' ] - $r [ 'qta_evasa' ]);
$iva = $r [ 'iva' ] / $r [ 'qta' ] * ( $r [ 'qta' ] - $r [ 'qta_evasa' ]);
echo '
< td >
< input type = " hidden " id = " subtot_'. $i .' " name = " subtot[] " value = " '.Translator::numberToLocale( $r['subtotale'] / $r['qta'] ).' " />
< input type = " hidden " id = " sconto_'. $i .' " name = " sconto[] " value = " '.Translator::numberToLocale( $r['sconto'] / $r['qta'] ).' " />
< input type = " hidden " id = " idiva_'. $i .' " name = " idiva[] " value = " '. $r['idiva'] .' " />
< input type = " hidden " id = " iva_'. $i .' " name = " iva[] " value = " '.Translator::numberToLocale( $r['iva'] / $r['qta'] ).' " />
< big id = " subtotale_'. $i .' " > '.Translator::numberToLocale($subtotale - $sconto + $iva).' & euro ; </ big >< br />
< small style = " color:#777; " id = " subtotaledettagli_'. $i .' " > '.Translator::numberToLocale($subtotale - $sconto).' + '.Translator::numberToLocale($iva).' </ small >
</ td > ' ;
// Checkbox - da evadere?
echo '
< td >
< input type = " checkbox " checked = " checked " id = " checked_'. $i .' " name = " evadere[] " value = " on " onclick = " ricalcola_subtotale_riga('. $i .'); " />
</ td >
</ tr > ' ;
$totale += $subtotale - $sconto + $iva ;
}
// Totale
echo '
< tr >
< td colspan = " 4 " align = " right " class = " text-right " >
< b > Totale :</ b >
</ td >
< td class = " text-right " colspan = " 2 " >
< big id = " totale " > '.Translator::numberToLocale($totale).' & euro ; </ big >
</ td >
</ tr >
</ table > ' ;
echo '
<!-- PULSANTI -->
< div class = " row " >
< div class = " col-md-12 text-right " >
< button type = " submit " id = " submit_btn " class = " btn btn-primary pull-right " >
< i class = " fa fa-plus " ></ i > '.($dir == ' entrata ' ? _(' Crea fattura di vendita ') : _(' Crea fattura di acquisto ')).'
</ button >
</ div >
</ div > ' ;
echo '
</ form > ' ;
} else {
echo '
< b > '._(' Non ci sono articoli da evadere in questo ddt ').' ...</ b > ' ;
}
echo '
< script src = " '. $rootdir .'/lib/init.js " ></ script > ' ;
?>
< script type = " text/javascript " >
function ricalcola_subtotale_riga ( r ){
2017-08-11 12:11:57 +02:00
subtot = $ ( " #subtot_ " + r ) . val () . toEnglish ();
sconto = $ ( " #sconto_ " + r ) . val () . toEnglish ();
2017-08-04 16:28:16 +02:00
subtot = subtot - sconto ;
2017-08-11 12:11:57 +02:00
qta = $ ( " #qta_ " + r ) . val () . toEnglish ();
2017-08-04 16:28:16 +02:00
if ( isNaN ( qta ) )
qta = 0 ;
2017-08-11 12:11:57 +02:00
qtamax = $ ( " #qtamax_ " + r ) . val () . toEnglish ();
2017-08-04 16:28:16 +02:00
if ( isNaN ( qtamax ) )
qtamax = 0 ;
2017-08-11 12:11:57 +02:00
iva = $ ( " #iva_ " + r ) . val () . toEnglish ();
2017-08-04 16:28:16 +02:00
// Se inserisco una quantità da evadere maggiore di quella rimanente, la imposto al massimo possibile
if ( qta > qtamax ){
qta = qtamax ;
$ ( '#qta_' + r ) . val ( qta );
}
// Se tolgo la spunta della casella dell'evasione devo azzerare i conteggi
if ( ! $ ( '#checked_' + r ) . is ( ':checked' ) )
qta = 0 ;
2017-08-11 12:11:57 +02:00
subtotale = ( subtot * qta + iva * qta ) . toFixedLocale ();
2017-08-04 16:28:16 +02:00
$ ( " #subtotale_ " + r ) . html ( subtotale + " € " );
$ ( " #subtotaledettagli_ " + r ) . html ( ( subtot * qta ) . toFixed ( 2 ) + " + " + ( iva * qta ) . toFixed ( 2 ) );
ricalcola_totale ();
}
function ricalcola_totale (){
r = 0 ;
totale = 0.00 ;
$ ( 'input[id*=qta_]' ) . each ( function (){
2017-08-11 12:11:57 +02:00
qta = $ ( this ) . val () . toEnglish ();
2017-08-04 16:28:16 +02:00
if ( ! $ ( '#checked_' + r ) . is ( ':checked' ) || isNaN ( qta ) )
qta = 0 ;
2017-08-11 12:11:57 +02:00
subtot = $ ( " #subtot_ " + r ) . val () . toEnglish ();
sconto = $ ( " #sconto_ " + r ) . val () . toEnglish ();
2017-08-04 16:28:16 +02:00
subtot = subtot - sconto ;
2017-08-11 12:11:57 +02:00
iva = $ ( " #iva_ " + r ) . val () . toEnglish ();
2017-08-04 16:28:16 +02:00
totale += subtot * qta + iva * qta ;
r ++ ;
});
2017-08-11 12:11:57 +02:00
$ ( '#totale' ) . html ( ( totale . toFixedLocale ()) + " € " );
2017-08-04 16:28:16 +02:00
if ( totale == 0 )
$ ( '#submit_btn' ) . hide ();
else
$ ( '#submit_btn' ) . show ();
}
</ script >