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); }
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); } }
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ódigo del Cupón:</strong> ".$dat."<br/>"; // break; case 'DescuentosDes': echo "<strong>Descripción:</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); } } }
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); }
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; } }
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')); }
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; }
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++; } } }