req->get("fin", 0)); $tipo = intval($this->req->get("tipo", 0)); $estado = intval($this->req->get("estado", 0)); $ciudad = intval($this->req->get("ciudad", 0)); $condicionante = null; if ($fin > 0 || $tipo > 0 || $estado > 0 || $ciudad > 0) { $condicionante = (new Query()) ->select("{{Condicionante}}.[[id]],{{Condicionante}}.[[titulo]],{{Condicionante}}.[[descripcion]]") ->from("Condicionante") ->andWhere(["{{Condicionante}}.[[eliminado]]" => null]); } if ($estado > 0 && $ciudad > 0) { $condicionante ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]") ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]") ->innerJoin("Municipio", "{{Municipio}}.[[idEstado]] = {{Estado}}.[[id]]") ->andWhere(["{{Estado}}.[[idSagarhpa]]" => $estado, "{{Municipio}}.[[clave]]" => $ciudad]) ->andWhere(["{{Estado}}.[[eliminado]]" => null, "{{Municipio}}.[[eliminado]]" => null]); } if ($estado > 0 && $ciudad === 0) { $condicionante ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]") ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]") ->andWhere(["{{Estado}}.[[idSagarhpa]]" => $estado]) ->andWhere(["{{Estado}}.[[eliminado]]" => null]); } if ($ciudad > 0 && $estado === 0) { $condicionante ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]") ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]") ->innerJoin("Municipio", "{{Municipio}}.[[idEstado]] = {{Estado}}.[[id]]") ->andWhere(["{{Municipio}}.[[eliminado]]" => null]); } if ($fin > 0) { $condicionante ->leftJoin("CondicionanteFin", "{{CondicionanteFin}}.[[idCondicionante]] = {{Condicionante}}.[[id]]") ->leftJoin("FinMovilizacion", "{{CondicionanteFin}}.[[idFin]] = {{FinMovilizacion}}.[[id]]") ->andWhere(["{{FinMovilizacion}}.[[idSagarhpa]]" => $fin, "{{FinMovilizacion}}.[[eliminado]]" => null]); } if ($tipo > 0) { $condicionante ->leftJoin("CondicionanteTipo", "{{CondicionanteTipo}}.[[idCondicionante]] = {{Condicionante}}.[[id]]") ->leftJoin("TipoMovilizacion", "{{CondicionanteTipo}}.[[idTipo]] = {{TipoMovilizacion}}.[[id]]") ->andWhere(["{{TipoMovilizacion}}.[[idSagarhpa]]" => $tipo, "{{TipoMovilizacion}}.[[eliminado]]" => null]); } if ($condicionante !== null) { $condicionante->all(); } return (new Respuesta($condicionante)); } }