/** * 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); }
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); }
/** * 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."); } } }