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' ;
2024-02-16 16:32:19 +01:00
use Modules\Pagamenti\Pagamento ;
2017-08-04 16:28:16 +02:00
switch ( filter ( 'op' )) {
case 'update' :
$descrizione = filter ( 'descrizione' );
if ( isset ( $descrizione )) {
2018-07-19 15:33:32 +02:00
foreach ( post ( 'id' ) as $key => $id ) {
2017-08-04 16:28:16 +02:00
// Data fatturazione
$giorno = 0 ;
2024-03-06 17:26:58 +01:00
$pagamento = Pagamento :: find ( $id );
2017-08-04 16:28:16 +02:00
// Data fatturazione fine mese
2018-07-19 15:33:32 +02:00
if ( post ( 'scadenza' )[ $key ] == 2 ) {
2017-08-04 16:28:16 +02:00
$giorno = - 1 ;
}
// Data fatturazione giorno fisso
2018-07-19 15:33:32 +02:00
if ( post ( 'scadenza' )[ $key ] == 3 ) {
$giorno = post ( 'giorno' )[ $key ];
2017-08-04 16:28:16 +02:00
}
// Data fatturazione fine mese (giorno fisso)
2018-07-19 15:33:32 +02:00
elseif ( post ( 'scadenza' )[ $key ] == 4 ) {
$giorno = - post ( 'giorno' )[ $key ] - 1 ;
2017-08-04 16:28:16 +02:00
}
2024-04-19 16:44:08 +02:00
if ( empty ( $id )) {
2024-03-06 17:26:58 +01:00
$pagamento = Pagamento :: build ( post ( 'codice_modalita_pagamento_fe' ));
2017-08-04 16:28:16 +02:00
}
2024-04-19 16:44:08 +02:00
if ( Models\Locale :: getDefault () -> id == Models\Locale :: getPredefined () -> id ) {
$pagamento -> name = $descrizione ;
2024-04-23 09:56:36 +02:00
}
2024-04-19 16:44:08 +02:00
$pagamento -> num_giorni = post ( 'distanza' )[ $key ];
$pagamento -> giorno = $giorno ;
$pagamento -> prc = post ( 'percentuale' )[ $key ];
$pagamento -> idconto_vendite = post ( 'idconto_vendite' ) ? : null ;
$pagamento -> idconto_acquisti = post ( 'idconto_acquisti' ) ? : null ;
$pagamento -> setTranslation ( 'title' , $descrizione );
$pagamento -> save ();
2017-08-04 16:28:16 +02:00
}
2024-03-22 15:52:24 +01:00
2018-07-19 17:29:21 +02:00
flash () -> info ( tr ( 'Salvataggio completato!' ));
2017-08-04 16:28:16 +02:00
} else {
2018-07-19 17:29:21 +02:00
flash () -> error ( tr ( 'Ci sono stati alcuni errori durante il salvataggio!' ));
2017-08-04 16:28:16 +02:00
}
break ;
case 'add' :
$descrizione = filter ( 'descrizione' );
2018-10-25 16:57:39 +02:00
$codice_modalita_pagamento_fe = filter ( 'codice_modalita_pagamento_fe' );
2017-08-04 16:28:16 +02:00
if ( isset ( $descrizione )) {
2024-04-18 17:44:05 +02:00
$id_pagamento = ( new Pagamento ()) -> getByField ( 'title' , $descrizione );
2017-08-04 16:28:16 +02:00
2024-02-22 17:03:48 +01:00
if ( $id_pagamento ) {
2024-02-16 16:32:19 +01:00
flash () -> error ( tr ( 'Esiste già un metodo di pagamento con questo nome!' ));
} else {
2024-03-06 17:26:58 +01:00
$pagamento = Pagamento :: build ( $codice_modalita_pagamento_fe );
2024-04-19 16:44:08 +02:00
if ( Models\Locale :: getDefault () -> id == Models\Locale :: getPredefined () -> id ) {
$pagamento -> name = $descrizione ;
2024-04-23 09:56:36 +02:00
}
2024-03-22 15:52:24 +01:00
$id_record = $dbo -> lastInsertedID ();
2024-04-18 17:44:05 +02:00
$pagamento -> setTranslation ( 'title' , $descrizione );
2024-03-06 17:26:58 +01:00
$pagamento -> save ();
2024-02-16 16:32:19 +01:00
flash () -> info ( tr ( 'Aggiunta nuova tipologia di _TYPE_' , [
'_TYPE_' => 'pagamento' ,
]));
}
2017-08-04 16:28:16 +02:00
}
break ;
case 'delete' :
2018-03-28 17:04:10 +02:00
if ( ! empty ( $id_record )) {
2024-03-06 17:26:58 +01:00
$descrizione = filter ( 'descrizione' );
2024-04-18 17:44:05 +02:00
$dbo -> query ( 'DELETE FROM `co_pagamenti` WHERE `id` IN (SELECT `id_record` FROM `co_pagamenti_lang` WHERE `title` = ' . prepare ( $descrizione ) . ')' );
$dbo -> query ( 'DELETE FROM `co_pagamenti_lang` WHERE `title` = ' . prepare ( $descrizione ));
2024-03-06 17:26:58 +01:00
2018-03-28 17:04:10 +02:00
$dbo -> query ( 'DELETE FROM `co_pagamenti` WHERE `id`=' . prepare ( $id_record ));
2018-07-07 13:56:22 +02:00
2018-07-19 17:29:21 +02:00
flash () -> info ( tr ( 'Tipologia di _TYPE_ eliminata con successo!' , [
2017-09-10 14:35:41 +02:00
'_TYPE_' => 'pagamento' ,
2018-07-07 13:56:22 +02:00
]));
2017-08-04 16:28:16 +02:00
}
break ;
case 'delete_rata' :
$id = filter ( 'id' );
if ( isset ( $id )) {
$dbo -> query ( 'DELETE FROM `co_pagamenti` WHERE `id`=' . prepare ( $id ));
2018-07-19 17:29:21 +02:00
flash () -> info ( tr ( 'Elemento eliminato con successo!' ));
2017-08-04 16:28:16 +02:00
if ( $id_record == $id ) {
2024-04-18 17:44:05 +02:00
$res = $dbo -> fetchArray ( 'SELECT * FROM `co_pagamenti` LEFT JOIN `co_pagamenti_lang` WHERE `co_pagamenti`.`id`!=' . prepare ( $id ) . ' AND `title`=' . prepare ( $record [ 'descrizione' ]));
2017-08-04 16:28:16 +02:00
if ( count ( $res ) != 0 ) {
2020-09-23 17:53:19 +02:00
redirect ( base_path () . '/editor.php?id_module=' . $id_module . '&id_record=' . $res [ 0 ][ 'id' ]);
2017-08-04 16:28:16 +02:00
} else {
// $_POST['backto'] = 'record-list';
2020-09-23 17:53:19 +02:00
redirect ( base_path () . '/controller.php?id_module=' . $id_module );
2017-08-04 16:28:16 +02:00
}
}
}
break ;
}