12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace app\modules\publico\controllers;
- use common\data\Respuesta;
- use common\rest\JsonController;
- use v1\models\Municipio;
- use v1\models\Producto;
- use yii\db\Query;
- class CondicionantesController extends JsonController {
- public function actionIndex() {
- $fin = intval($this->req->get("fin", "0"));
- $tipo = intval($this->req->get("tipo", "0"));
- $estado = 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]]);
- }
- /* # En el front no se pueden elegir ciudades*/
- if ( $ciudad > 0) {
- $nivel = (new Query())
- ->select(["{{NivelMunicipio}}.[[idNivel]]"])
- ->from("NivelMunicipio")
- ->innerJoin("Municipio", "{{Municipio}}.id = {{NivelMunicipio}}.[[idMunicipio]]")
- ->innerJoin("Estado", "{{Estado}}.id = {{Municipio}}.[[idEstado]]")
- ->andWhere([
- "{{Estado}}.[[clave]]" => $estado,
- "{{Municipio}}.[[clave]]" => $ciudad,
- ])
- ->column();
-
- $condicionante->andWhere(["idNivel" => $nivel]);
- }
- 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));
- }
- }
|