diff --git a/app/src/Repository/Venta/Cuota.php b/app/src/Repository/Venta/Cuota.php index b9d87ab..9e3de82 100644 --- a/app/src/Repository/Venta/Cuota.php +++ b/app/src/Repository/Venta/Cuota.php @@ -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