|
303 | 303 | $id_tipo = $tipi->sort()->keys()->last(); |
304 | 304 |
|
305 | 305 | // Ricerca del conto più utilizzato |
306 | | - $conti = $righe->groupBy(fn ($item, $key) => $item->idconto)->transform(fn ($item, $key) => $item->count()); |
307 | | - $id_conto = $conti->sort()->keys()->last(); |
308 | | - $conto = $database->fetchOne('SELECT * FROM co_pianodeiconti3 WHERE id = '.prepare($id_conto)); |
| 306 | + // Filtro le righe che hanno un conto valido (maggiore di 0) |
| 307 | + $righe_con_conto = $righe->filter(fn ($item) => !empty($item->idconto) && $item->idconto > 0); |
| 308 | + |
| 309 | + $conto = null; |
| 310 | + if ($righe_con_conto->isNotEmpty()) { |
| 311 | + $conti = $righe_con_conto->groupBy(fn ($item, $key) => $item->idconto)->transform(fn ($item, $key) => $item->count()); |
| 312 | + $id_conto = $conti->sort()->keys()->last(); |
| 313 | + $conto = $database->fetchOne('SELECT * FROM co_pianodeiconti3 WHERE id = '.prepare($id_conto)); |
| 314 | + } |
309 | 315 |
|
310 | 316 | // Ricerca dell'IVA più utilizzata secondo percentuali |
311 | 317 | $iva = []; |
312 | | - $percentuali_iva = $righe->groupBy(fn ($item, $key) => $item->aliquota->percentuale); |
| 318 | + // Filtro le righe che hanno un'aliquota IVA valida |
| 319 | + $righe_con_iva = $righe->filter(fn ($item) => !empty($item->idiva) && $item->idiva > 0 && !empty($item->aliquota)); |
| 320 | + $percentuali_iva = $righe_con_iva->groupBy(fn ($item, $key) => $item->aliquota->percentuale); |
313 | 321 | foreach ($percentuali_iva as $key => $values) { |
314 | 322 | $aliquote = $values->mapToGroups(fn ($item, $key) => [$item->aliquota->id => $item->aliquota]); |
315 | 323 | $id_aliquota = $aliquote->map(fn ($item, $key) => $item->count())->sort()->keys()->last(); |
|
321 | 329 | ]; |
322 | 330 | } |
323 | 331 |
|
324 | | - echo json_encode([ |
| 332 | + $response = [ |
325 | 333 | 'id_tipo' => $id_tipo, |
326 | | - 'conto' => [ |
| 334 | + 'iva' => $iva, |
| 335 | + ]; |
| 336 | + |
| 337 | + // Aggiungo il conto solo se è stato trovato |
| 338 | + if (!empty($conto)) { |
| 339 | + $response['conto'] = [ |
327 | 340 | 'id' => $conto['id'], |
328 | 341 | 'descrizione' => $conto['descrizione'], |
329 | | - ], |
330 | | - 'iva' => $iva, |
331 | | - ]); |
| 342 | + ]; |
| 343 | + } |
| 344 | + |
| 345 | + echo json_encode($response); |
332 | 346 | break; |
333 | 347 |
|
334 | 348 | case 'riferimenti-automatici': |
|
0 commit comments