Пример #1
0
 public function actionDistancia($lat, $lon)
 {
     $puntosv = PuntoVenta::model()->findAll();
     $pdvCerca = array('pdv' => null, 'dist' => -1);
     foreach ($puntosv as $pdv) {
         $dist = distanciaCoordenadas($lat, $lon, $pdv->longitudGoogle, $pdv->latitudGoogle);
         echo "{$pdv->idPuntoDeVenta}|{$pdv->nombrePuntoDeVenta}|{$pdv->codigoCiudad}|{$pdv->longitudGoogle}|{$pdv->latitudGoogle}|{$dist}<br/>";
         if ($pdvCerca['pdv'] == null) {
             $pdvCerca['pdv'] = $pdv;
             $pdvCerca['dist'] = $dist;
         } else {
             if ($dist < $pdvCerca['dist']) {
                 $pdvCerca['pdv'] = $pdv;
                 $pdvCerca['dist'] = $dist;
             }
         }
     }
 }
Пример #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();
     }
 }