public function getZona()
 {
     $criteria = new CDbCriteria();
     $criteria->addCondition('t.EventoId = :EventoId');
     $criteria->addCondition('t.FuncionesId = :FuncionId');
     $criteria->addCondition('t.ZonasId = :ZonaId');
     $criteria->params = array(':EventoId' => $this->mapa->EventoId, ':FuncionId' => $this->mapa->FuncionId, ':ZonaId' => $this->ZonasId);
     return Zonas::model()->find($criteria);
 }
Example #2
0
 public function actionCargarZonas()
 {
     $data = Zonas::model()->findAll('EventoId=:parent_id AND FuncionesId=:parent_funcion_id', array(':parent_id' => (int) $_POST['evento_id'], ':parent_funcion_id' => (int) $_POST['funcion_id']));
     $data = CHtml::listData($data, 'ZonasId', 'ZonasAli');
     echo CHtml::tag('option', array('value' => ''), 'Seleccione ...', true);
     foreach ($data as $id => $value) {
         echo CHtml::tag('option', array('value' => $id), CHtml::encode($value), true);
     }
 }
Example #3
0
 public function actionGetTempDescuentos()
 {
     if (Yii::app()->request->isAjaxRequest) {
         $datas = Yii::app()->getSession()->get('descuentos');
         $pv = Yii::app()->getSession()->get('pv');
         if (!empty($datas)) {
             echo "<ul class='result'>";
             foreach ($datas as $keyevento => $data) {
                 //print_r($data);
                 $porcentaje = $data['DescuentosPat'] == "PORCENTAJE" ? "%" : "";
                 //$data['DescuentosPat']=="PORCENTAJE"?"%":"";
                 $efectivo = $data['DescuentosPat'] == "EFECTIVO" ? "\$" : "";
                 echo "<li class='info'>";
                 $evento = Evento::model()->findAllByPk($keyevento);
                 echo "<strong  class='alert alert-success'>{$keyevento}: " . $evento[0]->EventoNom . "</strong><br/><br/>";
                 $eventoId = $keyevento;
                 $funcionesId = $data['FuncionesId'];
                 $zonasId = $data['ZonasId'];
                 $subzonasId = $data['SubzonaId'];
                 $filasId = $data['FilasId'];
                 //especifica el punto de venta al que se aplicara el descuento $pv
                 if ($pv == "todos") {
                     echo "<strong>Aplica a todos los puntos de venta</strong> <br/>";
                 } else {
                     $punto_venta = Puntosventa::model()->find("PuntosventaId={$pv}");
                     echo "<strong>Aplica al punto de venta:</strong> ({$pv}){$punto_venta->PuntosventaNom}<br/>";
                 }
                 foreach ($data as $key => $dat) {
                     switch ($key) {
                         //case 'CuponesCod'        : echo "<strong>C&oacutedigo del Cup&oacute;n:</strong> ".$dat."<br/>";
                         //                          break;
                         case 'DescuentosDes':
                             echo "<strong>Descripci&oacuten:</strong> " . $dat . "<br/>";
                             break;
                         case 'DescuentosPat':
                             echo "<strong>Forma Descuento:</strong> " . $dat . "<br/>";
                             break;
                         case 'DescuentosCan':
                             echo "<strong>Cantidad:</strong> " . $efectivo . $dat . $porcentaje . "<br/>";
                             break;
                         case 'DescuentoCargo':
                             echo "<strong>Cargo Serv:</strong> " . $dat . "<br/>";
                             break;
                         case 'DescuentosFecIni':
                             echo "<strong>Fecha Inicio:</strong> " . $dat . "<br/>";
                             break;
                         case 'DescuentosFecFin':
                             echo "<strong>Fecha Fin:</strong> " . $dat . "<br/>";
                             break;
                         case 'DescuentosExis':
                             echo ($dat == "0" ? "<strong>Aplica descuentos a todos</strong>" : "<strong>Aplica a los primeros:</strong> " . $dat) . "<br/>";
                             break;
                         case 'DescuentosValRef':
                             /*if($dat=="todos"){
                                    echo "<strong>Punto de Venta:</strong> TODOS<br/>";
                               }else{
                                    $punto_venta = Puntosventa::model()->find("PuntosventaId=$dat"); echo "<strong>Punto de Venta:</strong> ($dat)$punto_venta->PuntosventaNom<br/>";
                               }*/
                             break;
                         case 'DescuentosId':
                             echo "<strong>Id:</strong> " . ($dat == "-1" ? "Ninguno" : $dat) . "<br/>";
                             break;
                         case 'FuncionesId':
                             if (!empty($dat)) {
                                 echo "<ul id='funciones_info{$keyevento}'><strong>Funciones</strong>";
                                 foreach ($dat as $keyf => $funcion) {
                                     if (count($funcion) > 0) {
                                         echo "<li>";
                                         $funcionTexto = Funciones::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf}");
                                         echo $funcionTexto[0]->funcionesTexto;
                                         echo "<ul><strong>Zona</strong>";
                                         foreach ($funcion as $keyz => $zona) {
                                             if (count($zona) > 0) {
                                                 echo "<li>";
                                                 $zonasAli = Zonas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz}");
                                                 echo $zonasAli[0]->ZonasAli;
                                                 echo "<ul><strong>Subzona</strong>";
                                                 foreach ($zona as $keysz => $subzona) {
                                                     if (count($subzona) > 0) {
                                                         echo "<li>";
                                                         echo $keysz;
                                                         echo "<ul><strong>Filas</strong>";
                                                         foreach ($subzona as $keyfl => $fila) {
                                                             if (count($fila) > 0) {
                                                                 echo "<li>";
                                                                 $filasAli = Filas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz} AND SubzonaId={$keysz} AND FilasId={$keyfl}");
                                                                 echo $filasAli[0]->FilasAli;
                                                                 echo "<ul><strong>Lugares</strong>";
                                                                 foreach ($fila as $keyl => $lugar) {
                                                                     echo "<li>";
                                                                     echo $keyl;
                                                                     echo "</li>";
                                                                 }
                                                                 echo "</ul>";
                                                                 echo "</li>";
                                                             } else {
                                                                 echo "<li>";
                                                                 $filasAli = Filas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz} AND SubzonaId={$keysz} AND FilasId={$keyfl}");
                                                                 echo $filasAli[0]->FilasAli;
                                                                 echo "</li>";
                                                             }
                                                         }
                                                         echo "</ul>";
                                                         echo "</li>";
                                                     } else {
                                                         echo "<li>";
                                                         echo $keysz;
                                                         echo "</li>";
                                                     }
                                                 }
                                                 echo "</ul>";
                                                 echo "</li>";
                                             } else {
                                                 echo "<li>";
                                                 $zonasAli = Zonas::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf} AND ZonasId={$keyz}");
                                                 echo $zonasAli[0]->ZonasAli;
                                                 echo "</li>";
                                             }
                                         }
                                         echo "</ul>";
                                         echo "</li>";
                                     } else {
                                         echo "<li>";
                                         $funcionTexto = Funciones::model()->findAll("EventoId={$keyevento} AND FuncionesId={$keyf}");
                                         echo $funcionTexto[0]->funcionesTexto;
                                         echo "</li>";
                                     }
                                 }
                                 echo "</ul>";
                             } else {
                                 echo '<strong>Aplica a todas las Funciones</strong></br>';
                             }
                             break;
                             /*case 'ZonasId'           : $zonas = Zonas::model()->findAll("EventoId=$eventoId AND FuncionesId=$funcionesId AND ZonasId=$zonasId");
                                                          echo "<strong>Zona:</strong> ".($dat=="0"?"Todas":$zonas[0]->ZonasAli)."<br/>";
                                                          break; 
                               case 'SubzonaId'         : echo "<strong>SubZona:</strong> ".($dat=="0"?"Todas":$dat)."<br/>";
                                                          break; 
                               case 'FilasId'           : $filas = Filas::model()->findAll("EventoId=$eventoId AND FuncionesId=$funcionesId AND ZonasId=$zonasId AND SubzonaId=$subzonasId AND FilasId=$filasId");
                                                          echo "<strong>Fila:</strong> ".($dat=="0"?"Todas":$filas[0]->FilasAli)."<br/>";
                                                          break; 
                               case 'LugaresId'         : echo "<strong>Lugar:</strong> ".($dat=="0"?"Todas":$dat)."<br/>";
                                                          break;*/
                     }
                     //echo $key.":".$dat."<br/>";
                 }
                 echo "</li>";
             }
             echo "</ul>";
             echo "<p style='clear:both;'></p>";
             //print_r($datas);
         }
     }
 }
Example #4
0
 public function getReporteZonas($eventoId, $funcionesId = 'TODAS', $desde = '', $hasta = '')
 {
     $funcionCond = '';
     if (isset($eventoId) and $eventoId > 0) {
         $evento = Evento::model()->findByPk($eventoId);
     }
     if (isset($funcionesId) and $funcionesId > 0) {
         $funcionCond = sprintf(" AND FuncionesId = '%s' ", $funcionesId);
         $funcion = Funciones::model()->with('zonas')->findByPk(array('EventoId' => $eventoId, 'FuncionesId' => $funcionesId));
         if (is_object($funcion)) {
             //$funciones=$funcion;
             $zonas = $funcion->zonas;
         }
     } else {
         //$funciones=$evento->funciones;
         $zonas = Zonas::model()->with('funcion')->findAllByAttributes(array('EventoId' => $eventoId), array('group' => 't.EventoId,t.ZonasId'));
     }
     $matrixZonas = array();
     $modelo = new ReportesFlex();
     //foreach ($funciones as $funcion) {
     foreach ($zonas as $zona) {
         $aforo = Lugares::model()->count(sprintf("EventoId= '%s' %s AND ZonasId = '%s'  AND LugaresStatus<>'OFF' ", $eventoId, $funcionCond, $zona->ZonasId));
         //"EventoId = '$eventoId' AND FuncionesId = '".$zona->funcion->FuncionesId."' AND ZonasId =".$zona->ZonasId);
         $zone = array();
         $zone['aforo'] = $aforo;
         $zone['zona'] = $zona->ZonasAli;
         $matrix = array('aforo' => array('titulo' => 'Aforo', 'boletos' => $aforo, 'precio' => $zona->ZonasCosBol, 'importe' => $zona->ZonasCosBol * $aforo, 'porcentaje' => 100), 'por vender' => array('titulo' => 'Por Vender', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0), 'descuentos' => array('titulo' => 'Descuentos', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0), 'cupones' => array('titulo' => 'Cupones', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0), 'subtotal' => array('titulo' => 'Sub-Total', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0));
         $reporte = $modelo->getDetallesZonasCargo($eventoId, $funcionesId, $zona->ZonasId, $desde, $hasta, $cargo = 'NO');
         //$tipos=array();
         $matrix['tipos'] = array();
         foreach ($reporte->getData() as $fila) {
             //$index=$fila['VentasBolTip'].$fila['VentasCosBol'];
             $temp = array('titulo' => '', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0);
             $temp['precio'] = $fila['VentasCosBol'];
             $temp['titulo'] = ucfirst(strtolower($fila['VentasBolTip']));
             if (strcasecmp($temp['titulo'], 'Normal') == 1) {
                 $temp['titulo'] = 'Ventas';
             }
             $matrix['subtotal']['boletos'] += $temp['boletos'] = $fila['cantidad'];
             $matrix['subtotal']['importe'] += $temp['importe'] = $fila['total'];
             $temp['porcentaje'] = number_format($temp['boletos'] * 100 / max($matrix['aforo']['boletos'], 1));
             $matrix['tipos'][] = $temp;
         }
         // Ventas con descuento por zona
         $reporte = $modelo->getReporte($eventoId, $zona->funcion->FuncionesId, $desde, $hasta, $cargo, 'NORMAL', ' AND t2.VentasMonDes>0 AND t2.ZonasId=' . $zona->ZonasId, 'DescuentosDes', 'DescuentosDes');
         foreach ($reporte->getData() as $fila) {
             $temp = array('titulo' => '', 'boletos' => 0, 'precio' => 0, 'importe' => 0, 'porcentaje' => 0);
             $temp['titulo'] = $fila['descuento'];
             $temp['boletos'] = $fila['cantidad'];
             $temp['precio'] = $fila['VentasCosBol'];
             $temp['total'] = $fila['total'];
             $matrix['tipos'][] = $temp;
         }
         $matrix['por vender']['boletos'] = $matrix['aforo']['boletos'] - $matrix['subtotal']['boletos'];
         $matrix['por vender']['importe'] = $matrix['aforo']['precio'] * $matrix['por vender']['boletos'];
         //$matrix['por vender']['porcentaje']	=$matrix['por vender']['boletos'] / max($matrix['aforo']['boletos'],1)	;
         foreach ($matrix as $key => $fila) {
             if ($key != "tipos") {
                 $matrix[$key]['porcentaje'] = number_format($fila['boletos'] * 100 / max($matrix['aforo']['boletos'], 1), 0);
             }
         }
         //echo "<pre>";print_r($matrix);echo "</pre>";
         $this->formateoNumerico($matrix, array('boletos', 'importe', 'precio'));
         $this->formateoNumerico($matrix['tipos'], array('boletos', 'importe', 'precio'));
         $zone['datos'] = $matrix;
         $matrixZonas[] = $zone;
     }
     //}
     return array('zonas' => $matrixZonas);
 }
Example #5
0
 public function eliminarDistribucion()
 {
     $identificador = array('EventoId' => $this->EventoId);
     $nfunciones = Funciones::model()->countByAttributes($identificador);
     if ($nfunciones > 1) {
         // Si no se esta tratando de eliminar la unica funcion.
         $identHijos = array('EventoId' => $this->EventoId, 'FuncionesId' => $this->FuncionesId);
         $this->deleteConfpvfuncion();
         Zonas::model()->deleteAllByAttributes($identHijos);
         Subzona::model()->deleteAllByAttributes($identHijos);
         Filas::model()->deleteAllByAttributes($identHijos);
         Lugares::model()->deleteAllByAttributes($identHijos);
         $mapagrande = ConfigurlFuncionesMapaGrande::model()->findByAttributes(array('EventoId' => $this->EventoId, 'FuncionId' => $this->FuncionesId));
         if (is_object($mapagrande)) {
             // Si tiene un mapa grande se eliminan primero sus coordenadas para que no de restriccion de llaves foraneas
             ConfigurlMapaGrandeCoordenadas::model()->deleteAllByAttributes(array('configurl_funcion_mapa_grande_id' => $mapagrande->id));
             $mapagrande->delete();
         }
         $this->ForoMapIntId = 0;
         $this->save();
         return true;
     } else {
         return false;
     }
 }
Example #6
0
 public function actionGeneracionFilas($EventoId, $FuncionesId, $ZonasId)
 {
     // Genera filas distribuidas por las subzonas
     $model = Zonas::model()->with('disfilas')->findByPk(compact('EventoId', 'FuncionesId', 'ZonasId'));
     //Yii::app()->clientScript->scriptMap['jquery.js'] = false;
     //$this->renderPartial('editorFilas',compact('model'));
     $this->render('editorFilas', compact('model'));
 }
Example #7
0
 static function removerAsignacion($EventoId, $FuncionesId)
 {
     //Elimina todas las zonas, subzonas, filas, lugares de la funcion que se le indique
     $identificador = compact('EventoId', 'FuncionesId');
     $transaction = Yii::app()->db->beginTransaction();
     Subzona::model()->deleteAllByAttributes($identificador);
     Filas::model()->deleteAllByAttributes($identificador);
     Lugares::model()->deleteAllByAttributes($identificador);
     Zonaslevel1::model()->deleteAllByAttributes($identificador);
     Zonastipo::model()->deleteAllByAttributes($identificador);
     Zonastipolevel1::model()->deleteAllByAttributes($identificador);
     $mapagrande = ConfigurlFuncionesMapaGrande::model()->findByAttributes(array('EventoId' => $EventoId, 'FuncionId' => $FuncionesId));
     if (is_object($mapagrande)) {
         // Si tiene un mapa grande se eliminan primero sus coordenadas para que no de restriccion de llaves foraneas
         ConfigurlMapaGrandeCoordenadas::model()->deleteAllByAttributes(array('configurl_funcion_mapa_grande_id' => $mapagrande->id));
         $mapagrande->delete();
     }
     if (Zonas::model()->deleteAllByAttributes($identificador)) {
         $funcion = Funciones::model()->findByPk($identificador);
         $funcion->ForoId = 0;
         $funcion->ForoMapIntId = 0;
         $transaction->commit();
     } else {
         $transaction->rollback();
     }
     return Zonas::model()->countByAttributes($identificador) == 0;
 }
Example #8
0
File: Zonas.php Project: cicb/tpc
 public static function reenumerar($EventoId, $FuncionesId)
 {
     // Vuelve a generar las ZonasNum
     $zonas = Zonas::model()->findAllByAttributes(compact('EventoId', 'FuncionesId'));
     $i = 1;
     foreach ($zonas as $zona) {
         if (is_object($zona)) {
             $zona->ZonasNum = $i;
             $zona->save();
             $i++;
         }
     }
 }