コード例 #1
0
 /**
  * Valida existencia de sector
  */
 public function validarCiudadSector($attribute, $params)
 {
     if (!$this->hasErrors()) {
         $objSectorCiudad = SectorCiudad::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector', 'params' => array(':ciudad' => $this->codigoCiudad, ':sector' => $this->codigoSector)));
         if ($objSectorCiudad === null) {
             $this->addError('codigoCiudad', $this->getAttributeLabel($attribute) . ' no existente');
         }
     }
 }
コード例 #2
0
 public function actionGps()
 {
     if (Yii::app()->request->isPostRequest) {
         Yii::app()->session[Yii::app()->params->sesion['pdvEntrega']] = null;
         /* Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']] = null;
            Yii::app()->session[Yii::app()->params->sesion['subSectorCiudadEntrega']] = null; */
         $lat = Yii::app()->getRequest()->getPost('lat');
         $lon = Yii::app()->getRequest()->getPost('lon');
         try {
             $puntosv = PuntoVenta::model()->findAll();
             $pdvCerca = array('pdv' => null, 'dist' => -1);
             foreach ($puntosv as $pdv) {
                 $dist = distanciaCoordenadas($lat, $lon, $pdv->latitudGoogle, $pdv->longitudGoogle);
                 if ($dist > Yii::app()->params->gps['distanciaMaxima']) {
                     continue;
                 }
                 if ($pdvCerca['pdv'] == null) {
                     $pdvCerca['pdv'] = $pdv;
                     $pdvCerca['dist'] = $dist;
                 } else {
                     if ($dist < $pdvCerca['dist']) {
                         $pdvCerca['pdv'] = $pdv;
                         $pdvCerca['dist'] = $dist;
                     }
                 }
             }
             if ($pdvCerca['pdv'] == null) {
                 echo CJSON::encode(array('result' => 'error', 'response' => 'No se encuentra punto de venta cercano'));
                 Yii::app()->end();
             }
             $objCiudadSector = SectorCiudad::model()->find(array('with' => array('objCiudad', 'objSector'), 'condition' => 't.codigoCiudad=:ciudad AND t.codigoSector=:sector AND t.estadoCiudadSector=:estado', 'params' => array('ciudad' => $pdvCerca['pdv']->codigoCiudad, 'sector' => $pdvCerca['pdv']->idSectorLRV, 'estado' => 1)));
             if ($objCiudadSector == null) {
                 echo CJSON::encode(array('result' => 'error', 'response' => 'No se encuentra sector cercano'));
                 Yii::app()->end();
             }
             Yii::app()->session[Yii::app()->params->sesion['pdvEntrega']] = $pdvCerca['pdv'];
             //Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']] = $sectorCiudad;
             /* Yii::app()->session[Yii::app()->params->sesion['subSectorCiudadEntrega']] = null; */
             $mensajeUbicacion = "<strong>" . $objCiudadSector->objCiudad->nombreCiudad . " - " . $objCiudadSector->objSector->nombreSector . "</strong>";
             if (!isset(Yii::app()->session[Yii::app()->params->sesion['tipoEntrega']]) || Yii::app()->session[Yii::app()->params->sesion['tipoEntrega']] != Yii::app()->params->entrega['tipo']['presencial']) {
                 $objHorarioSecCiud = HorariosCiudadSector::model()->find(array('condition' => 'codigoCiudad=:ciudad AND codigoSector=:sector', 'params' => array(':ciudad' => $objCiudadSector->codigoCiudad, ':sector' => $objCiudadSector->codigoSector)));
                 if ($objHorarioSecCiud != null && $objHorarioSecCiud->sadCiudadSector == 0) {
                     $mensajeUbicacion .= "<br/>No contamos con servicio de entrega a domicilio para esta ubicación, los pedidos deben ser recogidos en el Punto de Venta seleccionado por usted al momento de finalizar la compra.";
                 }
             }
             echo CJSON::encode(array('result' => 'ok', 'response' => array('ubicacion' => $mensajeUbicacion, 'url' => CController::createUrl('/sitio/ubicacionSeleccion', array('ciudad' => $pdvCerca['pdv']->codigoCiudad, 'sector' => $pdvCerca['pdv']->idSectorLRV)))));
             Yii::app()->end();
         } catch (Exception $exc) {
             Yii::log($exc->getMessage() . "\n" . $exc->getTraceAsString(), CLogger::LEVEL_ERROR, 'application');
             echo CJSON::encode(array('result' => 'error', 'response' => 'Error: ' . $exc->getMessage()));
             Yii::app()->end();
         }
     } else {
         echo CJSON::encode(array('result' => 'error', 'response' => 'Solicitud invalida.'));
         Yii::app()->end();
     }
 }