<?php

class Mensajeria extends Controller {

    protected $cliente;

    public function __construct() {
        if (!isset($_SESSION['login_user']) || !(in_array('admin', $_SESSION['login_user']['PRIVILEGIOS']) || in_array('b', $_SESSION['login_user']['PRIVILEGIOS']))) {
            header('Location:' . URL_SITIO);
            exit();
        }
        parent::__construct();

        try {
            $this->cliente = new SoapClient(null, array('location' => URL_WEBSERVICE . 'webservices/mensajeria/', 'uri' => 'urn:webservices')); // Llamar al método como si fuera del cliente 
        } catch (Exception $e) { //verificar errores
            echo $e->getMessage();
            exit();
        }
    }

    public function index() {

        $mensajes = $this->cliente->getMensajes();
        $locales = $mensajes['locales'];
        $mensajes = $mensajes['mensajes'];
        
        $css_template = array('mensajeria');
        $js_template = array('mensajeria');
        $page_template = 'mensajeria/index';
        $url_mensajeria = URL_SITIO . 'mensajeria';

        require APP_DIR . '/views/_templates/general.php';
    }

    public function id($id = NULL) {
        if (!$id) {
            header('Location:' . URL_SITIO);
            exit();
        }
        $mensajes = $this->cliente->getMensaje($id);

        if ($mensajes && $mensajes['destinatarios']) {
            foreach ($mensajes['destinatarios'] as $destinatario) {
                if ($destinatario['destinatario'] == 0 && $destinatario['fecha_leido'] == NULL) {
                    $this->cliente->setLeido(0, $id); //0 id de HEAD
                }
            }
        }

        $css_template = array('mensajeria_ver');
        $js_template = array();
        $page_template = 'mensajeria/view';
        $url_mensajeria = URL_SITIO . 'mensajeria';

        require APP_DIR . '/views/_templates/general.php';
    }

    public function action($action) {

        if ($action == 'enviar' && isset($_POST['asunto'])) {
            $destinatarios = isset($_POST['local']) ? $_POST['local'] : 0;
            if (!is_array($destinatarios))
                $destinatarios = explode(", ", $destinatarios);

            $data = array(
                'local' => 0,
                'asunto' => $_POST['asunto'],
                'cuerpo' => $_POST['mensaje'],
                'respuesta_ID' => isset($_POST['respuestaId']) ? $_POST['respuestaId'] : 0,
                'ID_usuario' => $_SESSION['login_user']['ID'],
                'nombre_usuario' => $_SESSION['login_user']['USUARIO'],
                'destinatario' => $destinatarios,
                'fecha_generado' => date('Ymd H:i:s')
            );

            $result = $this->cliente->enviar($data);
            echo json_encode($result);
        } elseif ($action == 'leido' && $_POST['id']) {
            echo json_encode(array('return' => $this->cliente->setLeido(0, $_POST['id'])));
        }

        exit();
    }

}
