예제 #1
0
 public function edit()
 {
     $idReserva = NULL;
     $_POST[$this->Reserva->name]['id'] = $_SESSION['Form']['reservas_id'];
     /**
      * recupero o id do meu cliente
      */
     $cliente = $this->Cliente->find('first', array('md5(id)' => $_POST[$this->Reserva->name]['clientes_id']));
     $_POST[$this->Reserva->name]['clientes_id'] = $cliente[0]['Cliente']['id'];
     $_POST[$this->Reserva->name]['title'] = $cliente[0]['Cliente']['nome'];
     $_POST[$this->Reserva->name]['status'] = 1;
     $_POST[$this->Reserva->name]['token'] = Authentication::uuid();
     /**
      * trabalho com as datas para ficar no padrão do fullcalendar 
      */
     $dataCallendar = Utils::convertDataSemHora(trim($_POST[$this->Reserva->name]['data'])) . ' ' . $_POST[$this->Reserva->name]['hora'];
     $_POST[$this->Reserva->name]['start'] = $dataCallendar;
     $_POST[$this->Reserva->name]['end'] = Utils::adicionaHora(1, $dataCallendar);
     /**
      * retiro as mesas do node central
      */
     $mesas = $_POST[$this->Reserva->name]['mesas_id'];
     unset($_POST[$this->Reserva->name]['mesas_id']);
     /**
      * retiro os ambientes
      */
     $ambientes = $_POST[$this->Reserva->name]['ambientes_id'];
     unset($_POST[$this->Reserva->name]['ambientes_id']);
     $_POST[$this->Reserva->name]['empresas_id'] = $this->empresas_id;
     $_POST[$this->Reserva->name]['pessoas_id'] = $this->pessoas_id;
     //unset($_POST['Reserva']);
     $this->Reserva->data = $_POST[$this->Reserva->name];
     unset($_POST[$this->Reserva->name]['data']);
     unset($_POST[$this->Reserva->name]['hora']);
     //Utils::pre($_POST); exit;
     try {
         /**
          * validacoes do formulario
          */
         if ($this->Reserva->validates()) {
             $modelMesa = new Mesa();
             $modelMesa->mesasAmbientesVerify($_POST[$this->Reserva->name]['id'], $_POST[$this->Reserva->name]['start'], $mesas);
             $this->Reserva->genericUpdate($_POST[$this->Reserva->name]);
             $idReserva = $_SESSION['Form']['reservas_id'];
             unset($_SESSION['Form']['reservas_id']);
             /**
              * gravar mesas
              * a regra na edição é deletar todas a mesas da reserva e depois inserir novamente
              */
             $this->Reserva->deletaMesas($idReserva);
             $this->Reserva->mesasReservas($mesas, $idReserva, $_POST[$this->Reserva->name]['start']);
             $this->Reserva->deletaAmbientes($idReserva);
             $this->Reserva->AmbientesReservas($ambientes, $idReserva);
             echo json_encode(array('funcao' => "sucessoForm( 'Sua alteração efetuada com sucesso!', '#ReservaAddForm' ); " . "filtrarReservas( '' , '{$_POST[$this->Reserva->name]['start']}', '' ); " . "disponibilidadeDeMesas( '{$_POST[$this->Reserva->name]['start']}' );" . "\$('#ModalFormulario').modal('hide');" . "\$('#loading').fadeOut(500);"));
         } else {
             echo json_encode(array('erros' => $this->Reserva->validateErros, 'form' => 'ReservaAddForm'));
         }
     } catch (SystemException $ex) {
         echo $ex->getErrorJson('#ReservaAddForm');
     } catch (Exception $e) {
         $json = json_encode(array('message' => $e->getMessage(), "style" => 'warning', 'time' => 5000, 'size' => 'md', 'callback' => NULL, 'before' => "\$('#loading').fadeOut(200);", 'icon' => 'check', 'title' => 'Atenção leia as instruções!'));
         echo json_encode(array('funcao' => "bootsAlert( {$json} );"));
     }
 }