req->get("fin", "0")); $tipo = intval($this->req->get("tipo", "0")); $estadoOrigen = intval($this->req->get("origen", 0)); $ciudad = intval($this->req->get("ciudad", 0)); $producto = intval($this->req->get("producto", 0)); $condicionante = (new Query()) ->select("{{Condicionante}}.[[id]],{{Condicionante}}.[[titulo]],{{Condicionante}}.[[descripcion]]") ->from("Condicionante") ->andWhere(["{{Condicionante}}.[[eliminado]]" => null]); if ($producto > 0) { $producto = Producto::find() ->andWhere(["idSagarhpa" => $producto]) ->one(); $condicionante ->andWhere(["OR", ["{{Condicionante}}.[[idProducto]]" => $producto->id], ["{{Condicionante}}.[[idProducto]]" => $producto->idPadre]]); } $municipio = Municipio::find() ->andWhere(["clave" => $ciudad]) ->one(); /* # En el front no se pueden elegir ciudades*/ if ($ciudad > 0) { $condicionante ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]") ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]") ->innerJoin("Municipio", "{{Municipio}}.[[idEstado]] = {{Estado}}.[[id]]") ->innerJoin("NivelMunicipio", "{{NivelMunicipio}}.[[idMunicipio]] = {{Municipio}}.[[id]]") ->andWhere(["{{Municipio}}.[[clave]]" => $ciudad]) ->andWhere(["{{NivelMunicipio}}.[[idNivel]]" => "{{Condicionante}}.[[idNivel]]"]) ->andWhere(["{{Municipio}}.[[eliminado]]" => null]); } // if ($estadoOrigen > 0 && $ciudad === 0) { // $condicionante // ->leftJoin("CondicionanteOrigen", "{{CondicionanteOrigen}}.[[idCondicionante]] = {{Condicionante}}.[[id]]") // ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteOrigen}}.[[idOrigen]]") // ->andWhere(["{{Estado}}.[[idSagarhpa]]" => $estadoOrigen]) // ->andWhere(["{{Estado}}.[[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 ($ciudad > 0) { $condicionante->orderBy(["{{Municipio}}.[[nombre]]" => SORT_DESC]); } return (new Respuesta($condicionante)); } }