Improving cuotas por vencer

This commit is contained in:
2023-10-19 19:39:27 -03:00
parent ada0434caf
commit 742c0327c2

View File

@ -138,22 +138,43 @@ ORDER BY `pago`.`fecha` DESC";
}
public function fetchDatosPorVencer(): array
{
$query = "SELECT `pago`.`fecha` AS 'Fecha', `proyecto`.`descripcion` AS 'Proyecto', COUNT(a.`id`) AS 'Cantidad'
$query = "SELECT p1.`fecha` AS 'Fecha', v1.`descripcion` AS 'Proyecto', COUNT(a.`id`) AS 'Cantidad'
FROM `{$this->getTable()}` a
JOIN `pago` ON `pago`.`id` = a.`pago`
JOIN (SELECT e1.* FROM `estado_pago` e1 JOIN (SELECT MAX(`id`) AS 'id', `pago` FROM `estado_pago` GROUP BY `pago`) e0 ON e0.`id` = e1.`id`) ep ON ep.`pago` = `pago`.`id`
JOIN `tipo_estado_pago` tep ON tep.`id` = ep.`estado`
JOIN `venta` ON `venta`.`pie` = a.`pie`
JOIN (SELECT ev1.* FROM `estado_venta` ev1 JOIN (SELECT MAX(`id`) AS 'id', `venta` FROM `estado_venta` GROUP BY `venta`) ev0 ON ev0.`id` = ev1.`id`) ev ON ev.`venta` = `venta`.`id`
JOIN `tipo_estado_venta` tev ON tev.`id` = ev.`estado`
JOIN `propiedad_unidad` pu ON pu.`propiedad` = `venta`.`propiedad` AND pu.`principal` = 1
JOIN `unidad` ON `unidad`.`id` = pu.`unidad`
JOIN `proyecto_tipo_unidad` ptu ON ptu.`id` = `unidad`.`pt`
JOIN `proyecto` ON `proyecto`.`id` = ptu.`proyecto`
WHERE tep.`descripcion` = 'no pagado' AND `pago`.`fecha` BETWEEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) AND DATE_ADD(CURDATE(), INTERVAL 1 MONTH)
AND tev.`descripcion` IN ('vigente', 'escriturando', 'firmado por inmobiliaria')
GROUP BY `pago`.`fecha`, `proyecto`.`descripcion`
ORDER BY `pago`.`fecha`, `proyecto`.`descripcion`";
JOIN (
SELECT `pago`.`id`, `pago`.`fecha`
FROM `pago`
JOIN (
SELECT e1.*
FROM `estado_pago` e1
JOIN (
SELECT MAX(`id`) AS 'id', `pago`
FROM `estado_pago`
GROUP BY `pago`
) e0 ON e0.`id` = e1.`id`
) ep ON ep.`pago` = `pago`.`id`
JOIN `tipo_estado_pago` tep ON tep.`id` = ep.`estado` AND tep.`descripcion` = 'no pagado'
) p1 ON p1.id = a.`pago`
JOIN (
SELECT `venta`.`pie`, `venta`.`propiedad`, `proyecto`.`descripcion`
FROM `venta`
JOIN (
SELECT ev1.*
FROM `estado_venta` ev1
JOIN (
SELECT MAX(`id`) AS 'id', `venta`
FROM `estado_venta`
GROUP BY `venta`
) ev0 ON ev0.`id` = ev1.`id`
) ev ON ev.`venta` = `venta`.`id`
JOIN `tipo_estado_venta` tev ON tev.`id` = ev.`estado` AND tev.`descripcion` IN ('vigente', 'escriturando', 'firmado por inmobiliaria')
JOIN `propiedad_unidad` pu ON pu.`propiedad` = `venta`.`propiedad` AND pu.`principal` = 1
JOIN `unidad` ON `unidad`.`id` = pu.`unidad`
JOIN `proyecto_tipo_unidad` ptu ON ptu.`id` = `unidad`.`pt`
JOIN `proyecto` ON `proyecto`.`id` = ptu.`proyecto`
) v1 ON v1.`pie` = a.`pie`
WHERE p1.`fecha` BETWEEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) AND DATE_ADD(CURDATE(), INTERVAL 1 MONTH)
GROUP BY p1.`fecha`, v1.`descripcion`
ORDER BY p1.`fecha`, v1.`descripcion`";
return $this->fetchAsArray($query);
}
public function fetchVigenteByPie(int $pie_id): array