Modernizacion de repo Cuota
This commit is contained in:
@ -74,69 +74,96 @@ class Cuota extends Ideal\Repository
|
||||
|
||||
public function fetchHoy(): array
|
||||
{
|
||||
$query = "SELECT a.*
|
||||
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`
|
||||
WHERE tep.`descripcion` = 'no pagado' AND `pago`.`fecha` = CURDATE()
|
||||
AND tev.`descripcion` IN ('vigente', 'escriturando', 'firmado por inmobiliaria')";
|
||||
return $this->fetchMany($query);
|
||||
$query = $this->connection->getQueryBuilder()
|
||||
->select('a.*')
|
||||
->from("{$this->getTable()} a")
|
||||
->joined('JOIN pago ON pago.id = a.pago')
|
||||
->joined('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')
|
||||
->joined('JOIN tipo_estado_pago tep ON tep.id = ep.estado')
|
||||
->joined('JOIN venta ON venta.pie = a.pie')
|
||||
->joined('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')
|
||||
->joined('JOIN tipo_estado_venta tev ON tev.id = ev.estado')
|
||||
->where('tep.descripcion = ?')
|
||||
->where('pago.fecha = CURDATE()')
|
||||
->where('tev.descripcion IN (?, ?, ?)');
|
||||
return $this->fetchMany($query, ['no pagado', 'vigente', 'escriturando', 'firmado por inmobiliaria']);
|
||||
}
|
||||
public function fetchPendientes(): array
|
||||
{
|
||||
$query = "SELECT a.`id` AS 'cuota_id', `venta`.`id` AS 'venta_id', `proyecto`.`descripcion` AS 'Proyecto', `unidad`.`descripcion` AS 'Departamento',
|
||||
`pago`.`valor` AS 'Valor', `pago`.`fecha`, CONCAT_WS(' - ', a.`numero`, `pie`.`cuotas`) AS 'Numero', `banco`.`nombre` AS 'Banco',
|
||||
CONCAT_WS(' ', `propietario`.`nombres`, `propietario`.`apellido_paterno`, `propietario`.`apellido_materno`) AS 'Propietario'
|
||||
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 `pie` ON `pie`.`id` = a.`pie`
|
||||
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 `propietario` ON `propietario`.`rut` = `venta`.`propietario`
|
||||
JOIN `propiedad_unidad` pu ON pu.`propiedad` = `venta`.`propiedad`
|
||||
JOIN `unidad` ON `unidad`.`id` = pu.`unidad` AND pu.`principal` = 1
|
||||
JOIN `proyecto_tipo_unidad` ptu ON ptu.`id` = `unidad`.`pt`
|
||||
JOIN `proyecto` ON `proyecto`.`id` = ptu.`proyecto`
|
||||
JOIN `banco` ON `banco`.`id` = `pago`.`banco`
|
||||
WHERE tep.`descripcion` = 'no pagado' AND `pago`.`fecha` < CURDATE()
|
||||
AND tev.`descripcion` IN ('vigente', 'escriturando', 'firmado por inmobiliaria')
|
||||
ORDER BY `pago`.`fecha` DESC";
|
||||
return $this->fetchAsArray($query);
|
||||
$query = $this->connection->getQueryBuilder()
|
||||
->select(['a.`id` AS cuota_id', 'venta.id AS venta_id', 'proyecto.descripcion AS Proyecto', 'unidad.descripcion AS Departamento',
|
||||
'pago.valor AS Valor', 'pago.fecha', 'CONCAT_WS(" - ", a.numero, pie.cuotas) AS Numero', 'banco.nombre AS Banco',
|
||||
'CONCAT_WS(" ", propietario.nombres, propietario.apellido_paterno, propietario.apellido_materno) AS Propietario'])
|
||||
->from("{$this->getTable()} a")
|
||||
->joined('JOIN pago ON pago.id = a.pago')
|
||||
->joined('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')
|
||||
->joined('JOIN tipo_estado_pago tep ON tep.id = ep.estado')
|
||||
->joined('JOIN pie ON pie.id = a.pie')
|
||||
->joined('JOIN venta ON venta.pie = a.pie')
|
||||
->joined('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')
|
||||
->joined('JOIN tipo_estado_venta tev ON tev.id = ev.estado')
|
||||
->joined('JOIN propietario ON propietario.rut = venta.propietario')
|
||||
->joined('JOIN propiedad_unidad pu ON pu.propiedad = venta.propiedad')
|
||||
->joined('JOIN unidad ON unidad.id = pu.unidad AND pu.principal = 1')
|
||||
->joined('JOIN proyecto_tipo_unidad ptu ON ptu.id = unidad.pt')
|
||||
->joined('JOIN proyecto ON proyecto.id = ptu.proyecto')
|
||||
->joined('JOIN banco ON banco.id = pago.banco')
|
||||
->where('tep.descripcion = ?')
|
||||
->where('pago.fecha < CURDATE()')
|
||||
->where('tev.descripcion IN (?, ?, ?)')
|
||||
->order('pago.fecha DESC');
|
||||
return $this->fetchAsArray($query, ['no pagado', 'vigente', 'escriturando', 'firmado por inmobiliaria']);
|
||||
}
|
||||
public function fetchDepositadas(): array
|
||||
{
|
||||
$query = "SELECT a.`id` AS 'cuota_id', `venta`.`id` AS 'venta_id', `proyecto`.`descripcion` AS 'Proyecto', `unidad`.`descripcion` AS 'Departamento',
|
||||
`pago`.`valor` AS 'Valor', `pago`.`fecha`, CONCAT_WS(' - ', a.`numero`, `pie`.`cuotas`) AS 'Numero', `banco`.`nombre` AS 'Banco', ep.`fecha` AS 'Fecha Depositada',
|
||||
CONCAT_WS(' ', `propietario`.`nombres`, `propietario`.`apellido_paterno`, `propietario`.`apellido_materno`) AS 'Propietario'
|
||||
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 `pie` ON `pie`.`id` = a.`pie`
|
||||
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 `propietario` ON `propietario`.`rut` = `venta`.`propietario`
|
||||
JOIN `propiedad_unidad` pu ON pu.`propiedad` = `venta`.`propiedad`
|
||||
JOIN `unidad` ON `unidad`.`id` = pu.`unidad` AND pu.`principal` = 1
|
||||
JOIN `proyecto_tipo_unidad` ptu ON ptu.`id` = `unidad`.`pt`
|
||||
JOIN `proyecto` ON `proyecto`.`id` = ptu.`proyecto`
|
||||
JOIN `banco` ON `banco`.`id` = `pago`.`banco`
|
||||
WHERE tep.`descripcion` = 'depositado' AND `pago`.`fecha` < CURDATE()
|
||||
AND tev.`descripcion` IN ('vigente', 'escriturando', 'firmado por inmobiliaria')
|
||||
ORDER BY `pago`.`fecha` DESC";
|
||||
return $this->fetchAsArray($query);
|
||||
$query = $this->connection->getQueryBuilder()
|
||||
->select(['a.`id` AS cuota_id', 'venta.id AS venta_id', 'proyecto.descripcion AS Proyecto', 'unidad.descripcion AS Departamento',
|
||||
'pago.valor AS Valor', 'pago.fecha', 'CONCAT_WS(" - ", a.numero, pie.cuotas) AS Numero', 'banco.nombre AS Banco', 'ep.fecha AS Fecha Depositada',
|
||||
'CONCAT_WS(" ", propietario.nombres, propietario.apellido_paterno, propietario.apellido_materno) AS Propietario'])
|
||||
->from("{$this->getTable()} a")
|
||||
->joined('JOIN pago ON pago.id = a.pago')
|
||||
->joined('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')
|
||||
->joined('JOIN tipo_estado_pago tep ON tep.id = ep.estado')
|
||||
->joined('JOIN pie ON pie.id = a.pie')
|
||||
->joined('JOIN venta ON venta.pie = a.pie')
|
||||
->joined('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')
|
||||
->joined('JOIN tipo_estado_venta tev ON tev.id = ev.estado')
|
||||
->joined('JOIN propietario ON propietario.rut = venta.propietario')
|
||||
->joined('JOIN propiedad_unidad pu ON pu.propiedad = venta.propiedad')
|
||||
->joined('JOIN unidad ON unidad.id = pu.unidad AND pu.principal = 1')
|
||||
->joined('JOIN proyecto_tipo_unidad ptu ON ptu.id = unidad.pt')
|
||||
->joined('JOIN proyecto ON proyecto.id = ptu.proyecto')
|
||||
->joined('JOIN banco ON banco.id = pago.banco')
|
||||
->where('tep.descripcion = ?')
|
||||
->where('pago.fecha < CURDATE()')
|
||||
->where('tev.descripcion IN (?, ?, ?)')
|
||||
->order('pago.fecha DESC');
|
||||
return $this->fetchAsArray($query, ['depositado', 'vigente', 'escriturando', 'firmado por inmobiliaria']);
|
||||
}
|
||||
public function fetchDatosPorVencer(): array
|
||||
{
|
||||
$query = "SELECT p1.`fecha` AS 'Fecha', v1.`descripcion` AS 'Proyecto', COUNT(a.`id`) AS 'Cantidad'
|
||||
$query = $this->connection->getQueryBuilder()
|
||||
->select(['p1.`fecha` AS Fecha', 'v1.`descripcion` AS Proyecto', 'COUNT(a.`id`) AS Cantidad'])
|
||||
->from("{$this->getTable()} a")
|
||||
->joined('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` = :tep) p1 ON p1.id = a.`pago`')
|
||||
->joined('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 (:tev1, :tev2, :tev3)
|
||||
JOIN `propiedad_unidad` pu ON pu.`propiedad` = `venta`.`propiedad`
|
||||
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('p1.`fecha`, v1.`descripcion`')
|
||||
->order('p1.`fecha`, v1.`descripcion`');
|
||||
return $this->fetchAsArray($query, ['tep' => 'no pagado', 'tev1' => 'vigente', 'tev2' => 'escriturando', 'tev3' => 'firmado por inmobiliaria']);
|
||||
|
||||
/*$query = "SELECT p1.`fecha` AS 'Fecha', v1.`descripcion` AS 'Proyecto', COUNT(a.`id`) AS 'Cantidad'
|
||||
FROM `{$this->getTable()}` a
|
||||
JOIN (
|
||||
SELECT `pago`.`id`, `pago`.`fecha`
|
||||
@ -150,7 +177,7 @@ FROM `{$this->getTable()}` a
|
||||
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'
|
||||
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`
|
||||
@ -164,7 +191,7 @@ FROM `{$this->getTable()}` a
|
||||
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 `tipo_estado_venta` tev ON tev.`id` = ev.`estado` AND tev.`descripcion` IN (:estados)
|
||||
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`
|
||||
@ -173,27 +200,37 @@ FROM `{$this->getTable()}` a
|
||||
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);
|
||||
return $this->fetchAsArray($query);*/
|
||||
}
|
||||
public function fetchByPie(int $pie_id): array
|
||||
{
|
||||
$query = $this->connection->getQueryBuilder()
|
||||
->select()
|
||||
->from($this->getTable())
|
||||
->where('pie = ?')
|
||||
->where('pie = :pie_id')
|
||||
->group('id');
|
||||
return $this->fetchMany($query, [$pie_id]);
|
||||
return $this->fetchMany($query, compact('pie_id'));
|
||||
}
|
||||
public function fetchVigenteByPie(int $pie_id): array
|
||||
{
|
||||
$query = "SELECT a.*
|
||||
$query = $this->connection->getQueryBuilder()
|
||||
->select('a.*')
|
||||
->from("{$this->getTable()} a")
|
||||
->joined('JOIN pago ON pago.id = a.pago')
|
||||
->joined('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')
|
||||
->joined('JOIN tipo_estado_pago tep ON tep.id = ep.estado')
|
||||
->where('a.pie = :pie_id')
|
||||
->where('tep.active = 1')
|
||||
->group('a.id');
|
||||
return $this->fetchMany($query, compact('pie_id'));
|
||||
/*$query = "SELECT a.*
|
||||
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`
|
||||
WHERE a.`pie` = ? AND tep.`active` = 1
|
||||
GROUP BY a.`id`";
|
||||
return $this->fetchMany($query, [$pie_id]);
|
||||
return $this->fetchMany($query, [$pie_id]);*/
|
||||
}
|
||||
public function fetchByPago(int $pago_id): Model\Venta\Cuota
|
||||
{
|
||||
|
Reference in New Issue
Block a user