FIX: Venta desistida pero sin resciliacion

This commit is contained in:
Juan Pablo Vial
2025-07-18 16:15:30 -04:00
parent 56505fe519
commit 3ce41914e5
2 changed files with 23 additions and 4 deletions

View File

@ -54,15 +54,16 @@
} }
$(document).ready(() => { $(document).ready(() => {
const url = '{{$urls->api}}/ventas/pago/{{$venta->resciliacion()->id}}' const url = '{{$urls->api}}/ventas/pago/{{$venta->resciliacion()->id}}'
let old = new Date({{$venta->resciliacion()?->fecha->format('Y') ?? date('Y')}}, let old = new Date(Date.parse('{{$venta->resciliacion()?->fecha->format('Y-m-d') ?? $venta->currentEstado()->fecha->format('Y-m-d') ?? $venta->fecha->format('Y-m-d')}}') + 24 * 60 * 60 * 1000)
{{$venta->resciliacion()?->fecha->format('n') ?? date('n')}}-1, {{$venta->resciliacion()?->fecha->format('j') ?? date('j')}})
calendar_date_options['initialDate'] = old calendar_date_options['initialDate'] = old
calendar_date_options['onChange'] = function(date, text, mode) { calendar_date_options['onChange'] = function(date, text, mode) {
if (date.getTime() === old.getTime()) { if (date.getTime() === old.getTime()) {
return return
} }
const body = new FormData() const body = new FormData()
body.set('fecha', date.toISOString()) const fecha = date
fecha.setDate(date.getDate() - 1)
body.set('fecha', fecha.toISOString())
$('#loading-spinner-fecha').show() $('#loading-spinner-fecha').show()
APIClient.fetch(url, {method: 'post', body}).then(response => { APIClient.fetch(url, {method: 'post', body}).then(response => {
$('#loading-spinner-fecha').hide() $('#loading-spinner-fecha').hide()

View File

@ -4,6 +4,9 @@ namespace Incoviba\Controller;
use Incoviba\Common\Alias\View; use Incoviba\Common\Alias\View;
use Incoviba\Common\Implement\Exception\EmptyRedis; use Incoviba\Common\Implement\Exception\EmptyRedis;
use Incoviba\Common\Implement\Exception\EmptyResult; use Incoviba\Common\Implement\Exception\EmptyResult;
use Incoviba\Exception\ServiceAction\Create;
use Incoviba\Exception\ServiceAction\Read;
use Incoviba\Exception\ServiceAction\Update;
use Incoviba\Model; use Incoviba\Model;
use Incoviba\Repository; use Incoviba\Repository;
use Incoviba\Service; use Incoviba\Service;
@ -142,9 +145,24 @@ class Ventas
return $view->render($response, 'ventas.desistir', compact('venta')); return $view->render($response, 'ventas.desistir', compact('venta'));
} }
public function desistida(ServerRequestInterface $request, ResponseInterface $response, Service\Venta $ventaService, public function desistida(ServerRequestInterface $request, ResponseInterface $response, Service\Venta $ventaService,
Service\Venta\Pago $pagoService,
View $view, int $venta_id): ResponseInterface View $view, int $venta_id): ResponseInterface
{ {
$venta = $ventaService->getById($venta_id); try {
$venta = $ventaService->getById($venta_id);
} catch (Read) {
return $view->render($response->withStatus(404), 'not_found');
}
if ($venta->resciliacion() === null) {
$pagoData = [
'fecha' => $venta->currentEstado()->fecha->format('Y-m-d'),
'valor' => 0
];
try {
$pago = $pagoService->add($pagoData);
$ventaService->edit($venta, ['resciliacion' => $pago->id]);
} catch (Create | Update) {}
}
return $view->render($response, 'ventas.desistida', compact('venta')); return $view->render($response, 'ventas.desistida', compact('venta'));
} }
} }