Beispiel #1
0
<?php

/*
 *GENERA EL PRIMER NIVEL DE UN ARBOL DE CARGOS POR SERVICIO (ZONASLEVEL1)
 */
//Obtiene el nodo Raíz
$raiz = Zonaslevel1::model()->with('puntoventa')->findByPk(array('EventoId' => $model->EventoId, 'FuncionesId' => $model->FuncionesId, 'ZonasId' => $model->ZonasId, 'PuntosventaId' => Yii::app()->params['pvRaiz']));
//Obtiene ta taquilla del evento
$pve = Zonaslevel1::model()->with('puntoventa')->findByPk(array('EventoId' => $model->EventoId, 'FuncionesId' => $model->FuncionesId, 'ZonasId' => $model->ZonasId, 'PuntosventaId' => $model->evento->PuntosventaId));
if (is_object($pve)) {
    // Si el nodo raiz esta asignado
    $this->renderPartial('_nodoCargo', array('model' => $pve));
}
if (is_object($raiz)) {
    // Si el nodo raiz esta asignado
    $this->renderPartial('_nodoCargo', array('model' => $raiz));
}
echo TbHtml::link(' Reparar árbol de cargo por servicio', array('generarArbolCargos'), array('class' => 'btn btn-small  fa fa-sitemap btn-generar-arbol', 'id' => "btn-generarArbol-" . $model->ZonasId, 'data-zid' => $model->ZonasId));
Beispiel #2
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;
 }
Beispiel #3
0
 public function actionCambiarCargo($EventoId, $FuncionesId, $ZonasId, $PuntosventaId, $valor)
 {
     $zl1 = Zonaslevel1::model()->with(array('puntoventa' => array('with' => 'hijos')))->findByPk(compact('EventoId', 'FuncionesId', 'ZonasId', 'PuntosventaId'));
     if (!is_null($zl1)) {
         #"Si existe "
         $evento = Evento::model()->findByPk($EventoId);
         $zl1['ZonasFacCarSer'] = $valor;
         $zl1->update('ZonasFacCarSer');
         if ($zl1->puntoventa->hijos) {
             $criteria = new CDbCriteria();
             $criteria->compare('EventoId', $EventoId);
             $criteria->compare('FuncionesId', $FuncionesId);
             $criteria->compare('ZonasId', $ZonasId);
             $criteria->compare("zonaslevel1.PuntosventaId", "<>" . $evento->PuntosventaId);
             $criteria->join = " INNER JOIN puntosventa as t2  on zonaslevel1.PuntosventaId=t2.PuntosventaId \n\t\t\t\t\t\t\t\t\tand t2.PuntosventaSuperId=:actual";
             $criteria->params['actual'] = $PuntosventaId;
             // $criteria->addInCondition("PuntosventaId",$padres);
             $actualizados = Zonaslevel1::model()->updateAll(array('ZonasFacCarSer' => $valor), $criteria);
             $hijosPadres = $zl1->puntoventa->getChildrens(' and tipoid=0');
             foreach ($hijosPadres as $hijoPadre) {
                 if ($hijoPadre->PuntosventaSuperId == $PuntosventaId) {
                     $this->actionCambiarCargo($EventoId, $FuncionesId, $ZonasId, $hijoPadre->PuntosventaId, $valor);
                 }
             }
         }
     } else {
         //echo "No existe la zonalevel1";
         return 0;
     }
 }
Beispiel #4
0
 public function beforeDelete()
 {
     $identificador = array('EventoId' => $this->EventoId, 'FuncionesId' => $this->FuncionesId, 'ZonasId' => $this->ZonasId);
     $ventas = Ventaslevel1::model()->countByAttributes(array('EventoId' => $this->EventoId));
     if ($ventas == 0) {
         //Si no hay ventas
         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'=>$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();
         //}
         return parent::beforeDelete();
     } else {
         // Si hay ventas, no elimina
         //error_log(sprintf("v:$ventas EID:%d\n",$this->EventoId),3,'/tmp/errores.php');
         return false;
     }
 }