public function add() { //Utils::pre($_POST);exit(); $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($_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 os ambientes do node central */ $ambientes = $_POST[$this->Reserva->name]['ambientes_id']; unset($_POST[$this->Reserva->name]['ambientes_id']); /** * retiro as mesas do node central */ $mesas = $_POST[$this->Reserva->name]['mesas_id']; unset($_POST[$this->Reserva->name]['mesas_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']); try { /** * validacoes do formulario */ if ($this->Reserva->validates()) { // Utils::pre($this->Reserva->data); // exit(); $this->Reserva->genericUpdate($_POST[$this->Reserva->name]); $idReserva = $_SESSION['Form']['reservas_id']; unset($_SESSION['Form']['reservas_id']); /** * INSERIR UM CONVIDADO NESSE CASO É O PROPRIO CLIENTE QUE ESTA SENDO FEITO A RESERVA */ $this->Reserva->inserirConvidado($_POST[$this->Reserva->name]['clientes_id'], $idReserva); /** * gravar mesas */ $this->Reserva->mesasReservas($mesas, $idReserva, $_POST[$this->Reserva->name]['start']); /** * gravar ambientes */ $this->Reserva->AmbientesReservas($ambientes, $idReserva); /** * recupero o salão e ambiente da reserva */ $dadoEmailReserva = $this->Reserva->recuperaDadosReservaEmail($idReserva); /** * VERIFICO SE O CLIENTE TEM EMAIL CADASTRADO */ if (!empty($dadoEmailReserva[0]['email']) && Session::read('Empresa.envio_sistema') == 1) { /** * envio o email para o cliente cadastrado para inserir na lista os dados das pessoas relacionadas */ $email = new Email(); $email->useTable = 'emails_sistema'; $registro = $email->find('first', array('tag' => 'reserva_nova')); /** * recupero o endereço da empresa */ $endereco = $this->Endereco->findEnderecosEmpresa($this->empresas_id); $enderecoEmpresa = $endereco[0]['logradouro'] . ', ' . $endereco[0]['numero'] . ' | ' . $endereco[0]['cidade'] . ' - ' . $endereco[0]['bairro'] . ' - ' . $endereco[0]['uf']; /** * recupero as mesas */ $mesaModel = new Mesa(); $ambientesModel = new Ambiente(); $mesas = $mesaModel->selectIn($mesas); $ambientes = $ambientesModel->ambientesReservas($idReserva); /** * #faço a troca de siglas para personalizar o email */ $dataMail = explode(' ', Utils::convertData($dataCallendar)); $email->useTable = 'empresas_email_parametros'; $email_parametros = $email->find('first', array('emails_sistema_id' => 5, 'empresas_id' => $this->empresas_id)); $corpoEmailConfirmacao = $email->ajusteEmailConfirmacao($registro[0]['Email']['corpo_mail'], $email_parametros[0][$email->name]); $array = array('__CLIENTE__' => $cliente[0]['Cliente']['nome'], '__DATE__' => date('d/m/Y h:i:s'), '__NOME_FANTASIA__' => Session::read('Empresa.nome_fantasia'), '__LOGO__' => Session::read('Empresa.logo'), '__CONVIDADOS__' => $_POST[$this->Reserva->name]['qtde_pessoas'], '__LUGARES__' => $_POST[$this->Reserva->name]['assentos'], '__ENDERECO_EMPRESA__' => $enderecoEmpresa, '__MESAS__' => join(' - ', array_values($mesas)), '__DATA_INICIO__' => $dataMail[0], '__HORAS_INICIO__' => $dataMail[1], '__SALAO__' => $dadoEmailReserva[0]['salao'], '__AMBIENTE__' => join(' - ', array_values($ambientes)), '__CAPACIDADE__' => $dadoEmailReserva[0]['capacidade'], '__URL_ATIVAR__' => Router::url(array('Reservas', 'confirmReservaEmail', $_POST[$this->Reserva->name]['token']))); #envio o email de confirmação para o meu cliente cadastrado $objeto = new MailPHPMailer(); $objeto->setAssunto('Reserva: ' . Session::read('Empresa.nome_fantasia')); //$objeto->setRemetente(); /** * CORPO DO EMAIL */ $corpoEmailConfirmacao = str_replace(array_keys($array), array_values($array), $corpoEmailConfirmacao); $objeto->setBody($corpoEmailConfirmacao); /** * DESTINO PARA QUEM VAI O EMAIL - CLIENTE */ $objeto->setDestinatario($dadoEmailReserva[0]['email'], $dadoEmailReserva[0]['cliente']); $emailEnvio = $objeto->sendMail(); if ($emailEnvio) { $gravaEmail = array('reservas_id' => $idReserva, 'empresas_id' => $_POST[$this->Reserva->name]['empresas_id'], 'pessoas_id' => $this->pessoas_id, 'clientes_id' => $_POST[$this->Reserva->name]['clientes_id'], 'created' => date('Y-m-d H:i:s'), 'status' => 1); $this->Reserva->gravaEnvioEmail($gravaEmail); } } // echo json_encode(array( // 'funcao' => "sucessoForm( 'Cadastro efetuado com sucesso!', '#ReservaAddForm' ); " // . "window.location.reload();", // )); echo json_encode(array('funcao' => "sucessoForm( 'Cadastro efetuado com sucesso!', '#ReservaAddForm' ); " . "filtrarReservas( '' , '{$_POST[$this->Reserva->name]['start']}', '' ); " . "disponibilidadeDeMesas( '{$_POST[$this->Reserva->name]['start']}' );" . "\$('#loading').fadeOut(500);" . "\$('#ModalFormulario').modal('hide');")); } else { echo json_encode(array('erros' => $this->Reserva->validateErros, 'form' => 'ReservaAddForm')); } } catch (SystemException $ex) { echo $ex->getErrorJson('#ReservaAddForm'); } catch (Exception $e) { echo $e->getMessage(); } }