2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../../core.php' ;
/*
2018-05-18 18:12:19 +02:00
ARTICOLI + RIGHE GENERICHE
2017-08-04 16:28:16 +02:00
*/
2018-08-11 15:49:46 +02:00
$rs = $dbo -> fetchArray ( 'SELECT *, round(sconto_unitario,' . setting ( 'Cifre decimali per importi' ) . ') AS sconto_unitario, round(sconto,' . setting ( 'Cifre decimali per importi' ) . ') AS sconto, round(subtotale,' . setting ( 'Cifre decimali per importi' ) . ') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe_contratti WHERE idcontratto=' . prepare ( $id_record ) . ' ORDER BY `order`' );
2017-08-04 16:28:16 +02:00
echo '
2018-01-14 17:46:00 +01:00
< table class = " table table-striped table-hover table-condensed table-bordered " >
2017-09-11 13:08:50 +02:00
< thead >
2018-05-18 18:12:19 +02:00
< tr >
< th > '.tr(' Descrizione ').' </ th >
2019-05-16 18:28:18 +02:00
< th width = " 120 " > '.tr(' Q . tà ').' < i title = " '.tr('da evadere').' / '.tr('totale').' " class = " tip fa fa-question-circle-o " ></ i ></ th >
2018-05-18 18:12:19 +02:00
< th width = " 80 " > '.tr(' U . m . ').' </ th >
< th width = " 120 " > '.tr(' Costo unitario ').' </ th >
< th width = " 120 " > '.tr(' Iva ').' </ th >
< th width = " 120 " > '.tr(' Imponibile ').' </ th >
< th width = " 60 " ></ th >
</ tr >
</ thead >
2017-09-11 13:08:50 +02:00
< tbody class = " sortable " > ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
foreach ( $rs as $r ) {
// Descrizione
echo '
2017-09-11 13:08:50 +02:00
< tr data - id = " '. $r['id'] .' " >
2018-01-18 19:03:06 +01:00
< td > ' ;
2018-06-23 18:35:08 +02:00
if ( ! empty ( $r [ 'idarticolo' ])) {
echo Modules :: link ( 'Articoli' , $r [ 'idarticolo' ], $r [ 'codice' ] . ' - ' . $r [ 'descrizione' ]);
} else {
echo nl2br ( $r [ 'descrizione' ]);
}
2018-01-18 19:03:06 +01:00
2018-06-23 18:35:08 +02:00
echo '
2017-09-11 13:08:50 +02:00
</ td > ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
// Q.tà
echo '
2019-02-14 17:49:58 +01:00
< td class = " text-center " > ' ;
2018-06-23 18:35:08 +02:00
if ( empty ( $r [ 'is_descrizione' ])) {
2018-01-18 19:03:06 +01:00
echo '
2019-04-23 19:06:43 +02:00
< span > '.Translator::numberToLocale($r[' qta '] - $r[' qta_evasa '], ' qta ').' / '.Translator::numberToLocale($r[' qta '], ' qta ').' </ span > ' ;
2018-06-23 18:35:08 +02:00
}
echo '
2017-09-11 13:08:50 +02:00
</ td > ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
// um
echo '
2018-01-18 19:03:06 +01:00
< td class = " text-center " > ' ;
2018-06-23 18:35:08 +02:00
if ( empty ( $r [ 'is_descrizione' ])) {
2018-01-18 19:03:06 +01:00
echo '
2018-06-23 18:35:08 +02:00
'.$r[' um ' ];
}
echo '
2017-09-11 13:08:50 +02:00
</ td > ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
// Costo unitario
echo '
2018-05-18 18:43:01 +02:00
< td class = " text-right " > ' ;
2018-06-23 18:35:08 +02:00
if ( empty ( $r [ 'is_descrizione' ])) {
echo '
2019-04-13 02:56:39 +02:00
'.moneyFormat($r[' subtotale '] / $r[' qta ' ]);
2018-06-22 17:52:51 +02:00
2019-07-11 17:34:06 +02:00
if ( abs ( $r [ 'sconto_unitario' ]) > 0 ) {
2019-07-11 17:44:42 +02:00
$text = $r [ 'sconto_unitario' ] > 0 ? tr ( 'sconto _TOT_ _TYPE_' ) : tr ( 'maggiorazione _TOT_ _TYPE_' );
2018-06-23 18:35:08 +02:00
echo '
2019-07-11 17:44:42 +02:00
< br >< small class = " label label-danger " > ' . replace ( $text , [
'_TOT_' => Translator :: numberToLocale ( abs ( $r [ 'sconto_unitario' ])),
2019-04-13 00:09:48 +02:00
'_TYPE_' => ( $r [ 'tipo_sconto' ] == 'PRC' ? '%' : currency ()),
2018-05-18 18:43:01 +02:00
]) . '</small>' ;
2018-01-18 19:03:06 +01:00
}
2018-06-23 18:35:08 +02:00
}
echo '
2017-09-11 13:08:50 +02:00
</ td > ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
// IVA
echo '
2018-01-18 19:03:06 +01:00
< td class = " text-right " > ' ;
2018-06-23 18:35:08 +02:00
if ( empty ( $r [ 'is_descrizione' ])) {
echo '
2019-04-13 02:56:39 +02:00
'.moneyFormat($r[' iva ' ]) . " <br>
2018-01-18 19:03:06 +01:00
< small class = 'help-block' > " . $r['desc_iva'] .'</small>';
2018-06-23 18:35:08 +02:00
}
echo '
2017-09-11 13:08:50 +02:00
</ td > ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
// Imponibile
echo '
2018-01-18 19:03:06 +01:00
< td class = " text-right " > ' ;
2018-06-23 18:35:08 +02:00
if ( empty ( $r [ 'is_descrizione' ])) {
2017-08-04 16:28:16 +02:00
echo '
2019-04-13 02:56:39 +02:00
'.moneyFormat($r[' subtotale '] - $r[' sconto ' ]);
2018-06-23 18:35:08 +02:00
}
echo '
2017-09-11 13:08:50 +02:00
</ td > ' ;
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
echo '
2017-09-11 13:08:50 +02:00
< td class = " text-center " > ' ;
2017-08-04 16:28:16 +02:00
2019-03-29 12:46:17 +01:00
if ( $record [ 'stato' ] != 'Pagato' ) {
2018-06-23 18:35:08 +02:00
echo '
2017-09-22 15:19:59 +02:00
< form action = " '. $rootdir .'/editor.php?id_module='.Modules::get('Contratti')['id'].'&id_record='. $id_record .' " method = " post " id = " delete-form-'. $r['id'] .' " role = " form " >
2017-09-11 13:08:50 +02:00
< input type = " hidden " name = " backto " value = " record-edit " >
< input type = " hidden " name = " id_record " value = " '. $id_record .' " >
< input type = " hidden " name = " op " value = " delriga " >
< input type = " hidden " name = " idriga " value = " '. $r['id'] .' " >
< input type = " hidden " name = " idarticolo " value = " '. $r['idarticolo'] .' " >
< div class = " btn-group " > ' ;
2018-02-19 10:52:42 +01:00
2018-06-23 18:35:08 +02:00
echo "
2018-02-19 10:52:42 +01:00
< a class = 'btn btn-xs btn-warning' onclick = \ " launch_modal('Modifica riga', ' " . $rootdir . '/modules/contratti/row-edit.php?id_module=' . $id_module . '&id_record=' . $id_record . '&idriga=' . $r [ 'id' ] . " ', 1 ); \" ><i class='fa fa-edit'></i></a>
2017-09-11 13:08:50 +02:00
< a href = 'javascript:;' class = 'btn btn-xs btn-danger' title = 'Rimuovi questa riga' onclick = \ " if( confirm('Rimuovere questa riga dal contratto?') ) { $ ('#delete-form- " . $r [ 'id' ] . " ').submit(); } \" ><i class='fa fa-trash'></i></a> " ;
2018-06-23 18:35:08 +02:00
echo '
2017-09-11 13:08:50 +02:00
</ div >
</ form > ' ;
2018-06-23 18:35:08 +02:00
}
2019-05-04 00:32:28 +02:00
echo '
2019-04-23 17:27:26 +02:00
< div class = " handle clickable " style = " padding:10px " >
< i class = " fa fa-sort " ></ i >
</ div > ' ;
2017-09-11 13:08:50 +02:00
2018-06-23 18:35:08 +02:00
echo '
2017-09-11 13:08:50 +02:00
</ td >
</ tr > ' ;
2018-06-23 18:35:08 +02:00
}
2017-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
// Calcoli
$imponibile = sum ( array_column ( $rs , 'subtotale' ));
$sconto = sum ( array_column ( $rs , 'sconto' ));
$iva = sum ( array_column ( $rs , 'iva' ));
2018-06-22 17:52:51 +02:00
2019-07-11 17:44:42 +02:00
$totale_imponibile = sum ( $imponibile , - $sconto );
2018-05-18 18:12:19 +02:00
2018-06-23 18:35:08 +02:00
$totale = sum ([
2019-07-11 17:44:42 +02:00
$totale_imponibile ,
2018-06-23 18:35:08 +02:00
$iva ,
]);
2017-08-04 16:28:16 +02:00
2017-09-11 13:08:50 +02:00
echo '
</ tbody > ' ;
2017-08-04 16:28:16 +02:00
// SCONTO
2018-05-18 18:12:19 +02:00
if ( abs ( $sconto ) > 0 ) {
2019-07-11 17:44:42 +02:00
// Totale totale imponibile
2017-08-04 16:28:16 +02:00
echo '
< tr >
< td colspan = " 5 " " class= " text - right " >
2017-09-10 14:35:41 +02:00
< b > '.tr(' Imponibile ', [], [' upper ' => true]).' :</ b >
2017-08-04 16:28:16 +02:00
</ td >
< td class = " text-right " >
2019-05-02 10:03:57 +02:00
< span id = " budget " > '.moneyFormat($imponibile, 2).' </ span >
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
echo '
< tr >
< td colspan = " 5 " " class= " text - right " >
2019-07-12 09:22:03 +02:00
< b >< span class = " tip " title = " '.tr('Un importo positivo indica uno sconto, mentre uno negativo indica una maggiorazione').' " > < i class = " fa fa-question-circle-o " ></ i > '.tr(' Sconto / maggiorazione ', [], [' upper ' => true]).' :<
2017-08-04 16:28:16 +02:00
</ td >
< td class = " text-right " >
2019-05-02 10:03:57 +02:00
'.moneyFormat($sconto, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
2019-07-11 17:44:42 +02:00
// Totale totale imponibile
2017-08-04 16:28:16 +02:00
echo '
< tr >
< td colspan = " 5 " " class= " text - right " >
2019-07-11 17:44:42 +02:00
< b > '.tr(' Totale imponibile ', [], [' upper ' => true]).' :</ b >
2017-08-04 16:28:16 +02:00
</ td >
< td class = " text-right " >
2019-07-11 17:44:42 +02:00
'.moneyFormat($totale_imponibile, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
} else {
// Totale imponibile
echo '
< tr >
< td colspan = " 5 " " class= " text - right " >
2017-09-10 14:35:41 +02:00
< b > '.tr(' Imponibile ', [], [' upper ' => true]).' :</ b >
2017-08-04 16:28:16 +02:00
</ td >
< td class = " text-right " >
2019-05-02 10:03:57 +02:00
< span id = " budget " > '.moneyFormat($imponibile, 2).' </ span >
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
}
// Totale iva
echo '
< tr >
< td colspan = " 5 " " class= " text - right " >
2017-09-10 14:35:41 +02:00
< b > '.tr(' Iva ', [], [' upper ' => true]).' :</ b >
2017-08-04 16:28:16 +02:00
</ td >
< td class = " text-right " >
2019-05-02 10:03:57 +02:00
'.moneyFormat($iva, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
// Totale contratto
echo '
< tr >
< td colspan = " 5 " " class= " text - right " >
2017-09-10 14:35:41 +02:00
< b > '.tr(' Totale ', [], [' upper ' => true]).' :</ b >
2017-08-04 16:28:16 +02:00
</ td >
< td class = " text-right " >
2019-05-02 10:03:57 +02:00
'.moneyFormat($totale, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
echo '
</ table > ' ;
2017-09-11 13:08:50 +02:00
echo '
< script >
$ ( document ) . ready ( function (){
$ ( " .sortable " ) . each ( function () {
$ ( this ) . sortable ({
axis : " y " ,
handle : " .handle " ,
cursor : " move " ,
dropOnEmpty : true ,
scroll : true ,
update : function ( event , ui ) {
2018-10-30 10:27:44 +01:00
var order = " " ;
$ ( " .table tr[data-id] " ) . each ( function (){
order += " , " + $ ( this ) . data ( " id " );
});
order = order . replace ( /^ , / , " " );
2017-09-11 13:08:50 +02:00
$ . post ( " '. $rootdir .'/actions.php " , {
id : ui . item . data ( " id " ),
id_module : '.$id_module.' ,
id_record : '.$id_record.' ,
op : " update_position " ,
2018-10-30 10:27:44 +01:00
order : order ,
2017-09-11 13:08:50 +02:00
});
}
});
});
});
</ script > ' ;