<?php

class Agenda extends CI_Controller {

    private $modelPagina = 'agenda_model';
    const TBL_014_AGENDA = 'tbl_014_agenda';
    const TODOS_CAMPOS_TABELA = '*';

    function __construct() {
        parent::__construct();
        $this->load->helper(get_helpers_paginas());
        ValidacaoUtils::verificarLoginUtils($this->session);
        ValidacaoUtils::nivelTemAcessoPermitido($this->session->userdata('nivel'), $this->router->class);
        ValidacaoUtils::carregarModelsPagina(array($this->modelPagina), $this);
    }

    function index() {
        $this->gerenciar();
    }

    function gerenciar() {
        $this->data['compromissos'] = $this->agenda_model->getPlanejamentos();
        $this->data['resultscomboFuncionarios'] = $this->agenda_model->get('tbl_010_funcionario','');
        $this->data['view'] = 'sistema/agenda';
        $this->load->view(DadosPaginas::PG_TOPO_SISTEMA, $this->data);
    }

    public function adicionarAgenda() {
        $dadosDoPlanoEPaciente = array(
            'DS_AGENDA' => $this->input->post('dsAgenda'),
            'hsInicioAgenda' => $this->input->post('hsInicioAgenda'),
            'hsFimAgenda' => $this->input->post('hsFimAgenda'),
            'TP_AGENDA' => $this->input->post('tpAgenda'),
            'VEICULO_ID' => $this->input->post('veiculo_id'),
            'DS_AGENDA' => $this->input->post('garantia'),
            'USUARIO_ID' => $this->session->userdata('id'), //usuario que Abriu o chamado
            'DT_AGENDA' => $this->input->post('dtAgenda')
        );
        if (is_numeric($id = $this->agenda_model->add(self::TBL_014_AGENDA, $dadosDoPlanoEPaciente, true))) {
            $this->session->set_flashdata('success', 'Planejamento adicionado com sucesso.');
//            $this->enviarSMSMoradorAdicionar($dadosDoPlanoEPaciente);
        } else {
            $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
        }

        redirect('agenda/');
//        $this->gerenciar();

    }

    public function editarAgenda() {
        $dadosDoPlanoEPaciente = array(
            'dsAgenda' => $this->input->post('dsAgenda'),
            'hsInicioAgenda' => $this->input->post('hsInicioAgenda'),
            'hsFimAgenda' => $this->input->post('hsFimAgenda'),
            'nomePaciente' => $this->input->post('nomePaciente'),
            'fonePaciente' => $this->input->post('fonePaciente'),
            'tpAgenda' => $this->input->post('tpAgenda'),
            'dtAgenda' => $this->input->post('dtAgenda')
        );
        if ($this->agenda_model->edit(self::TBL_014_AGENDA, $dadosDoPlanoEPaciente, 'idAgenda', $this->input->post('idEditar')) == TRUE) {
            $this->session->set_flashdata('success', 'Agenda Modificada com sucesso.');
            $this->enviarSMSMoradorAdicionar($dadosDoPlanoEPaciente);
        } else {
            $this->data['custom_error'] = '<div class="form_error"><p>Ocorreu um erro.</p></div>';
        }

        $this->gerenciar();

    }


    public function enviarSMSMoradorAdicionar($dados) {
        $nomePaciente = $this->input->post('nomePaciente');
        $dataMudanca = $this->input->post('dtAgenda');
        $tipo = strtoupper($this->input->post('tpAgenda'));;
        $horarioMudanca = $this->input->post('hsInicioAgenda');
        $nrDestino = preg_replace("/[^0-9]/", "", $this->input->post('fonePaciente'));

        $mensagem = urlencode('MARCIA NUTRICIONISTA: Informa: ' . $nomePaciente .
            ', solicitacao de Agendamento de: ' . $tipo .
            ',  registrada, DATA: ' . $dataMudanca .
            ', HORARIO: ' . $horarioMudanca);

        $this->enviarSMS($nrDestino, $mensagem);
        //$this->gerenciar();
    }

    public function enviarSMS($nrDestino, $mensagem) {
        $contaUsuario = "william.ribeiro1";
        $senhaConta = "Luz185649";
        $urlChamada = "https://www.facilitamovel.com.br/api/simpleSend.ft?user={$contaUsuario}&password={$senhaConta}&destinatario={$nrDestino}&msg=" . $mensagem;

        if (!empty($nrDestino)) {
            if (file_get_contents($urlChamada)) {
                $this->session->set_flashdata('success', 'Mensagem de Texto Enviada com Sucesso !');
            } else {
                $this->session->set_flashdata('error', 'Mensagem de Texto Não Enviada !');
            }
        } else {
            $this->session->set_flashdata('error', 'Morador não possui Celular cadastrado !');
        }
    }


    function excluir() {
        $id = $this->input->post('id');
        if ($id == null) {
            $this->session->set_flashdata('error', 'Erro ao tentar excluir Planejamento.');
        }
        $this->db->where('ID_AGENDA', $id);
        $this->db->delete(self::TBL_014_AGENDA);
        $this->session->set_flashdata('success', 'Planejamento excluído com sucesso!');
        $this->gerenciar();
    }

    function painelPacientes() {
        $this->data['view'] = 'sistema/pacientes/painelPacientes';
        $this->load->view('sistema/temas/topo', $this->data);
    }

    public function autoCompletePaciente() {
        if (isset($_GET['term'])) {
            $q = strtolower($_GET['term']);
            $this->agenda_model->autoCompletePaciente($q);
        }
    }


}