Conecciones de Promociones

This commit is contained in:
Juan Pablo Vial
2025-04-03 13:15:56 -03:00
parent ced673e452
commit 8a1e6a7761
17 changed files with 1144 additions and 79 deletions

View File

@ -94,7 +94,7 @@ class Proyecto extends Ideal\Repository
->where("a.descripcion LIKE ?");
return $this->fetchOne($query, ["%{$name}%"]);
}
public function fetchAllActive(): array
public function fetchAllActive(null|string|array $orderBy = null): array
{
$etapaProyecto = $this->etapaRepository->fetchByDescripcion('Proyecto');
$etapaTerminado = $this->etapaRepository->fetchByDescripcion('Terminado');
@ -103,8 +103,12 @@ class Proyecto extends Ideal\Repository
->from("{$this->getTable()} a")
->joined($this->joinTerreno())
->joined($this->joinEstado())
->where("et.orden BETWEEN {$etapaProyecto->orden} AND ({$etapaTerminado->orden} - 1)")
->order('a.descripcion');
->where("et.orden BETWEEN {$etapaProyecto->orden} AND ({$etapaTerminado->orden} - 1)");
if ($orderBy === null) {
$query = $query->order('a.descripcion');
} else {
$query = $query->order($orderBy);
}
return $this->fetchMany($query);
}
public function fetchAllEscriturando(): array
@ -175,8 +179,14 @@ class Proyecto extends Ideal\Repository
$query = $this->connection->getQueryBuilder()
->select('a.*')
->from("{$this->getTable()} a")
->joined('INNER JOIN promotion_projects pp ON pp.project_id = a.id')
->where('pp.promotion_id = :promotion_id');
->joined('LEFT OUTER JOIN proyecto_tipo_unidad ptu ON ptu.proyecto = a.id')
->joined('LEFT OUTER JOIN unidad ON unidad.pt = ptu.id')
->joined('LEFT OUTER JOIN promotion_units pu ON pu.unit_id = unidad.id')
->joined('LEFT OUTER JOIN broker_contracts bc ON bc.project_id = a.id')
->joined('LEFT OUTER JOIN promotion_contracts pc ON pc.contract_id = bc.id')
->where('pu.promotion_id = :promotion_id OR pc.promotion_id = :promotion_id')
->group('a.id');
trigger_error($query . ' ' . json_encode(['promotion_id' => $promotion_id]));
return $this->fetchMany($query, ['promotion_id' => $promotion_id]);
}
/*public function fetchSuperficieVendido(int $proyecto_id): float