260 lines
8.7 KiB
PHP
260 lines
8.7 KiB
PHP
|
<?php
|
||
|
include_once(__DIR__."/../../core.php");
|
||
|
|
||
|
?><form action="" method="post" id="edit-form">
|
||
|
<input type="hidden" name="op" value="editriga">
|
||
|
<input type="hidden" name="backto" value="record-edit">
|
||
|
<input type="hidden" name="id_record" value="<?php echo $id_record ?>">
|
||
|
<input type="hidden" name="idmastrino" value="<?php echo $records[0]['idmastrino'] ?>">
|
||
|
<input type="hidden" name="iddocumento" value="<?php echo $records[0]['iddocumento'] ?>">
|
||
|
|
||
|
|
||
|
<?php
|
||
|
if( $records[0]['iddocumento'] != '0' ){
|
||
|
$rs = $dbo->fetchArray("SELECT dir FROM co_tipidocumento INNER JOIN co_documenti ON co_tipidocumento.id=co_documenti.idtipodocumento WHERE co_documenti.id=\"".$records[0]['iddocumento']."\"");
|
||
|
( $rs[0]['dir'] == 'entrata' ) ? $modulo='Fatture di vendita' : $modulo='Fatture di acquisto';
|
||
|
?>
|
||
|
<div class="pull-left">
|
||
|
<a href="<?php echo $rootdir ?>/editor.php?id_module=14&id_record=<?php echo $records[0]['iddocumento'] ?>" class="btn btn-info"><i class="fa fa-chevron-left"></i> Torna alla fattura</a>
|
||
|
</div>
|
||
|
<?php
|
||
|
}
|
||
|
?>
|
||
|
|
||
|
<div class="panel panel-<?php echo $_SESSION['profilo_pannello'] ?>">
|
||
|
<div class="clearfix"></div>
|
||
|
</br>
|
||
|
<div class="col-md-4">
|
||
|
<div class="pull-left">
|
||
|
<button type="submit" class="btn-app btn-success"><i class="fa fa-check"></i> Salva </button>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="col-md-4">
|
||
|
<div class="pull-right">
|
||
|
<div class="pull-left showcase sweet">
|
||
|
<button type="button" class="btn-app btn-danger" aria-label="Show SweetAlert2 success message" ><i class="fa fa-trash-o"></i> Elimina</span></button>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div class="col-md-4">
|
||
|
|
||
|
</div>
|
||
|
<div class="clearfix"></div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
<div class="row">
|
||
|
<div class="col-md-2">
|
||
|
{[ "type": "text", "label": "<?php echo _("Data movimento"); ?>", "name": "data", "required": 1, "class": "text-center datepicker", "value": "<?php echo date("d/m/Y", strtotime($records[0]['data'])) ?>", "extra": "" ]}
|
||
|
</div>
|
||
|
|
||
|
<div class="col-md-6">
|
||
|
{[ "type": "text", "label": "<?php echo _("Causale"); ?>", "name": "descrizione", "required": 1, "class": "", "value": "$descrizione$", "extra": "" ]}
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<?php
|
||
|
$conti3 = array(); //contenitore conti di terzo livello
|
||
|
$totale_dare = 0.00;
|
||
|
$totale_avere = 0.00;
|
||
|
$idmastrino = $records[0]['idmastrino'];
|
||
|
|
||
|
//Salvo l'elenco conti in un array (per non fare il ciclo ad ogni riga)
|
||
|
$query2 = "SELECT * FROM co_pianodeiconti2";
|
||
|
$conti2 = $dbo->fetchArray($query2);
|
||
|
for( $x=0; $x<sizeof($conti2); $x++ ){
|
||
|
$query3 = "SELECT * FROM co_pianodeiconti3 WHERE idpianodeiconti2='".$conti2[$x]['id']."'";
|
||
|
$rs3 = $dbo->fetchArray($query3);
|
||
|
for( $y=0; $y<sizeof($rs3); $y++ ){
|
||
|
//Creo un array con le descrizioni dei conti di livello 3 che ha come indice l'id del livello2 e del livello3
|
||
|
$conti3[ $rs3[$y]['idpianodeiconti2'] ][ $y ]['id'] = $rs3[$y]['id'];
|
||
|
$conti3[ $rs3[$y]['idpianodeiconti2'] ][ $y ]['descrizione'] = $conti2[$x]['numero'].".".$rs3[$y]['numero']." ".htmlentities( $rs3[$y]['descrizione'], ENT_QUOTES, "UTF-8" );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/*
|
||
|
Form di modifica riga movimento
|
||
|
*/
|
||
|
//Lettura movimenti del mastrino selezionato
|
||
|
$query = "SELECT * FROM co_movimenti WHERE idmastrino=\"".$records[0]['idmastrino']."\" AND iddocumento=\"".$records[0]['iddocumento']."\" AND primanota=\"".$records[0]['primanota']."\"";
|
||
|
$rs = $dbo->fetchArray($query);
|
||
|
$n = sizeof($rs);
|
||
|
$iddocumento = $rs[0]['iddocumento'];
|
||
|
|
||
|
echo "<table class='table table-striped table-condensed table-hover table-bordered'>\n";
|
||
|
echo "<tr><th>Conto</th><th width='150'>Dare</th><th width='150'>Avere</th></tr>\n";
|
||
|
|
||
|
for( $i=0; $i<10; $i++ ){
|
||
|
//Conto
|
||
|
echo '
|
||
|
<tr>
|
||
|
<td>
|
||
|
{[ "type": "select", "name": "idconto['.$i.']", "no-label": 1, "value": "'.$rs[$i]['idconto'].'", "ajax-source": "conti" ]}
|
||
|
</td>';
|
||
|
|
||
|
|
||
|
|
||
|
//Importo dare e avere
|
||
|
if( $rs[$i]['totale']>0 ){
|
||
|
$value_dare = $rs[$i]['totale'];
|
||
|
$value_avere = '';
|
||
|
}
|
||
|
else if( $rs[$i]['totale']<0 ){
|
||
|
$value_dare = '';
|
||
|
$value_avere = -$rs[$i]['totale'];
|
||
|
}
|
||
|
else{
|
||
|
$value_dare = '';
|
||
|
$value_avere = '';
|
||
|
}
|
||
|
|
||
|
//Dare
|
||
|
echo '
|
||
|
<td>
|
||
|
{[ "type": "text", "class": "inputmask-decimal", "name": "dare['.$i.']", "no-label": 1, "value": "'.$value_dare.'", "disabled": 1]}
|
||
|
</td>';
|
||
|
|
||
|
//Avere
|
||
|
echo '
|
||
|
<td>
|
||
|
{[ "type": "text", "class": "inputmask-decimal", "name": "avere['.$i.']", "no-label": 1, "value": "'.$value_avere.'", "disabled": 1]}
|
||
|
</td>
|
||
|
</tr>';
|
||
|
}
|
||
|
|
||
|
//Totale per controllare sbilancio
|
||
|
echo "<tr><td align='right'>\n<b>Totale:</b></td>\n";
|
||
|
|
||
|
if( $totale_dare != $totale_avere ){
|
||
|
$class = "text-danger";
|
||
|
$txt = "sbilancio di ".number_format($totale_dare-$totale_avere, get_var("Cifre decimali"), ",", ".")." €";
|
||
|
}
|
||
|
else{
|
||
|
$class = "";
|
||
|
$txt = "";
|
||
|
}
|
||
|
|
||
|
|
||
|
//Totale dare
|
||
|
echo "<td align='right'>\n";
|
||
|
echo " <span class='".$class."'><span id='totale_dare'>".number_format( $totale_dare, get_var("Cifre decimali"), ",", "." )."</span> €</span>\n";
|
||
|
echo "</td>\n";
|
||
|
|
||
|
//Totale avere
|
||
|
echo "<td align='right'>\n";
|
||
|
echo " <span class='".$class."'><span id='totale_avere'>".number_format( $totale_avere, get_var("Cifre decimali"), ",", "." )."</span> €</span>\n";
|
||
|
echo "</td></tr>\n";
|
||
|
|
||
|
//Verifica sbilancio
|
||
|
echo "<tr><td align='right'></td>\n";
|
||
|
echo "<td colspan='2' align='center'>\n";
|
||
|
echo " <span id='testo_aggiuntivo'>".$txt."</span>\n";
|
||
|
echo "</td></tr>\n";
|
||
|
|
||
|
echo "</table>\n";
|
||
|
?>
|
||
|
|
||
|
|
||
|
<script type="text/javascript">
|
||
|
$(document).ready( function(){
|
||
|
$('input[id*=dare], input[id*=avere]').each( function(){
|
||
|
if( $(this).val() != '' ) $(this).prop("disabled", false);
|
||
|
});
|
||
|
|
||
|
$('select').on('change', function(){
|
||
|
if($(this).val() != '') $(this).parent().parent().parent().find('input').prop("disabled", false);
|
||
|
else{
|
||
|
$(this).parent().parent().parent().find('input').prop("disabled", true);
|
||
|
$(this).parent().parent().parent().find('input').val("");
|
||
|
}
|
||
|
});
|
||
|
|
||
|
$('input[id*=dare]').on( 'keyup change', function(){
|
||
|
if($(this).val() != '') $(this).parent().parent().parent().find('input[id*=avere]').prop("disabled", true);
|
||
|
else $(this).parent().parent().parent().find('input[id*=avere]').prop("disabled", false);
|
||
|
calcolaBilancio();
|
||
|
});
|
||
|
|
||
|
$('input[id*=avere]').on( 'keyup change', function(){
|
||
|
if($(this).val() != '') $(this).parent().parent().parent().find('input[id*=dare]').prop("disabled", true);
|
||
|
else $(this).parent().parent().parent().find('input[id*=dare]').prop("disabled", false);
|
||
|
calcolaBilancio();
|
||
|
});
|
||
|
|
||
|
//Ad ogni modifica dell'importo verifica che siano stati selezionati: il conto, la causale, la data. Inoltre aggiorna lo sbilancio
|
||
|
function calcolaBilancio(){
|
||
|
bilancio = 0.00;
|
||
|
totale_dare = 0.00;
|
||
|
totale_avere = 0.00;
|
||
|
|
||
|
//Calcolo il totale dare e totale avere
|
||
|
$('input[id*=dare]').each( function(){
|
||
|
if( $(this).val() == '' ) valore = 0;
|
||
|
else valore = parseFloat( $(this).val().replace(",", ".") );
|
||
|
totale_dare += valore;
|
||
|
});
|
||
|
|
||
|
$('input[id*=avere]').each( function(){
|
||
|
if( $(this).val() == '' ) valore = 0;
|
||
|
else valore = parseFloat( $(this).val().replace(",", ".") );
|
||
|
totale_avere += valore;
|
||
|
});
|
||
|
|
||
|
$('#totale_dare').text( ( totale_dare.toFixed(<?php echo get_var("Cifre decimali") ?>) ).replace('.', ',') );
|
||
|
$('#totale_avere').text( ( totale_avere.toFixed(<?php echo get_var("Cifre decimali") ?>) ).replace('.', ',') );
|
||
|
|
||
|
bilancio = totale_dare-totale_avere;
|
||
|
|
||
|
if( bilancio == 0 ){
|
||
|
$("#testo_aggiuntivo").removeClass('text-danger').html("");
|
||
|
$("#btn-save").removeClass('hide');
|
||
|
}
|
||
|
else{
|
||
|
bilancio = bilancio.toFixed(<?php echo get_var("Cifre decimali") ?>);
|
||
|
$("#testo_aggiuntivo").addClass('text-danger').html("sbilancio di "+bilancio.replace(".", ",")+" €" );
|
||
|
|
||
|
$("#btn-save").addClass('hide');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//Trigger dell'evento keyup() per la prima volta, per eseguire i dovuti controlli nel caso siano predisposte delle righe in prima nota
|
||
|
$("input[id*=dare][value!=''], input[id*=avere][value!='']").keyup();
|
||
|
|
||
|
$("select[id*=idconto]").click( function(){
|
||
|
$("input[id*=dare][value!=''], input[id*=avere][value!='']").keyup();
|
||
|
});
|
||
|
});
|
||
|
</script>
|
||
|
</form>
|
||
|
|
||
|
|
||
|
<form action="" method="post" role="form" id="form-delete">
|
||
|
<input type="hidden" name="backto" value="record-list">
|
||
|
<input type="hidden" name="op" value="delete">
|
||
|
<input type="hidden" name="idmastrino" value="<?php echo $records[0]['idmastrino'] ?>">
|
||
|
</form>
|
||
|
|
||
|
|
||
|
<script>
|
||
|
$('.showcase.sweet button').on('click', () => {
|
||
|
swal({
|
||
|
title: 'Sei sicuro?',
|
||
|
text: "Eliminare questo elemento!",
|
||
|
type: 'warning',
|
||
|
showCancelButton: true,
|
||
|
confirmButtonColor: '#3085d6',
|
||
|
cancelButtonColor: '#d33',
|
||
|
confirmButtonText: 'Conferma!'
|
||
|
}).then((result) => {
|
||
|
if (result.value) {
|
||
|
{ $('#form-delete').submit(); }
|
||
|
}
|
||
|
})
|
||
|
})
|
||
|
</script>
|