<?php
#   SGT - The SGT for Internet - http://sgt.eti.br
#   Copyright (c) 2016-2018, Jean Azevedo. All rights reserved.

#   This file is part of SGT.

#   SGT is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   any later version.

#   SGT is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.

#   You should have received a copy of the GNU General Public License
#   along with Foobar.  If not, see <http://www.gnu.org/licenses/>.

    include("../seguranca_aux_unid.php");
    protegePagina();
    include "../conectar.php";
    include "../log_.php";
    include "../mail.php";
    $id_user = $_SESSION['usuarioID'];
    $email = 0;
    $email_ = 0;
    if($_SERVER['REQUEST_METHOD']=='GET'){
        $buscar=$pdo_sgt->prepare("SELECT * FROM tb_hd_c WHERE id=:id");
        $buscar->bindValue(":id",$_GET['id']);
        $buscar->execute();
        $dados=$buscar->fetch(PDO::FETCH_ASSOC);
        $buscar_user=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
        $buscar_user->bindValue(":id",$dados['de']);
        $buscar_user->execute();
        $dados_user=$buscar_user->fetch(PDO::FETCH_ASSOC);
        $buscar_unid=$pdo_sgt->prepare("SELECT * FROM tb_unidades WHERE id=:id");
        $buscar_unid->bindValue(":id",$dados_user['unidade']);
        $buscar_unid->execute();
        $dados_unid=$buscar_unid->fetch(PDO::FETCH_ASSOC);
    } elseif($_SERVER['REQUEST_METHOD']=='POST'){
        $id = isset($_POST["id"]) ? $_POST["id"]: '';
        $id = ($id);
        $busca_=$pdo_sgt->prepare("SELECT * FROM tb_hd_c WHERE id=:id");
        $busca_->bindValue(":id",$id);
        $busca_->execute();
        $dados_=$busca_->fetch(PDO::FETCH_ASSOC);
        if($dados_['de'] != $id_user && $dados_['para'] != $id_user){
            $busca_user_email_a=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
            $busca_user_email_a->bindValue(":id",$id_user);
            $busca_user_email_a->execute();
            $dados_user_email_a=$busca_user_email_a->fetch(PDO::FETCH_ASSOC);
            $email_email_a = $dados_user_email_a['email'];
            $email_nome_a = $dados_user_email_a['nome'];
            $email_sobrenome_a = $dados_user_email_a['sobrenome'];
            $email_nome_sobrenome_a = "$email_nome_a $email_sobrenome_a";
            $busca_user_email_p=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
            $busca_user_email_p->bindValue(":id",$dados_['para']);
            $busca_user_email_p->execute();
            $dados_user_email_p=$busca_user_email_p->fetch(PDO::FETCH_ASSOC);
            $email_email_p = $dados_user_email_p['email'];
            $email_nome_p = $dados_user_email_p['nome'];
            $email_sobrenome_p = $dados_user_email_p['sobrenome'];
            $email_nome_sobrenome_p = "$email_nome_p $email_sobrenome_p";
            $busca_user_email_d=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
            $busca_user_email_d->bindValue(":id",$dados_['de']);
            $busca_user_email_d->execute();
            $dados_user_email_d=$busca_user_email_d->fetch(PDO::FETCH_ASSOC);
            $email_email_d = $dados_user_email_d['email'];
            $email_nome_d = $dados_user_email_d['nome'];
            $email_sobrenome_d = $dados_user_email_d['sobrenome'];
            $email_nome_sobrenome_d = "$email_nome_d $email_sobrenome_d";
        } else {
            if($dados_['para'] != $id_user){
                $busca_user_email_p=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
                $busca_user_email_p->bindValue(":id",$dados_['para']);
                $busca_user_email_p->execute();
                $dados_user_email_p=$busca_user_email_p->fetch(PDO::FETCH_ASSOC);
                $email_email_p = $dados_user_email_p['email'];
                $email_nome_p = $dados_user_email_p['nome'];
                $email_sobrenome_p = $dados_user_email_p['sobrenome'];
                $email_nome_sobrenome_p = "$email_nome_p $email_sobrenome_p";
                $busca_user_email_a=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
                $busca_user_email_a->bindValue(":id",$dados_['de']);
                $busca_user_email_a->execute();
                $dados_user_email_a=$busca_user_email_a->fetch(PDO::FETCH_ASSOC);
                $email_email_a = $dados_user_email_a['email'];
                $email_nome_a = $dados_user_email_a['nome'];
                $email_sobrenome_a = $dados_user_email_a['sobrenome'];
                $email_nome_sobrenome_a = "$email_nome_a $email_sobrenome_a";
            } else {
                $busca_user_email_p=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
                $busca_user_email_p->bindValue(":id",$dados_['de']);
                $busca_user_email_p->execute();
                $dados_user_email_p=$busca_user_email_p->fetch(PDO::FETCH_ASSOC);
                $email_email_p = $dados_user_email_p['email'];
                $email_nome_p = $dados_user_email_p['nome'];
                $email_sobrenome_p = $dados_user_email_p['sobrenome'];
                $email_nome_sobrenome_p = "$email_nome_p $email_sobrenome_p";
                $busca_user_email_a=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
                $busca_user_email_a->bindValue(":id",$dados_['para']);
                $busca_user_email_a->execute();
                $dados_user_email_a=$busca_user_email_a->fetch(PDO::FETCH_ASSOC);
                $email_email_a = $dados_user_email_a['email'];
                $email_nome_a = $dados_user_email_a['nome'];
                $email_sobrenome_a = $dados_user_email_a['sobrenome'];
                $email_nome_sobrenome_a = "$email_nome_a $email_sobrenome_a";
            }
        }
        $id_ = $dados_['id'];
        $hora = date('Y-m-d H:i:s');
        $id_user = $_SESSION['usuarioID'];
        $pro = isset($_POST["pro"]) ? $_POST["pro"]: '';
        $prio = isset($_POST["prio"]) ? $_POST["prio"]: '';
        $atri = isset($_POST["atri"]) ? $_POST["atri"]: '';
        $desc = isset($_POST["desc"]) ? $_POST["desc"]: '';
        $ver = (isset($_POST['ver'])) ? 1 : 0;
        $status = isset($_POST["status"]) ? $_POST["status"]: '';
        $ant = '';
        $html_desc = strpos($desc , '<p>');
        if($status != 4){
            if($html_desc != false){
                $status = 2;
            }
        }
        if($dados_['produto'] != $pro){
            $busca_pro_=$pdo_sgt->prepare("SELECT * FROM tb_hd_pro WHERE id=:id");
            $busca_pro_->bindValue(":id",$dados_['produto']);
            $busca_pro_->execute();
            $dados_pro_=$busca_pro_->fetch(PDO::FETCH_ASSOC);
            $busca_pro=$pdo_sgt->prepare("SELECT * FROM tb_hd_pro WHERE id=:id");
            $busca_pro->bindValue(":id",$pro);
            $busca_pro->execute();
            $dados_pro=$busca_pro->fetch(PDO::FETCH_ASSOC);
            $alt_1 = $dados_pro_['produto'];
            $alt_2 = $dados_pro['produto'];
            $alt_pro = "$alt_1 > $alt_2";
            $query=$pdo_sgt->prepare("INSERT INTO tb_hd_hist (cha,de,dt,hist,alt) VALUES (:cha,:de,:dt,:hist,:alt)");
            $query->bindValue(":cha",$id);
            $query->bindValue(":de",$id_user);
            $query->bindValue(":dt",$hora);
            $query->bindValue(":hist","Produto foi alterado!");
            $query->bindValue(":alt",$alt_pro);
            $query->execute();
            $query=$pdo_sgt->prepare("UPDATE tb_hd_c SET produto=:pro WHERE id=:id");
            $query->bindValue(":pro",$pro);
            $query->bindValue(":id",$id);
            $query->execute();
            $email = 1;
        }
        if($dados_['priori'] != $prio){
            $pri_tp_ = "";
            $pri_tp = "";
            switch($dados_['priori']) { case 1 : $pri_tp_="Baixa"; break; case 2 : $pri_tp_="Normal"; break; case 3 : $pri_tp_="Alta"; break; default: $pri_tp_="Crítica"; }
            switch($prio) { case 1 : $pri_tp="Baixa"; break; case 2 : $pri_tp="Normal"; break; case 3 : $pri_tp="Alta"; break; default: $pri_tp="Crítica"; }
            $alt_1 = $pri_tp_;
            $alt_2 = $pri_tp;
            $alt_prio = "$alt_1 > $alt_2";
            $query=$pdo_sgt->prepare("INSERT INTO tb_hd_hist (cha,de,dt,hist,alt) VALUES (:cha,:de,:dt,:hist,:alt)");
            $query->bindValue(":cha",$id);
            $query->bindValue(":de",$id_user);
            $query->bindValue(":dt",$hora);
            $query->bindValue(":hist","Prioridade foi alterado!");
            $query->bindValue(":alt",$alt_prio);
            $query->execute();
            $query=$pdo_sgt->prepare("UPDATE tb_hd_c SET priori=:prio WHERE id=:id");
            $query->bindValue(":prio",$prio);
            $query->bindValue(":id",$id);
            $query->execute();
            $email = 1;
        }
        if($dados_['para'] != $atri){
            $buscar_user=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
            $buscar_user->bindValue(":id",$atri);
            $buscar_user->execute();
            $dados_user = $buscar_user->fetch(PDO::FETCH_ASSOC);
            $buscar_user_=$pdo_sgt->prepare("SELECT * FROM tb_usuarios WHERE id=:id");
            $buscar_user_->bindValue(":id",$dados_['para']);
            $buscar_user_->execute();
            $dados_user_ = $buscar_user_->fetch(PDO::FETCH_ASSOC);
            $buscar_unid=$pdo_sgt->prepare("SELECT * FROM tb_unidades WHERE id=:id");
            $buscar_unid->bindValue(":id",$dados_user['unidade']);
            $buscar_unid->execute();
            $dados_unid = $buscar_unid->fetch(PDO::FETCH_ASSOC);
            $buscar_unid_=$pdo_sgt->prepare("SELECT * FROM tb_unidades WHERE id=:id");
            $buscar_unid_->bindValue(":id",$dados_user_['unidade']);
            $buscar_unid_->execute();
            $dados_unid_ = $buscar_unid_->fetch(PDO::FETCH_ASSOC);
            $u_u_ = $dados_unid_['unidade'];
            $u_n_ = $dados_user_['nome'];
            $u_s_ = $dados_user_['sobrenome'];
            $u_u = $dados_unid['unidade'];
            $u_n = $dados_user['nome'];
            $u_s = $dados_user['sobrenome'];
            $u_e = $dados_user['email'];
            $alt_1 = "$u_u_ - $u_n_ $u_s_";
            $alt_2 = "$u_u - $u_n $u_s";
            $alt_at = "$alt_1 > $alt_2";
            $query=$pdo_sgt->prepare("INSERT INTO tb_hd_hist (cha,de,dt,hist,alt) VALUES (:cha,:de,:dt,:hist,:alt)");
            $query->bindValue(":cha",$id);
            $query->bindValue(":de",$id_user);
            $query->bindValue(":dt",$hora);
            $query->bindValue(":hist","Foi atribuido para outro!");
            $query->bindValue(":alt",$alt_at);
            $query->execute();
            $query=$pdo_sgt->prepare("UPDATE tb_hd_c SET para=:para WHERE id=:id");
            $query->bindValue(":para",$atri);
            $query->bindValue(":id",$id);
            $query->execute();
            $email = 1;
            $email_ = 1;
            $emailcormpo = '<html><body>';
            $emailcormpo .= '<h3 style="color:#000000;">Olá '.$email_nome_sobrenome_d.', '.$u_n_.' '.$u_s_.'  e '.$u_n.' '.$u_s.'!</h3>';
            $emailcormpo .= '<p style="color:#000000;font-size:12px;">O chamado '.$id_.' recebeu alteração do '.$email_nome_sobrenome_a.'.</p>';
            $emailcormpo .= '<p style="color:#000000;font-size:12px;">----------------------------------------------------------------------</p><p></p>';
            $emailcormpo .= '<p style="color:#000000;font-size:14px;">Foi atribuído de: '.$alt_1.', para: '.$alt_2.'.</p>';
            $emailcormpo .= '<p></p><p></p><p></p><p style="color:#000000;font-size:12px;">----------------------------------------------------------------------</p>';
        } else {
            $emailcormpo = '<html><body>';
            $emailcormpo .= '<h3 style="color:#000000;">Olá '.$email_nome_sobrenome_p.'!</h3>';
            $emailcormpo .= '<p style="color:#000000;font-size:12px;">O chamado '.$id_.' recebeu alteração do '.$email_nome_sobrenome_a.'.</p>';
            $emailcormpo .= '<p style="color:#000000;font-size:12px;">----------------------------------------------------------------------</p><p></p>';
        }
        if($dados_['ver'] != $ver){
            if ($dados_['ver'] == 1){ $ver_tp_ = "Público"; } else { $ver_tp_ = "Privado"; }
            if ($ver == 1){ $ver_tp = "Público"; } else { $ver_tp = "Privado"; }
            $alt_p = "$ver_tp_ > $ver_tp";
            $query=$pdo_sgt->prepare("INSERT INTO tb_hd_hist (cha,de,dt,hist,alt) VALUES (:cha,:de,:dt,:hist,:alt)");
            $query->bindValue(":cha",$id);
            $query->bindValue(":de",$id_user);
            $query->bindValue(":dt",$hora);
            $query->bindValue(":hist","Status de visibilidade foram alterados!");
            $query->bindValue(":alt",$alt_p);
            $query->execute();
            $query=$pdo_sgt->prepare("UPDATE tb_hd_c SET ver=:ver WHERE id=:id");
            $query->bindValue(":ver",$ver);
            $query->bindValue(":id",$id);
            $query->execute();
            $email = 1;
        }
        if($dados_['status'] != $status){
            $ant = $dados_['status'];
            switch($dados_['status']) { case 1 : $sta_tp_="Agardando"; break; case 2 : $sta_tp_="Em Andamento"; break; case 3 : $sta_tp_="Pausa"; break; default: $sta_tp_="Encerrado"; }
            switch($status) { case 1 : $sta_tp="Aguardando"; break; case 2 : $sta_tp="Em Andamento"; break; case 3 : $sta_tp="Pausa"; break; default: $sta_tp="Encerrado"; }
            $alt_st = "$sta_tp_ > $sta_tp";
            $query=$pdo_sgt->prepare("INSERT INTO tb_hd_hist (cha,de,dt,hist,alt,status) VALUES (:cha,:de,:dt,:hist,:alt,:status)");
            $query->bindValue(":cha",$id);
            $query->bindValue(":de",$id_user);
            $query->bindValue(":dt",$hora);
            $query->bindValue(":hist","Status do chamado foram alterados!");
            $query->bindValue(":alt",$alt_st);
            $query->bindValue(":status",$status);
            $query->execute();
            if($status != 4){
                $query=$pdo_sgt->prepare("UPDATE tb_hd_c SET status=:status WHERE id=:id");
                $query->bindValue(":status",$status);
                $query->bindValue(":id",$id);
                $query->execute();
            } else {
                $query=$pdo_sgt->prepare("UPDATE tb_hd_c SET status=:status,dt_f=:dt_f WHERE id=:id");
                $query->bindValue(":status",$status);
                $query->bindValue(":dt_f",$hora);
                $query->bindValue(":id",$id);
                $query->execute();
            }
            $email = 1;
            $emailcormpo .= '<p style="color:#000000;font-size:14px;">Status foram alterados:</p>';
            $emailcormpo .= $alt_st;
            $emailcormpo .= '<p></p><p></p><p></p><p style="color:#000000;font-size:12px;">----------------------------------------------------------------------</p>';
        }
        if($html_desc != false){
            $query=$pdo_sgt->prepare("INSERT INTO tb_hd_e (cha,de,dt,descricao) VALUES (:cha,:de,:dt,:desc)");
            $query->bindValue(":cha",$id);
            $query->bindValue(":de",$id_user);
            $query->bindValue(":dt",$hora);
            $query->bindValue(":desc",$desc);
            $query->execute();
            $email = 1;
            $emailcormpo .= '<p style="color:#000000;font-size:14px;">Nota:</p>';
            $emailcormpo .= $desc;
            $emailcormpo .= '<p></p><p></p><p></p><p style="color:#000000;font-size:12px;">----------------------------------------------------------------------</p>';
        }
        if ($email > 0){
            $mail->AddAddress("$email_email_p", "$email_nome_sobrenome_p"); # Os campos podem ser substituidos por variáveis
            if ($email_ > 0){
                $mail->AddCC("$email_email_a", "$email_nome_sobrenome_a"); # Copia
                $mail->AddCC("$email_email_d", "$email_nome_sobrenome_d"); # Copia
            }
            #$mail->AddAddress('webmaster@nomedoseudominio.com'); # Caso queira receber uma copia
            #$mail->AddCC('ciclano@site.net', 'Ciclano'); # Copia
            #$mail->AddBCC('fulano@dominio.com.br', 'Fulano da Silva'); # Cópia Oculta
            # Define os dados técnicos da Mensagem
            $mail->IsHTML(true); # Define que o e-mail será enviado como HTML
            #$mail->CharSet = 'iso-8859-1'; # Charset da mensagem (opcional)
            # Define a mensagem (Texto e Assunto)
            // Compo E-mail
            $emailcormpo .= '<p style="color:#000000;font-size:12px;">Faça seu <a href="'.$sgturl.'">login</a>.</p>';
            $emailcormpo .= '</body></html>';
            $mail->Subject = utf8_decode("Help Desk - SGT"); # Assunto da mensagem
            $mail->Body = utf8_decode("$emailcormpo");
            $mail->AltBody = utf8_decode("$emailcormpo");
            # Define os anexos (opcional)
            #$mail->AddAttachment("c:/temp/documento.pdf", "documento.pdf"); # Insere um anexo
            # Envia o e-mail
            $enviado = $mail->Send();
            # Limpa os destinatários e os anexos
            $mail->ClearAllRecipients();
            $mail->ClearAttachments();
        }
        echo"<script language='javascript' type='text/javascript'>
            window.location.href='list_hd.php?p=1';
        </script>";
    }
?>