.
*/
include_once __DIR__.'/../../core.php';
use Modules\Fatture\Fattura;
function renderRiga($id, $riga, $totale_dare = null, $totale_avere = null)
{
// Conto
echo '
{[ "type": "select", "name": "idconto['.$id.']", "id": "conto'.$id.'", "value": "'.($riga['id_conto'] ?: '').'", "ajax-source": "conti", "icon-after": '.json_encode('').' ]}
| ';
// Dare
echo '
{[ "type": "number", "name": "dare['.$id.']", "id": "dare'.$id.'", "value": "'.($riga['dare'] ?: 0).'" ]}
| ';
// Avere
echo '
{[ "type": "number", "name": "avere['.$id.']", "id": "avere'.$id.'", "value": "'.($riga['avere'] ?: 0).'" ]}
|
';
$totale_dare += ($riga['dare'] ?: 0);
$totale_avere += ($riga['avere'] ?: 0);
}
function renderTabella($nome, $righe, $totale_dare = null, $totale_avere = null)
{
global $counter;
$prima_riga = $righe->first();
$id_documento = $prima_riga ? $prima_riga['iddocumento'] : null;
$id_scadenza = $prima_riga ? $prima_riga['id_scadenza'] : null;
echo '
'.$nome.'
'.tr('Conto').' |
'.tr('Dare').' |
'.tr('Avere').' |
';
foreach ($righe as $riga) {
renderRiga($counter++, $riga);
}
// Totale per controllare sbilancio
echo '
'.tr('Totale').': | ';
// Totale dare
echo '
'.currency().'
| ';
// Totale avere
echo '
'.currency().'
|
';
echo '
';
// Verifica dello sbilancio
echo '
'.tr('Sbilancio di _MONEY_', [
'_MONEY_' => ' '.currency(),
]).'
';
}
$counter = 0;
$movimenti = collect($movimenti);
$totale_dare = 0;
$totale_avere = 0;
// Elenco per documenti
$scadenze = $movimenti
->where('iddocumento', '<>', 0)
->groupBy('iddocumento');
foreach ($scadenze as $id_documento => $righe) {
$documento = Fattura::find($id_documento);
$nome = tr('Documento num. _NUM_', [
'_NUM_' => $documento['numero_esterno'] ?: $documento['numero'],
]);
renderTabella($nome, $righe, $totale_dare, $totale_avere);
}
// Elenco per scadenze
$scadenze = $movimenti
->where('iddocumento', '=', 0)
->where('id_scadenza', '<>', 0)
->groupBy('id_scadenza');
foreach ($scadenze as $id_scadenza => $righe) {
$nome = tr('Scadenza num. _ID_', [
'_ID_' => $id_scadenza,
]);
renderTabella($nome, $righe, $totale_dare, $totale_avere);
}
// Elenco generale
$movimenti_generali = $movimenti
->where('iddocumento', '=', 0)
->where('id_scadenza', '=', 0);
if ($movimenti_generali->isEmpty()) {
$movimenti_generali->push([]);
$movimenti_generali->push([]);
}
$nome = tr('Generale');
renderTabella($nome, $movimenti_generali, $totale_dare, $totale_avere);
// Nuova riga
echo '
';
renderRiga('-id-',
[
'iddocumento' => '-id_documento-',
'id_scadenza' => '-id_scadenza-',
]
);
echo '
';
// Nuova riga
echo '
'.tr('Totale').' |
'.moneyFormat($totale_dare).' |
'.moneyFormat($totale_avere).' |
';
echo '
';