<?php

class ServicosSite extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper(get_helpers_paginas());
        ValidacaoUtils::verificarLoginSite($this->session);
        $this->load->model('site/servicossite_model');
    }

    function index() {
    }

    public function adicionarReservas() {
        $data = array(
            'dataReserva' => $this->input->post('dataReserva'),
            'morador_id' => $this->session->userdata('idMorador'),
            'itemReservado' => $this->input->post('itemReservado'),
            'periodoReserva' => $this->input->post('periodoReserva'),
            'convidados' => $this->input->post('convidados')
        );

        if (is_numeric($id = $this->servicossite_model->add('reserva', $data, true))) {
            $this->session->set_flashdata('success', 'Reserva solicitada com sucesso.');

            GerenciarEmail::enviarTodosEmails("Solicitação de Reserva", $this->session->userdata('email_morador'),
                $this->mensagemDoEmail("Solicitação de Reserva foi realizada com sucesso"));

            $this->enviarSMSReserva();

        } else {
            $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
        }
        $this->direcionarPaginaPara('reservas');
    }

    public function enviarSMSReserva() {
        $morador = $this->servicossite_model->getBuscar($this->session->userdata('idMorador'), 'morador', 'idMorador');

        $dadosMorador = $morador->nm_morador.': AP: '.$morador->nr_apartamento.'-'.$morador->blocoApartamento;
        $itemReservado = $this->input->post('itemReservado');
        $dataReserva = $this->input->post('dataReserva');
        $nrDestino = preg_replace("/[^0-9]/","", $morador->nr_celular);

        $mensagem = urlencode('COND. PARQUE DAS ARVORES: Informa: '.$dadosMorador.
            ', RESERVA: Registrada, ITEM SOLICITADO: ' . $itemReservado .
            ', DATA: ' . date('d/m/Y', strtotime($dataReserva)).
            ', SITUACAO: Aguarde Confirmação');

        GerenciarEmail::enviarSMS($nrDestino, $mensagem);
    }

    public function adicionarMudanca() {
        $data = array(
            'dataMudanca' => $this->input->post('dataMudanca'),
            'horarioMudanca' => $this->input->post('horarioMudanca'),
            'morador_id' => $this->session->userdata('idMorador'),
            'responsavelMudanca' => $this->input->post('responsavelMudanca'),
            'foneContatoMudanca' => $this->input->post('foneContatoMudanca'),
            'situacaoMudanca' => "Pendente",
            'periodoMudanca' => $this->input->post('periodoMudanca')
        );

        if (is_numeric($id = $this->servicossite_model->add('mudanca', $data, true))) {

            GerenciarEmail::enviarTodosEmails("Solicitação de Mudança", $this->session->userdata('email_morador'),
                $this->mensagemDoEmail("Solicitação de Mudança foi realizada com sucesso"));

            $this->enviarSMSMudanca();
            $this->session->set_flashdata('success', 'mudanca agendada com sucesso.');

        } else {
            $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
        }
        $this->direcionarPaginaPara('mudancas');
    }


    public function enviarSMSMudanca() {
        $morador = $this->servicossite_model->getBuscar($this->session->userdata('idMorador'), 'morador', 'idMorador');

        $dadosMorador = $morador->nm_morador.'| AP: '.$morador->nr_apartamento.'-'.$morador->blocoApartamento;
        $dataMudanca = $this->input->post('dataMudanca');
        $horarioMudanca = $this->input->post('horarioMudanca');
        $nrDestino = preg_replace("/[^0-9]/","", $morador->nr_celular);

        $mensagem = urlencode('COND. PARQUE DAS ARVORES: Informa: '.$dadosMorador.
            ', solicitacao de MUDANÇA registrada, DATA: ' . date('d/m/Y', strtotime($dataMudanca)) .
            ', HORARIO: ' . $horarioMudanca.', Aguarde Confirmacão');

        GerenciarEmail::enviarSMS($nrDestino, $mensagem);
    }

    public function adicionarOcorrencia() {
        $data = array(
            'dataOcorrencia' => $this->input->post('dataOcorrencia'),
            'horaOcorrencia' => $this->input->post('horaOcorrencia'),
            'morador_id' => $this->session->userdata('idMorador'),
            'responsavelOcorrencia' => $this->input->post('responsavelOcorrencia'),
            'unidadeEnvolvida' => $this->input->post('unidadeEnvolvida'),
            'nomeFuncionario' => $this->input->post('nomeFuncionario'),
            'localOcorrencia' => $this->input->post('localOcorrencia'),
            'situacaoOcorrencia' => "Pendente",
            'ocorrencia' => $this->input->post('ocorrencia'),
            'categoria' => $this->input->post('categoria')
        );

        if (is_numeric($id = $this->servicossite_model->add('livro_ocorrencia', $data, true))) {

            GerenciarEmail::enviarTodosEmails("Registro de Ocorrência", $this->session->userdata('email_morador'),
                $this->mensagemDoEmail("Registro de ocorrência foi realizada com sucesso"));

            $this->enviarSMSOcorrencia();

            $this->session->set_flashdata('success', 'ocorrencia cadastrada com sucesso.');

        } else {
            $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
        }
        $this->direcionarPaginaPara('ocorrencias');
    }

    public function enviarSMSOcorrencia() {
        $morador = $this->servicossite_model->getBuscar($this->session->userdata('idMorador'), 'morador', 'idMorador');

        $dadosMorador = $morador->nm_morador.': AP: '.$morador->nr_apartamento.'-'.$morador->blocoApartamento;
        $categoria = $this->input->post('categoria');
        $dataOcorrencia = $this->input->post('dataOcorrencia');
        $nrDestino = preg_replace("/[^0-9]/","", $morador->nr_celular);

        $mensagem = urlencode('COND. PARQUE DAS ARVORES: Informa: '.$dadosMorador.
            ', OCORRENCIA Registrada, CATEGORIA: ' . $categoria .
            ', DATA: ' . date('d/m/Y', strtotime($dataOcorrencia)));

        GerenciarEmail::enviarSMS($nrDestino, $mensagem);
    }

    private function mensagemDoEmail($data) {
        $this->data['dadosSolicitacao'] = $data;
        return $this->load->view('site/paginas/confirmacao/confirmacaoSolicitacaoSite', $this->data, TRUE);
    }

    public function direcionarPaginaPara($pagina) {
        if (!$this->isMobile()) {
            redirect('site/paginasSite/' . $pagina);
        } else {
            redirect('site/paginasSiteMobile/' . $pagina);
        }
    }

    public function isMobile() {
        return preg_match("/(android:avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i",
            $_SERVER["HTTP_USER_AGENT"]);
    }

}