Ejemplo n.º 1
0
 /**
  * OK
  **/
 public function ajaxPlanol()
 {
     $request = $this->getAjaxData();
     $Origen = $request['Origen'];
     //Si cliquem botó nova venda, genera un nou codi de comanda
     if (isset($request['NovaVenta'])) {
         if ($request['NovaVenta']) {
             $this->NovaVenta();
         }
     }
     $STO = new SessioTableObject(null, SessioTableObject::FROM_EMPTY);
     $STO->loadById($request['idSessio']);
     $ETO = new EspectacleTableObject(null, EspectacleTableObject::FROM_EMPTY);
     $ETO->loadById($STO->sessio['s_idEspectacle']);
     //Carrego les localitats
     $OL = $STO->getLocalitats();
     //Carrego el teatre
     $TTO = new TeatreTableObject(null, TeatreTableObject::FROM_EMPTY);
     $TTO->loadById($STO->sessio['s_idTeatre']);
     $planol = $TTO->getPlanol();
     $ZonesPlanol = $TTO->getZones();
     //Ordeno els preus per zones i activitat general
     $LlistatPreusActivitat = array();
     $LlistatPreusPerZona = array();
     foreach ($STO->getPreus() as $K => $P) {
         if ($Origen == 'web' && $P->isVisibleInternet() || $Origen == 'admin') {
             //Guardem el preu segons codi de preu
             $LlistatPreusActivitat[$P->preu['idPreu']] = $P;
             //Si tenim un preu per totes les zones, el marquem per totes les zones
             if ($P->preu['zona'] == '*') {
                 foreach ($ZonesPlanol as $Z) {
                     $LlistatPreusPerZona[$Z][] = $P;
                 }
             }
             $LlistatPreusPerZona[$P->preu['zona']][] = $P;
         }
     }
     //Retornaré els preus per zones i les localitats que hi ha a la sala
     $RET = array('preusZones' => array(), 'seients' => array(), 'SessioData' => array());
     //Carrego l'array amb els preus de les zones... per poder escollir al desplegable
     foreach ($LlistatPreusPerZona as $K => $V) {
         $RET['preusZones'][] = array('zona' => $K, 'preus' => $V);
     }
     //Genero el plànol
     foreach ($planol['zones'] as $idZ => $Z) {
         foreach ($Z['files'] as $idF => $F) {
             foreach ($F['seients'] as $idS => $S) {
                 $idLocalitat = $Z['codi'] . '-' . intval($F['num_fila']) . '-' . intval($S['numero']) . '-' . $STO->getSessioId();
                 //Si és un seient i existeix la localitat carrego el tipus de localitat
                 if (strcmp($S['tipus'], 'planol-cercle') == 0 && isset($OL[$idLocalitat])) {
                     $planol['zones'][$idZ]['files'][$idF]['seients'][$idS]['tipus'] = $OL[$idLocalitat]->getTipusLocalitat(Session::get('idComanda'), $Origen);
                 }
                 //Si per la zona que busquem no hi ha preus, deshabilitem la zona
                 if (isset($LlistatPreusPerZona[$Z['codi']][0])) {
                     $planol['zones'][$idZ]['files'][$idF]['seients'][$idS]['preuEscollit'] = $LlistatPreusPerZona[$Z['codi']][0];
                 } else {
                     $planol['zones'][$idZ]['files'][$idF]['seients'][$idS]['tipus'] = 'planol-cercle-deshabilitat';
                 }
                 $planol['zones'][$idZ]['files'][$idF]['seients'][$idS]['idSeient'] = $idLocalitat;
                 $planol['zones'][$idZ]['files'][$idF]['seients'][$idS]['numero'] = intval($S['numero']);
             }
         }
     }
     $RET['seients'] = $planol;
     $RET['SessioData'] = array('Espectacle' => $ETO, 'Sessio' => $STO);
     echo json_encode($RET);
 }
Ejemplo n.º 2
0
 public function saveSessioFromEdit()
 {
     $request = $this->getAjaxData();
     $OSessio = $request['OSessio'];
     $OEspectacle = $request['OEspectacle'];
     $ETO = new EspectacleTableObject($OEspectacle, EspectacleTableObject::FROM_JSON);
     $STO = new SessioTableObject($OSessio, SessioTableObject::FROM_FORM);
     $ETO->doSave();
     $STO->doSave(true);
 }
Ejemplo n.º 3
0
 /**
  * Funció que esborra una sessió
  **/
 public function doDelete()
 {
     //Hem de comprovar que no hi hagi localitats en aquesta sessió... si n'hi ha, no podem esborrar-la fins que buidem totes les localitats
     $LTO = new LocalitatTableObject();
     if (sizeof($this->getLocalitatsOcupades()) > 0) {
         throw new MyException("No pots esborrar una sessió que té localitats ocupades o reservades.");
     } else {
         if ($this->sessio['s_id'] > 0) {
             //Carrego l'espectacle i si no hi ha cap més sessió, l'esborro
             $ETO = new EspectacleTableObject(null, EspectacleTableObject::FROM_EMPTY);
             $ETO->loadById($this->sessio['s_idEspectacle']);
             if ($ETO->getNumSessionsByEspectacle() == 0) {
                 $ETO->doDelete();
             }
             $this->db->delete('sessions', array('s_id' => $this->sessio['s_id']));
             $stmt = $this->db->prepare('CALL update_mesos()');
             $stmt->execute();
         } else {
             throw new MyException("No puc esborrar una sessió sense codi.");
         }
     }
 }