Cuando no tiene resultados en cuotas, entregar vacio

This commit is contained in:
2023-10-19 18:58:48 -03:00
parent 02e1f3e091
commit 850a475ef6

View File

@ -3,6 +3,7 @@ namespace Incoviba\Controller\API\Ventas;
use DateTimeImmutable; use DateTimeImmutable;
use DateInterval; use DateInterval;
use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Controller\API\withJson; use Incoviba\Controller\API\withJson;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
@ -15,44 +16,52 @@ class Cuotas
public function hoy(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Cuota $cuotaRepository): ResponseInterface public function hoy(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Cuota $cuotaRepository): ResponseInterface
{ {
$output = [ $output = [
'cuotas' => count($cuotaRepository->fetchHoy()) ?? 0 'cuotas' => 0
]; ];
try {
$output['cuotas'] = count($cuotaRepository->fetchHoy());
} catch (EmptyResult) {}
return $this->withJson($response, $output); return $this->withJson($response, $output);
} }
public function pendiente(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Cuota $cuotaRepository): ResponseInterface public function pendiente(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Cuota $cuotaRepository): ResponseInterface
{ {
$output = [ $output = [
'cuotas' => count($cuotaRepository->fetchPendientes()) ?? 0 'cuotas' => 0
]; ];
try {
$output['cuotas'] = count($cuotaRepository->fetchPendientes());
} catch (EmptyResult) {}
return $this->withJson($response, $output); return $this->withJson($response, $output);
} }
public function porVencer(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Cuota $cuotaRepository, Service\Format $formatService): ResponseInterface public function porVencer(ServerRequestInterface $request, ResponseInterface $response, Repository\Venta\Cuota $cuotaRepository, Service\Format $formatService): ResponseInterface
{ {
$cuotas = $cuotaRepository->fetchDatosPorVencer();
$output = []; $output = [];
foreach ($cuotas as $row) { try {
$fecha = $row['Fecha']; $cuotas = $cuotaRepository->fetchDatosPorVencer();
$date = new DateTimeImmutable($fecha); foreach ($cuotas as $row) {
if (($weekday = $date->format('N')) > 5) { $fecha = $row['Fecha'];
$day_diff = 7 - $weekday + 1; $date = new DateTimeImmutable($fecha);
$date = $date->add(new DateInterval("P{$day_diff}D")); if (($weekday = $date->format('N')) > 5) {
$fecha = $date->format('Y-m-d'); $day_diff = 7 - $weekday + 1;
$date = $date->add(new DateInterval("P{$day_diff}D"));
$fecha = $date->format('Y-m-d');
}
$key = $formatService->localDate($fecha, "EEE. dd 'de' MMMM 'de' yyyy", true);
if (!isset($output[$key])) {
$output[$key] = [];
}
if (!isset($output[$key][$row['Proyecto']])) {
$output[$key][$row['Proyecto']] = 0;
}
$output[$key][$row['Proyecto']] += $row['Cantidad'];
} }
$key = $formatService->localDate($fecha, "EEE. dd 'de' MMMM 'de' yyyy", true); foreach ($output as $key => $day) {
if (!isset($output[$key])) { uksort($day, function($a, $b) {
$output[$key] = []; return strcmp($a, $b);
});
$output[$key] = $day;
} }
if (!isset($output[$key][$row['Proyecto']])) { } catch (EmptyResult) {}
$output[$key][$row['Proyecto']] = 0;
}
$output[$key][$row['Proyecto']] += $row['Cantidad'];
}
foreach ($output as $key => $day) {
uksort($day, function($a, $b) {
return strcmp($a, $b);
});
$output[$key] = $day;
}
return $this->withJson($response, ['cuotas' => $output]); return $this->withJson($response, ['cuotas' => $output]);
} }
} }