2017-08-04 16:28:16 +02:00
< ? php
2020-09-07 15:04:06 +02:00
/*
* OpenSTAManager : il software gestionale open source per l ' assistenza tecnica e la fatturazione
2021-01-20 15:08:51 +01:00
* Copyright ( C ) DevCode s . r . l .
2020-09-07 15:04:06 +02:00
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < https :// www . gnu . org / licenses />.
*/
2017-08-04 16:28:16 +02:00
include_once __DIR__ . '/../../core.php' ;
2018-02-23 16:04:50 +01:00
?> <form action="" method="post" id="edit-form">
2017-08-04 16:28:16 +02:00
< input type = " hidden " name = " backto " value = " record-edit " >
< input type = " hidden " name = " op " value = " update " >
<!-- DATI -->
< div class = " panel panel-primary " >
< div class = " panel-heading " >
2018-02-18 19:53:23 +01:00
< h3 class = " panel-title " >< ? php echo tr ( 'Dati' ); ?> </h3>
2017-08-04 16:28:16 +02:00
</ div >
< div class = " panel-body " >
< div class = " row " >
2018-10-04 17:37:28 +02:00
< div class = " col-md-6 " >
2018-10-24 19:08:11 +02:00
{[ " type " : " text " , " label " : " <?php echo tr('Descrizione'); ?> " , " name " : " descrizione " , " value " : " $descrizione $ " , " required " : 1 ]}
2017-09-13 13:05:35 +02:00
</ div >
2019-05-08 11:19:33 +02:00
< div class = " col-md-4 " >
2018-10-24 19:08:11 +02:00
{[ " type " : " select " , " label " : " <?php echo tr('Codice Modalità (Fatturazione Elettronica)'); ?> " , " name " : " codice_modalita_pagamento_fe " , " value " : " $codice_modalita_pagamento_fe $ " , " values " : " query=SELECT codice as id, CONCAT(codice, ' - ', descrizione) AS descrizione FROM fe_modalita_pagamento " , " required " : 1 ]}
2018-10-04 17:37:28 +02:00
</ div >
2019-05-08 11:19:33 +02:00
< div class = " col-md-2 " >
2020-11-04 18:31:43 +01:00
{[ " type " : " checkbox " , " label " : " <?php echo tr('Pagamento di tipo Ri.Ba.'); ?> " , " name " : " riba " , " value " : " $riba $ " , " help " : " <?php echo tr('Abilitando questa impostazione, nelle fatture verrà visualizzata la banca della controparte'); ?> " ]}
2019-05-08 11:19:33 +02:00
</ div >
2018-10-04 17:37:28 +02:00
</ div >
< div class = " row " >
< div class = " col-md-6 " >
2018-08-11 15:49:46 +02:00
{[ " type " : " select " , " label " : " <?php echo tr('Conto predefinito per le vendite'); ?> " , " name " : " idconto_vendite " , " value " : " $idconto_vendite $ " , " ajax-source " : " conti " ]}
2017-09-13 13:05:35 +02:00
</ div >
2018-10-04 17:37:28 +02:00
< div class = " col-md-6 " >
2018-08-11 15:49:46 +02:00
{[ " type " : " select " , " label " : " <?php echo tr('Conto predefinito per gli acquisti'); ?> " , " name " : " idconto_acquisti " , " value " : " $idconto_acquisti $ " , " ajax-source " : " conti " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ div >
</ div >
< div class = " panel panel-primary " >
< div class = " panel-heading " >
2018-02-18 19:53:23 +01:00
< h3 class = " panel-title " >< ? php echo tr ( 'Rate' ); ?> </h3>
2017-08-04 16:28:16 +02:00
</ div >
< div class = " panel-body " >
2020-10-11 09:46:38 +02:00
< div id = " elenco-rate " >
2017-08-04 16:28:16 +02:00
< ? php
2020-10-11 09:46:38 +02:00
$giorni_pagamento = [];
2017-08-04 16:28:16 +02:00
for ( $i = 1 ; $i <= 31 ; ++ $i ) {
2020-10-11 09:46:38 +02:00
$giorni_pagamento [] = [
'id' => $i ,
'text' => $i ,
];
2017-08-04 16:28:16 +02:00
}
2020-10-11 09:46:38 +02:00
$tipi_scadenza_pagamento = [
[
'id' => 1 ,
'text' => tr ( 'Data fatturazione' ),
],
[
'id' => 2 ,
'text' => tr ( 'Data fatturazione fine mese' ),
],
[
'id' => 3 ,
'text' => tr ( 'Data fatturazione giorno fisso' ),
],
[
'id' => 4 ,
'text' => tr ( 'Data fatturazione fine mese (giorno fisso)' ),
],
];
2018-07-18 15:20:10 +02:00
$results = $dbo -> fetchArray ( 'SELECT * FROM `co_pagamenti` WHERE descrizione=' . prepare ( $record [ 'descrizione' ]) . ' ORDER BY `num_giorni` ASC' );
2020-10-11 09:46:38 +02:00
$numero_rata = 1 ;
2017-08-04 16:28:16 +02:00
foreach ( $results as $result ) {
2020-10-11 09:46:38 +02:00
$tipo_scadenza_pagamento = 3 ;
if ( $result [ 'giorno' ] == 0 ) {
$tipo_scadenza_pagamento = 1 ;
} elseif ( $result [ 'giorno' ] == - 1 ) {
$tipo_scadenza_pagamento = 2 ;
} elseif ( $result [ 'giorno' ] < - 1 ) {
$tipo_scadenza_pagamento = 4 ;
}
$giorno_pagamento = null ;
if ( $result [ 'giorno' ] != 0 && $result [ 'giorno' ] != - 1 ) {
$giorno_pagamento = ( $result [ 'giorno' ] < - 1 ) ? - $result [ 'giorno' ] - 1 : $result [ 'giorno' ];
}
2017-08-04 16:28:16 +02:00
echo '
< div class = " box box-success " >
< div class = " box-header with-border " >
2017-09-10 14:35:41 +02:00
< h3 class = " box-title " > '.tr(' Rata _NUMBER_ ' , [
2020-10-11 09:46:38 +02:00
'_NUMBER_' => $numero_rata ,
2017-09-10 14:35:41 +02:00
]) . ' </ h3 >
2020-10-11 09:46:38 +02:00
< button type = " button " class = " btn btn-danger pull-right " onclick = " rimuoviRata('. $result['id'] .') " >
< i class = " fa fa-trash " ></ i > '.tr(' Elimina ').'
</ button >
2017-08-04 16:28:16 +02:00
</ div >
< div class = " box-body " >
2020-10-11 09:46:38 +02:00
< input type = " hidden " value = " '. $result['id'] .' " name = " id['. $numero_rata .'] " >
2017-08-04 16:28:16 +02:00
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-11 09:46:38 +02:00
{[ " type " : " number " , " label " : " '.tr('Percentuale').' " , " name " : " percentuale['. $numero_rata .'] " , " decimals " : " 2 " , " min-value " : " 0 " , " value " : " '. $result['prc'] .' " , " icon-after " : " <i class= \" fa fa-percent \" ></i> " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-11 09:46:38 +02:00
{[ " type " : " select " , " label " : " '.tr('Scadenza').' " , " name " : " scadenza['. $numero_rata .'] " , " values " : '.json_encode($tipi_scadenza_pagamento).' , " value " : " '. $tipo_scadenza_pagamento .' " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-11 09:46:38 +02:00
{[ " type " : " select " , " label " : " '.tr('Giorno').' " , " name " : " giorno['. $numero_rata .'] " , " values " : '.json_encode($giorni_pagamento).' , " value " : " '. $giorno_pagamento .' " , " extra " : " ';
2017-08-04 16:28:16 +02:00
if ( $result [ 'giorno' ] == 0 || $result [ 'giorno' ] == - 1 ) {
echo ' disabled' ;
}
echo ' " ]}
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-11 09:46:38 +02:00
{[ " type " : " number " , " label " : " '.tr('Distanza in giorni').' " , " name " : " distanza['. $numero_rata .'] " , " decimals " : " 0 " , " min-value " : " 0 " , " value " : " '. $result['num_giorni'] .' " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ div >
</ div > ' ;
2020-10-11 09:46:38 +02:00
++ $numero_rata ;
2017-08-04 16:28:16 +02:00
}
?>
</ div >
2020-10-11 09:46:38 +02:00
2017-08-04 16:28:16 +02:00
< div class = " pull-right " >
2020-10-11 09:46:38 +02:00
< button type = " button " class = " btn btn-info " onclick = " aggiungiRata() " >
< i class = " fa fa-plus " ></ i > < ? php echo tr ( 'Aggiungi' ); ?>
</ button >
< button type = " submit " class = " btn btn-success " >
< i class = " fa fa-check " ></ i > < ? php echo tr ( 'Salva' ); ?>
</ button >
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ div >
</ form >
< div class = " box box-warning box-solid text-center hide " id = " wait " >
< div class = " box-header with-border " >
2020-10-11 09:46:38 +02:00
< h3 class = " box-title " >
< i class = " fa fa-warning " ></ i > < ? php echo tr ( 'Attenzione!' ); ?>
</ h3 >
2017-08-04 16:28:16 +02:00
</ div >
< div class = " box-body " >
2017-09-04 12:02:29 +02:00
< p >< ? php echo tr ( 'Prima di poter continuare con il salvataggio è necessario che i valori percentuali raggiungano in totale il 100%' ); ?> .</p>
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< a class = " btn btn-danger ask " data - backto = " record-list " >
2017-09-04 12:02:29 +02:00
< i class = " fa fa-trash " ></ i > < ? php echo tr ( 'Elimina' ); ?>
2017-08-04 16:28:16 +02:00
</ a >
< ? php
echo '
< form class = " hide " id = " template " >
< div class = " box " >
< div class = " box-header with-border " >
2017-09-04 12:02:29 +02:00
< h3 class = " box-title " > '.tr(' Nuova rata ').' </ h3 >
2017-08-04 16:28:16 +02:00
</ div >
< div class = " box-body " >
2020-10-11 09:46:38 +02:00
< input type = " hidden " value = " " name = " id[-id-] " >
2017-08-04 16:28:16 +02:00
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-16 20:24:52 +02:00
{[ " type " : " number " , " label " : " '.tr('Percentuale').' " , " decimals " : " 2 " , " name " : " percentuale[-id-] " , " icon-after " : " <i class= \" fa fa-percent \" ></i> " ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-11 09:46:38 +02:00
{[ " type " : " select " , " label " : " '.tr('Scadenza').' " , " name " : " scadenza[-id-] " , " values " : '.json_encode($tipi_scadenza_pagamento).' , " value " : 1 ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
< div class = " row " >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-11 09:46:38 +02:00
{[ " type " : " select " , " label " : " '.tr('Giorno').' " , " name " : " giorno[-id-] " , " values " : '.json_encode($giorni_pagamento).' ]}
2017-08-04 16:28:16 +02:00
</ div >
2018-02-20 16:46:23 +01:00
< div class = " col-md-6 " >
2020-10-11 09:46:38 +02:00
{[ " type " : " number " , " label " : " '.tr('Distanza in giorni').' " , " name " : " distanza[-id-] " , " decimals " : " 0 " ]}
2017-08-04 16:28:16 +02:00
</ div >
</ div >
</ div >
</ div >
</ form > ' ;
?>
< script >
2020-10-11 09:46:38 +02:00
var indice_rata = " <?php echo $numero_rata ; ?> " ;
2020-07-31 14:25:50 +02:00
$ ( document ) . ready ( function () {
2020-10-11 09:46:38 +02:00
$ ( document ) . on ( " change " , " [id^=scadenza] " , function () {
const giorno = $ ( this ) . parentsUntil ( " .box " ) . find ( " [id*=giorno] " );
const giorno_input = input ( giorno [ 0 ]);
2017-08-04 16:28:16 +02:00
2020-10-11 09:46:38 +02:00
const tipo_scadenza = parseInt ( input ( this ) . get ());
giorno_input . setDisabled ( tipo_scadenza === 1 || tipo_scadenza === 2 );
});
2017-08-04 16:28:16 +02:00
2020-10-11 09:46:38 +02:00
$ ( document ) . on ( " change " , " input[id^=percentuale] " , function () {
controllaRate ();
2017-08-04 16:28:16 +02:00
});
2020-10-11 09:46:38 +02:00
$ ( " #edit-form " ) . submit ( function ( event ) {
const result = controllaRate ();
if ( ! result ) {
event . preventDefault ();
return false ;
2017-08-04 16:28:16 +02:00
}
2018-07-23 11:15:38 +02:00
});
2020-10-11 09:46:38 +02:00
});
function aggiungiRata () {
aggiungiContenuto ( " #elenco-rate " , " #template " , { " -id- " : indice_rata });
indice_rata ++ ;
}
2017-08-04 16:28:16 +02:00
2020-10-11 09:46:38 +02:00
function controllaRate () {
let totale = 0 ;
2017-08-04 16:28:16 +02:00
2020-10-11 09:46:38 +02:00
$ ( " #elenco-rate " ) . find ( " input[id^=percentuale] " ) . each ( function () {
totale += input ( this ) . get ();
});
2017-08-04 16:28:16 +02:00
2020-10-11 09:46:38 +02:00
if ( totale !== 100 ) {
$ ( " #wait " ) . removeClass ( " hide " );
} else {
$ ( " #wait " ) . addClass ( " hide " );
}
2017-08-04 16:28:16 +02:00
2020-10-11 09:46:38 +02:00
return totale === 100 ;
}
function rimuoviRata ( id ) {
if ( confirm ( " <?php echo tr('Eliminare questo elemento?'); ?> " )){
location . href = " <?php echo base_path(); ?>/editor.php?id_module=<?php echo $id_module ; ?>&id_record=<?php echo $id_record ; ?>&op=delete_rata&id= " + id ;
}
}
2017-08-04 16:28:16 +02:00
</ script >