2017-08-04 16:28:16 +02:00
< ? php
include_once __DIR__ . '/../../core.php' ;
switch ( post ( 'op' )) {
2019-04-19 17:29:54 +02:00
case 'add' :
2019-05-04 00:32:28 +02:00
$data = post ( 'data' );
$tipo = post ( 'tipo' );
$da_pagare = post ( 'da_pagare' );
$descrizione = post ( 'descrizione' );
2019-04-19 17:29:54 +02:00
2019-07-31 18:22:35 +02:00
$dbo -> query ( 'INSERT INTO co_scadenziario(descrizione, tipo, data_emissione, scadenza, da_pagare, pagato) VALUES(' . prepare ( $descrizione ) . ', ' . prepare ( $tipo ) . ', CURDATE(), ' . prepare ( $data ) . ', ' . prepare ( - $da_pagare ) . " , '0') " );
2019-04-19 17:29:54 +02:00
$id_record = $dbo -> lastInsertedID ();
2019-05-04 00:32:28 +02:00
2019-04-19 17:29:54 +02:00
flash () -> info ( tr ( 'Scadenza inserita!' ));
break ;
2017-08-04 16:28:16 +02:00
case 'update' :
2019-07-25 18:05:47 +02:00
$tipo = post ( 'tipo' );
$descrizione = post ( 'descrizione' );
$iddocumento = post ( 'iddocumento' ) ? : 0 ;
2017-08-04 16:28:16 +02:00
// Calcolo il totale da pagare
2019-07-25 18:05:47 +02:00
$scadenza = $dbo -> fetchOne ( 'SELECT SUM(da_pagare) AS totale_da_pagare, iddocumento FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento=(SELECT iddocumento FROM co_scadenziario s WHERE id=' . prepare ( $id_record ) . ')' );
$totale_da_pagare = sum ( $scadenza [ 'totale_da_pagare' ], null );
2017-08-04 16:28:16 +02:00
2019-04-19 17:42:16 +02:00
// Verifico se il totale sommato è uguale al totale da pagare (solo per le scadenze delle fatture)
2019-09-28 11:12:11 +02:00
$totale_utente = 0 ;
2019-07-25 18:05:47 +02:00
foreach ( post ( 'da_pagare' ) as $id_scadenza => $da_pagare ) {
2018-11-30 16:10:15 +01:00
$totale_utente = sum ( $totale_utente , $da_pagare );
2017-08-04 16:28:16 +02:00
}
2019-09-28 11:25:20 +02:00
$totale_pagato = 0 ;
$id_scadenza_non_completa = null ;
2020-01-14 22:18:52 +01:00
foreach ( post ( 'da_pagare' ) as $id => $da_pagare ) {
$pagato = post ( 'pagato' )[ $id ];
$scadenza = post ( 'scadenza' )[ $id ];
$data_concordata = post ( 'data_concordata' )[ $id ];
$pagato = floatval ( $pagato );
$da_pagare = floatval ( $da_pagare );
$totale_pagato = sum ( $totale_pagato , $pagato );
$id_scadenza = post ( 'id_scadenza' )[ $id ];
if ( ! empty ( $id_scadenza )) {
$database -> update ( 'co_scadenziario' , [
'descrizione' => $descrizione ,
'da_pagare' => $da_pagare ,
'pagato' => $pagato ,
'scadenza' => $scadenza ,
'data_concordata' => $data_concordata ,
], [ 'id' => $id_scadenza ]);
if ( $da_pagare == 0 ) {
$database -> delete ( 'co_scadenziario' , [ 'id' => $id ]);
2019-09-28 11:25:20 +02:00
}
2020-01-14 22:18:52 +01:00
} else {
$database -> insert ( 'co_scadenziario' , [
'descrizione' => $descrizione ,
'tipo' => $tipo ,
'iddocumento' => $iddocumento ,
'da_pagare' => $da_pagare ,
'pagato' => $pagato ,
'scadenza' => $scadenza ,
'data_concordata' => $data_concordata ,
'data_emissione' => date ( 'Y-m-d' ),
]);
$id_scadenza = $database -> lastInsertedID ();
}
2019-09-28 11:25:20 +02:00
2020-01-14 22:18:52 +01:00
if ( $pagato != $da_pagare ) {
$id_scadenza_non_completa = $id_scadenza ;
2017-08-04 16:28:16 +02:00
}
2020-01-14 22:18:52 +01:00
}
2017-08-04 16:28:16 +02:00
2020-01-14 22:18:52 +01:00
flash () -> info ( tr ( 'Scadenze aggiornate!' ));
2019-09-28 11:25:20 +02:00
2020-01-14 22:18:52 +01:00
if ( $totale_pagato == $totale_da_pagare ) {
flash () -> warning ( tr ( 'Le scadenze sono state completate!' ));
2019-09-28 11:25:20 +02:00
2020-01-14 22:18:52 +01:00
redirect ( ROOTDIR . '/controller.php?id_module=' . $id_module );
Filter :: set ( 'post' , 'backto' , null );
2017-08-04 16:28:16 +02:00
} else {
2020-01-14 22:18:52 +01:00
$id_record = $id_scadenza_non_completa ;
}
if ( $totale_da_pagare != $totale_utente ) {
flash () -> error ( tr ( 'ATTENZIONE: il totale degli importi inseriti non corrisponde al totale da pagare!' ));
2017-08-04 16:28:16 +02:00
}
break ;
2019-04-19 17:29:54 +02:00
2019-05-04 00:32:28 +02:00
case 'delete' :
2019-04-19 17:29:54 +02:00
$dbo -> query ( " DELETE FROM co_scadenziario WHERE id=' " . $id_record . " ' " );
flash () -> info ( tr ( 'Scadenza eliminata!' ));
break ;
2017-08-04 16:28:16 +02:00
}