2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../../core.php' ;
2019-05-04 06:39:18 +02:00
// Righe documento
$righe = $preventivo -> getRighe ();
2017-08-04 16:28:16 +02:00
echo '
< table class = " table table-striped table-hover table-condensed table-bordered " >
2018-05-18 18:12:19 +02:00
< thead >
< tr >
< th > '.tr(' Descrizione ').' </ th >
2019-04-23 19:06:43 +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 >
2019-05-04 06:39:18 +02:00
< th width = " 120 " > '.tr(' Costo unitario ').' </ th >
2018-05-18 18:12:19 +02:00
< th width = " 120 " > '.tr(' Iva ').' </ th >
< th width = " 120 " > '.tr(' Imponibile ').' </ th >
< th width = " 60 " ></ th >
</ tr >
</ thead >
2017-08-04 16:28:16 +02:00
< tbody class = " sortable " > ' ;
2019-05-04 06:39:18 +02:00
foreach ( $righe as $riga ) {
2018-06-23 18:35:08 +02:00
echo '
2019-05-04 06:39:18 +02:00
< tr data - id = " '. $riga->id .' " > ' ;
2018-06-22 17:52:51 +02:00
2019-05-04 06:39:18 +02:00
// Descrizione
$descrizione = nl2br ( $riga -> descrizione );
if ( $riga -> isArticolo ()) {
$descrizione = Modules :: link ( 'Articoli' , $riga -> idarticolo , $riga -> articolo -> codice . ' - ' . $descrizione );
2018-06-23 18:35:08 +02:00
}
echo '
2019-05-04 06:39:18 +02:00
< td >
'.$descrizione.'
2017-08-04 16:28:16 +02:00
</ td > ' ;
2019-05-04 06:39:18 +02:00
if ( $riga -> isDescrizione ()) {
2018-01-18 19:03:06 +01:00
echo '
2019-05-04 06:39:18 +02:00
< td ></ td >
< td ></ td >
< td ></ td >
< td ></ td >
< td ></ td > ' ;
} else {
// Q.tà
echo '
< td class = " text-center " >
'.Translator::numberToLocale($riga->qta_rimanente, ' qta ').' / '.Translator::numberToLocale($riga->qta, ' qta ').'
2017-08-04 16:28:16 +02:00
</ td > ' ;
2019-05-04 06:39:18 +02:00
// Unità di misura
2018-01-18 19:03:06 +01:00
echo '
2019-05-04 06:39:18 +02:00
< td class = " text-center " >
'.$riga->um.'
2017-08-04 16:28:16 +02:00
</ td > ' ;
2019-05-04 06:39:18 +02:00
// Costo unitario
2018-06-23 18:35:08 +02:00
echo '
2019-05-04 06:39:18 +02:00
< td class = " text-right " >
' . moneyFormat ( $riga -> prezzo_unitario_vendita );
2017-08-04 16:28:16 +02:00
2019-07-17 18:30:20 +02:00
if ( abs ( $riga -> sconto_unitario ) > 0 ) {
$text = $riga -> sconto_unitario > 0 ? tr ( 'sconto _TOT_ _TYPE_' ) : tr ( 'maggiorazione _TOT_ _TYPE_' );
2019-07-11 17:44:42 +02:00
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 , [
2019-07-17 18:30:20 +02:00
'_TOT_' => Translator :: numberToLocale ( abs ( $riga -> sconto_unitario )),
2019-05-04 06:39:18 +02:00
'_TYPE_' => ( $riga -> tipo_sconto == 'PRC' ? '%' : currency ()),
2018-01-18 19:03:06 +01:00
]) . '</small>' ;
2017-08-04 16:28:16 +02:00
}
2019-05-04 06:39:18 +02:00
echo '
2017-08-04 16:28:16 +02:00
</ td > ' ;
2019-05-04 06:39:18 +02:00
// IVA
2018-06-23 18:35:08 +02:00
echo '
2019-05-04 06:39:18 +02:00
< td class = " text-right " >
'.moneyFormat($riga->iva).' < br >
< small class = " help-block " > '.$riga->aliquota->descrizione.(($riga->aliquota->esente) ? ' ( '.$riga->aliquota->codice_natura_fe.' ) ' : null).' </ small >
2017-08-04 16:28:16 +02:00
</ td > ' ;
2019-05-04 06:39:18 +02:00
// Imponibile
2018-06-23 18:35:08 +02:00
echo '
2019-05-04 06:39:18 +02:00
< td class = " text-right " >
2019-09-05 18:40:39 +02:00
'.moneyFormat($riga->totale_imponibile).'
2019-05-04 06:39:18 +02:00
</ td > ' ;
2018-06-23 18:35:08 +02:00
}
2018-12-23 14:25:20 +01:00
2018-06-23 18:35:08 +02:00
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
echo '
2017-08-04 16:28:16 +02:00
< td class = " text-center " > ' ;
2019-09-18 16:43:57 +02:00
if ( empty ( $record [ 'is_completato' ])) {
2019-05-04 06:39:18 +02:00
echo '
< form action = " " method = " post " id = " delete-form-'. $riga->id .' " role = " form " >
< input type = " hidden " name = " backto " value = " record-edit " >
< input type = " hidden " name = " op " value = " delete_riga " >
< input type = " hidden " name = " idriga " value = " '. $riga->id .' " >
< div class = " btn-group " >
< a class = " btn btn-xs btn-warning " onclick = " editRow('. $riga->id .') " >< i class = " fa fa-edit " ></ i ></ a >
< a class = " btn btn-xs btn-danger " onclick = " deleteRow('. $riga->id .') " >< i class = " fa fa-trash " ></ i ></ a >
2017-08-04 16:28:16 +02:00
</ div >
2019-05-04 06:39:18 +02:00
</ 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-08-04 16:28:16 +02:00
2018-06-23 18:35:08 +02:00
echo '
2017-08-04 16:28:16 +02:00
</ td >
</ tr > ' ;
}
echo '
</ tbody > ' ;
2019-05-04 06:39:18 +02:00
echo '
< script >
function editRow ( id ){
launch_modal ( " '.tr('Modifica riga').' " , " '. $module->fileurl ('row-edit.php').'?id_module= " + globals . id_module + " &id_record= " + globals . id_record + " &idriga= " + id );
2018-12-23 14:25:20 +01:00
}
2017-08-04 16:28:16 +02:00
2019-05-04 06:39:18 +02:00
function deleteRow ( id ){
2019-07-17 18:30:20 +02:00
if ( confirm ( " '.tr('Rimuovere questa riga dal documento?').' " )){
2019-05-04 06:39:18 +02:00
$ ( " #delete-form- " + id ) . submit ();
}
}
</ script > ' ;
2018-12-23 14:25:20 +01:00
2019-07-12 17:35:14 +02:00
// Calcoli
$imponibile = abs ( $preventivo -> imponibile );
$sconto = $preventivo -> sconto ;
$totale_imponibile = abs ( $preventivo -> totale_imponibile );
$iva = abs ( $preventivo -> iva );
$totale = abs ( $preventivo -> totale );
2019-07-18 09:42:51 +02:00
// Totale imponibile scontato
echo '
2017-08-04 16:28:16 +02:00
< tr >
2019-01-01 11:39:20 +01:00
< 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 >
2019-05-04 06:39:18 +02:00
< td class = " text-right " >
'.moneyFormat($preventivo->imponibile, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
2019-07-12 17:35:14 +02:00
// SCONTO
if ( ! empty ( $sconto )) {
2017-08-04 16:28:16 +02:00
echo '
< tr >
2019-01-01 11:39:20 +01:00
< td colspan = " 5 " class = " text-right " >
2019-07-12 12:40:13 +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]).' :</ span ></ b >
2017-08-04 16:28:16 +02:00
</ td >
2019-05-04 06:39:18 +02:00
< td class = " text-right " >
'.moneyFormat($preventivo->sconto, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
2019-05-04 06:39:18 +02:00
// Totale imponibile scontato
2017-08-04 16:28:16 +02:00
echo '
< tr >
2019-01-01 11:39:20 +01:00
< 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 align = " 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 > ' ;
}
// Totale iva
echo '
< tr >
2019-01-01 11:39:20 +01:00
< td colspan = " 5 " class = " text-right " >
2019-05-04 06:39:18 +02:00
< b > '.tr(' Iva ', [], [' upper ' => true]).' :</ b >
2017-08-04 16:28:16 +02:00
</ td >
2019-05-04 06:39:18 +02:00
< td class = " text-right " >
'.moneyFormat($preventivo->iva, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
2019-09-12 09:31:55 +02:00
// Totale
2017-08-04 16:28:16 +02:00
echo '
< tr >
2019-01-01 11:39:20 +01:00
< 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 >
2019-05-04 06:39:18 +02:00
< td class = " text-right " >
'.moneyFormat($preventivo->totale, 2).'
2017-08-04 16:28:16 +02:00
</ td >
< td ></ td >
</ tr > ' ;
2019-09-12 09:31:55 +02:00
// Margine
$margine = $preventivo -> margine ;
2019-12-24 12:45:23 +01:00
$margine_style = $margine <= 0 ? 'background-color: #FFC6C6; border: 3px solid red' : '' ;
2019-09-12 09:31:55 +02:00
2019-12-24 12:45:23 +01:00
echo '
< tr >
< td colspan = " 5 " class = " text-right " >
'.tr(' Margine ( _PRC_ % ) ' , [
'_PRC_' => numberFormat ( $preventivo -> margine_percentuale ),
]) . ' :
</ td >
< td align = " right " style = " '. $margine_style .' " >
'.moneyFormat($preventivo->margine).'
</ td >
< td ></ td >
</ tr > ' ;
2019-09-12 09:31:55 +02:00
2017-08-04 16:28:16 +02:00
echo '
</ table > ' ;
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 ( /^ , / , " " );
2019-01-01 11:39:20 +01:00
2017-08-04 16:28:16 +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-08-04 16:28:16 +02:00
});
}
});
});
});
</ script > ' ;