/** * @inheritdoc */ public function rules() { return [[['nombre', 'latitud', 'longitud', 'dia', 'prioridad', 'esActivo', 'direccion'], 'required'], [['nombre'], 'unique'], [['latitud', 'longitud'], 'number'], [['direccion'], 'string', 'max' => 255], [['dia', 'prioridad', 'esActivo'], 'integer'], [['nombre'], 'string', 'max' => 50], [['direccion'], function ($attribute, $params) { if ($this->direccion !== null) { if (!sysconfigs::getCoordinates($this->direccion)) { $this->addError($attribute, \Yii::t('core', 'Address doesnt exist')); } } }]]; }
public static function actionView($id) { $user = User::findIdentityByAccessToken($id); //find()->where(['id'=>$id])->one(); if ($user->tieneRutaDiariaActiva()) { $rutaDiaria = RutaDiaria::find()->where(['id_usuario' => $user->id])->andWhere(['fecha' => date('Y-m-d')])->one(); $comercios = $rutaDiaria->getComerciosOrdenados(); return ['status' => 'ok', 'requestJson' => sysconfigs::getRutaRequestParaMostrar($user, $comercios)]; } else { return ['status' => 'error', "mensaje" => Yii::t('core', 'there are no routes for today')]; } }
public function actionView($id) { $model = $this->findModel($id); $comerciosOrdenados = $model->getComerciosOrdenados(); $usuario = User::findOne($model->id_usuario); $comercios = []; $datosGrillaPasos = []; $datosGrillaPasos[0] = ['orden' => 0, 'tipo' => Yii::t('core', 'User'), 'nombre' => $usuario->username, 'direccion' => $usuario->direccion, 'id_ruta_diaria' => $model->id, "id_comercio" => '']; $i = 0; foreach ($comerciosOrdenados as $comercio) { $datosGrillaPasos[$i + 1] = ['orden' => $i + 1, 'tipo' => Yii::t('core', 'Store'), 'nombre' => $comercio->nombre, 'direccion' => $comercio->direccion, 'id_ruta_diaria' => $model->id, "id_comercio" => $comercio->id]; $i++; } $requestRuta = json_encode(sysconfigs::getRutaRequestParaMostrar($usuario, $comerciosOrdenados)); return $this->render('view', ['model' => $this->findModel($id), 'requestRuta' => $requestRuta, 'datosGrillaPasos' => $datosGrillaPasos]); }
<h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php echo Html::a(Yii::t('core', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); ?> </p> <?php $usuario = User::findOne($model->id_usuario)->username; ?> <?php echo DetailView::widget(['model' => $model, 'attributes' => [['attribute' => 'dia', 'label' => Yii::t('core', 'Open on'), 'format' => 'raw', 'value' => Yii::t('core', sysconfigs::getNombreDia($model->dia))], ['attribute' => 'esActivo', 'label' => Yii::t('core', 'Active?'), 'format' => 'raw', 'value' => $model->esActivo ? '<span class="label label-success">' . Yii::t('core', sysconfigs::getNombreEsActivo($model->esActivo)) . '</span>' : '<span class="label label-danger">' . Yii::t('core', sysconfigs::getNombreEsActivo($model->esActivo)) . '</span>', 'widgetOptions' => ['pluginOptions' => ['onText' => 'Yes', 'offText' => 'No']]], ['attribute' => 'id_usuario', 'label' => Yii::t('core', 'User'), 'format' => 'raw', 'value' => $usuario]]]); ?> <?php if (isset($tieneRecorrido)) { echo Html::hiddenInput('jsonRequest', $requestRuta, ['id' => 'jsonRequest']); ?> <h2><?php echo Html::encode(Yii::t('core', 'Schedule')); ?> </h2> <?php $provider = new ArrayDataProvider(['allModels' => $datosGrillaPasos, 'sort' => ['attributes' => ['orden', 'tipo', 'nombre', 'direccion']], 'pagination' => ['pageSize' => 10]]); echo GridView::widget(['dataProvider' => $provider, 'columns' => [['class' => 'yii\\grid\\SerialColumn'], 'orden', 'tipo', 'nombre', 'direccion']]); ?>
use backend\helpers\sysconfigs; use yii\helpers\Html; use yii\widgets\DetailView; /* @var $this yii\web\View */ /* @var $model backend\models\Categoria */ $this->title = $model->nombre; $this->params['breadcrumbs'][] = ['label' => Yii::t('core', 'Categories'), 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; ?> <div class="categoria-view"> <h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php echo Html::a(Yii::t('core', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); ?> <?php echo Html::a(Yii::t('core', 'Delete'), ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => Yii::t('core', 'Are you sure you want to delete this item?'), 'method' => 'post']]); ?> </p> <?php echo DetailView::widget(['model' => $model, 'attributes' => [['attribute' => 'nombre', 'label' => Yii::t('core', 'Name')], ['attribute' => 'descripcion', 'label' => Yii::t('core', 'Description')], ['attribute' => 'esActivo', 'label' => Yii::t('core', 'Active?'), 'format' => 'raw', 'value' => $model->esActivo ? '<span class="label label-success">' . Yii::t('core', sysconfigs::getNombreEsActivo($model->esActivo)) . '</span>' : '<span class="label label-danger">' . Yii::t('core', sysconfigs::getNombreEsActivo($model->esActivo)) . '</span>', 'widgetOptions' => ['pluginOptions' => ['onText' => 'Yes', 'offText' => 'No']]]]]); ?> </div>
<h1><?php echo Html::encode($this->title); ?> </h1> <?php // echo $this->render('_search', ['model' => $searchModel]); ?> <p> <?php echo Html::a(Yii::t('core', 'Create Store'), ['create'], ['class' => 'btn btn-success']); ?> </p> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['class' => 'yii\\grid\\SerialColumn'], ['attribute' => 'nombre', 'label' => Yii::t('core', 'Name')], ['attribute' => 'dia', 'label' => Yii::t('core', 'Open on'), 'format' => 'raw', 'value' => function ($data) { return Yii::t('core', sysconfigs::getNombreDia($data->dia)); }], ['attribute' => 'prioridad', 'label' => Yii::t('core', 'Priority'), 'format' => 'raw', 'value' => function ($data) { return Yii::t('core', sysconfigs::getNombrePrioridad($data->prioridad)); }], ['attribute' => 'esActivo', 'label' => Yii::t('core', 'Active?'), 'format' => 'raw', 'value' => function ($data) { if ($data->esActivo == 0) { return '<span class="label label-danger">' . Yii::t('core', sysconfigs::getNombreEsActivo($data->esActivo)) . '</span>'; } else { return '<span class="label label-success">' . Yii::t('core', sysconfigs::getNombreEsActivo($data->esActivo)) . '</span>'; } }], ['class' => 'yii\\grid\\ActionColumn']]]); ?> </div>
console.log(marker); } google.maps.event.addDomListener(window, 'load', initMap); </script> <div class="comercio-view"> <h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php echo Html::a(Yii::t('core', 'Update'), ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); ?> <?php echo Html::a(Yii::t('core', 'Delete'), ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => Yii::t('core', 'Are you sure you want to delete this item?'), 'method' => 'post']]); ?> </p> <?php echo DetailView::widget(['model' => $model, 'attributes' => [['attribute' => 'nombre', 'label' => Yii::t('core', 'Name')], ['attribute' => 'direccion', 'label' => Yii::t('core', 'Adress')], ['attribute' => 'dia', 'label' => Yii::t('core', 'Open on'), 'format' => 'raw', 'value' => Yii::t('core', sysconfigs::getNombreDia($model->dia))], ['attribute' => 'prioridad', 'label' => Yii::t('core', 'Priority'), 'format' => 'raw', 'value' => Yii::t('core', sysconfigs::getNombrePrioridad($model->prioridad))], ['attribute' => 'esActivo', 'label' => Yii::t('core', 'Active?'), 'format' => 'raw', 'value' => $model->esActivo ? '<span class="label label-success">' . Yii::t('core', sysconfigs::getNombreEsActivo($model->esActivo)) . '</span>' : '<span class="label label-danger">' . Yii::t('core', sysconfigs::getNombreEsActivo($model->esActivo)) . '</span>', 'widgetOptions' => ['pluginOptions' => ['onText' => 'Yes', 'offText' => 'No']]]]]); ?> </div> <div id="map-canvas" style="height: 300px; width: 200px;border: 1px solid black"></div>
/** * Updates an existing Ruta model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); if ($model->load(Yii::$app->request->post())) { $validar = $model->validar(); if ($validar == 'OK' && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { Yii::$app->getSession()->setFlash('danger', $validar); return $this->redirect(['update', 'id' => $model->id]); } } else { if ($model->getOrdenComercios()->count() != 0) { $ordenComercios = $model->getOrdenComercios()->all(); $usuario = User::findOne($model->id_usuario); $comercios = []; $i = 0; foreach ($ordenComercios as $ordenComercio) { $comercios[$i] = Comercio::find()->where(['id' => $ordenComercio->id_comercio])->one(); $i++; } $requestRuta = json_encode(sysconfigs::getRutaRequestParaMostrar($usuario, $comercios)); return $this->render('update', ['model' => $this->findModel($id), 'tieneRecorrido' => true, 'requestRuta' => $requestRuta]); } else { return $this->render('update', ['model' => $model]); } } }
/** * Retorna los comercios que cumplan los siguientes requisitos: * -El comercio es activo * -El comercio no pertenece a una ruta activa * -El dia del comercio es el pasado por parametro * -El comercio esta en el radio del usuario con el id pasado por parametro * @param $dia : numero del dia elegido, donde 1 es Lunes y 7 es Domingo * @param $idUsuario */ public function obtenerComerciosDisponiblesUsuario($dia, $usuario) { $comercios = $this->comerciosPorDiaSinRutasActivas($dia); $comerciosValidos = []; $coordenadasUsuario = ['latitud' => $usuario->latitud, 'longitud' => $usuario->longitud]; $i = 0; foreach ($comercios as $comercio) { $i++; $coordenadasComercio = ['latitud' => $comercio->latitud, 'longitud' => $comercio->longitud]; $distanciaUsuarioComercio = sysconfigs::getDistanciaEntreCoordenadas($coordenadasUsuario, $coordenadasComercio); if ($distanciaUsuarioComercio <= sysconfigs::RADIO_RELEVADOR) { $comerciosValidos[$comercio->id] = $comercio; } } return $comerciosValidos; }