<?php

class GerenciarPainel {
    public static function montarPainelPorNivel($nivel, $objeto, $preventivasPendentes, $preventivasRealizadas) {

        if ($nivel == 4) {
//            self::botaoPortaria();
            self::errorCorrigirFechamentoDiv();
//            self::adicionarListagemTecnico($preventivasPendentes, $preventivasRealizadas);
        } else if ($nivel == 2) {
            self::botaoClientes();
//            self::mostrarCalendario($objeto);
//            self::adicionarListagemAdministracao($preventivasPendentes, $preventivasRealizadas);
        }else {
            self::botaoAdministracao();
            self::mostrarGraficosNovos($objeto);
            self::adicionarListagemAdministracao($preventivasPendentes, $preventivasRealizadas);
            self::mostrarCalendario($objeto);
        }
    }

    private static function botaoPortaria() {
        self::adicionarBotao('manutencao', 'user', 'Ordem Serviço', 'gradient-blackberry');
    }

    private static function botaoAdministracao() {
        self::adicionarBotao('manutencao', 'user', 'Pedidos', 'gradient-blackberry');
        self::adicionarBotao('manutencao/listarTodosPedidosPorFiltro', 'tags', 'Geral', 'gradient-ibiza-sunset');
//        self::adicionarBotaoModal('manutencao/listarTodosPedidos', 'tags', 'Lancar', 'gradient-ibiza-sunset');
        self::adicionarBotao('manutencao/listarVendas', 'bus', 'Vendas', 'gradient-green-tea');
//        self::adicionarBotao('gestaoResultados/graficosDiarios', 'line-chart', 'Diario', 'gradient-pomegranate');
        self::adicionarBotao('manutencao/listarPagamentos', 'line-chart', 'Parcelado', 'gradient-pomegranate');
        self::adicionarBotao('gestaoResultados/graficoMensal', 'line-chart', 'Mensal', 'gradient-strawberry');
        self::adicionarBotao('gestaoResultados/graficosAnual', 'line-chart', 'Anual', 'gradient-harmonic-energy');

    }

    private static function botaoClientes() {
        self::adicionarBotao('manutencao', 'user', 'Ordem Ser', 'gradient-blackberry');
        self::adicionarBotao('agenda', 'barcode', 'Planejar', 'gradient-strawberry');
        self::adicionarBotaoModal('#adicionarCorretiva', 'tags', 'Chamados', 'gradient-ibiza-sunset');

    }

    public static function adicionarListagemTecnico($preventivasPendentes, $preventivasRealizadas) {
//        echo '<div class="row">';
        self::adicionarListagemPorTipo(self::listagemOrdemServico($preventivasPendentes), self::cabecalhoOrdemServico(), 'Minhas Ordem Serviço - Pedentes', 12, 1, 'bg-warning');
        self::adicionarListagemPorTipo(self::listagemOrdemServico($preventivasRealizadas), self::cabecalhoOrdemServico(), 'Minhas Ordem Serviço - Atendidas', 12, 2, 'bg-success');
//        echo '</div>';
    }

    public static function adicionarListagemAdministracao($preventivasPendentes, $preventivasRealizadas) {
//        echo '<div class="row">';
        self::adicionarListagemPorTipo(self::listagemOrdemServico($preventivasPendentes), self::cabecalhoOrdemServico(), 'Notas - Pendentes', 12, 1, 'bg-warning');
        self::adicionarListagemPorTipo(self::listagemOrdemServico($preventivasRealizadas), self::cabecalhoOrdemServico(), 'Notas - Pagas', 12, 2, 'bg-success');
//        self::visualizarManutencao();
//        echo '</div>';
    }

    private static function adicionarBotao($controler, $icone, $tituloBotao, $corBotao) {
        echo '
  
        
   
        <div class="col-lg-2 col-md-2">
        <div class="card ' . $corBotao . '">
        <a href="' . base_url() . '' . $controler . '">
            <div class="card-block">
                <h3 class=" font-large-1 mb-0 white">' . $tituloBotao . '</h3>
                

                <div class="media-right white text-right">
                    <i class="fa fa-4x fa-' . $icone . '"></i>
                </div>
<!--
//                    <small>teste</small>
-->

            </div>
            </a>
        </div>
    </div>
    
    ';

    }


    private static function adicionarBotaoModal($modal, $icone, $tituloBotao, $corBotao) {
        echo '
        <div class="col-lg-2 col-md-2">
        <div class="card ' . $corBotao . '">
        <a href="'.$modal.'"
			   data-animation="swell"
               data-plugin="custommodal"
               data-overlaySpeed="100" 
			   data-overlayColor="#36404a">    
         
         
            <div class="card-block">
                <h3 class="font-large-1 mb-0 white">' . $tituloBotao . '</h3>

                <div class="media-right white text-right">
                    <i class="fa fa-4x fa-' . $icone . '"></i>
                </div>

            </div>
            </a>
        </div>
    </div>
    ';

    }




    public static function adicionarListagemPorTipo($listagem, $cabecalho, $tituloListagem, $tamanhoAccordion, $numeroAccordion, $cor) {
        echo '
        <div class="col-lg-' . $tamanhoAccordion . ' ">
            <div class="portlet ui-sortable">
                <div class="portlet-heading ' . $cor . '">
                    <h3 class="portlet-title">
                        <span class="icon"><i class="fa fa-signal"></i></span> ' . $tituloListagem . '
                    </h3>
                    <div class="portlet-widgets">
                        <a href="javascript:;" data-toggle="collapse"><i class="fa fa-refresh"></i></a>
                        <a
                                data-toggle="collapse"
                                data-target="#bg-primary' . $numeroAccordion . '"
                                aria-expanded="false"
                                aria-controls="#bg-primary' . $numeroAccordion . '"
        
                        >
                            <i class="fa fa-minus"></i>
                        </a>
                        <a href="#" data-toggle="remove"><i class="fa fa-close"></i></a>
                    </div>
                    <div class="clearfix"></div>
                </div>
                <div id="bg-primary' . $numeroAccordion . '" class="panel-collapse">
                    <div class="col-lg-12">
                        <div class="card">
                            <div class="card-block">
                                <div class="table-responsive m-t-40">
                                    <table class="table stylish-table">
                                        <thead>'. $cabecalho .'</thead>
                                        <tbody>'. $listagem .'</tbody>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
        
                </div>
                </div>
        </div>

        ';
    }

    private static function listagemOrdemServico($preventivasPendentes) {
        $listagem = '';
        if (count($preventivasPendentes) == 0) {
            $listagem = '<td colspan="6" style="font-size: x-large" class="text-center"> Nenhum Registro Encontrado !</td>';

        } else {
            foreach ($preventivasPendentes as $r) {
                $statuscss = $r->DT_QUITADO == '' ? "warning" : "success";
                $status = $r->DT_QUITADO == "P" ? "Pendente" : "Atendido";
//                $tipo = $r->TIPO == "P" ? "Padron" : "Articulado";
                $tipoManutencao = $r->DT_QUITADO==""?"Em Aberto":"Quitado";
                $registro = '
            <tr style="font-size: small">
                <td style="width:50px; font-size: small"><span class="round">' . $r->NU_PEDIDO . '</span></td>
                <td><h6>' . $r->CLIENTE_ID . '</h6>
                    <small class="text-muted">' . $r->NU_PEDIDO. '</small>
                </td>
                <td>' . date("d/m/Y", strtotime($r->DT_NOTA)) . '</td>
                <td>' . $r->CLIENTE_ID . '</td>
                <td>' . $r->NM_VENDEDOR . '</td>
                <td>
                    <span class="label label-light-' . $statuscss . '">' .$tipoManutencao. '</span>
                </td>
                <td>

                               <a href="#"  class=""
                                   notaAQuitar="<?php echo $r->ID_NOTA ?>"
                                   data-toggle="modal" data-target="#quitarNotaModal"
                                > <i class="fa fa-money"> </i>
                                </a>

                       
                       

                </td>
            </tr>
            ';
                $listagem = $listagem . $registro;
            }
        }

        return $listagem;
    }

    private static function cabecalhoOrdemServico() {
        return ' 
        <tr style="font-size: small">
            <th colspan="2">PEDIDO</th>
            <th>Data</th>
            <th>Cliente</th>
            <th>Vendedor</th>
            <th>Status</th>
            <th>Ação</th>
        </tr>
        ';
    }

    private static function listagemReservas($reservas) {

        $listagem = '';
        foreach ($reservas as $r) {
            if ($r->situacaoReserva == 'Confirmado') {
                $style = "style=' color:blue;'";
            } else {
                $style = "style=' color:red;'";
            }

            $registro = '
            <tr>
                <td>' . $r->idReserva . '</td>
                <td>' . date(('d/m/Y'), strtotime($r->dataReserva)) . '</td>
                <td>' . $r->nm_morador . '</td>
                <td>' . $r->nr_apartamento . ' - ' . $r->blocoApartamento . '</td>
                <td>' . $r->itemReservado . '</td>
                <td>' . $r->periodoReserva . '</td>
               <td ' . $style . ' >' . $r->situacaoReserva . '</td>
            </tr>
            ';
            $listagem = $listagem . $registro;
        }
        return $listagem;
    }

    private static function cabecalhoReservas() {
        return '<tr>
                    <th width="30">#</th>
                    <th>Data Reserva</th>
                    <th>Morador</th>
                    <th>Apartamento</th>
                    <th>Item Reservado</th>
                    <th>Per&iacute;odo</th>
                    <th width="150">Situa&ccedil;&atilde;o</th>
                </tr>';
    }

    private static function listagemMudanca($mudancas) {
        $listagem = '';
        foreach ($mudancas as $m) {
            $m->situacaoMudanca == 'Confirmada' ? $style = "style=' color:blue;'" : $style = "style=' color:red;'";
            $m->sentidoMudanca = $m->sentidoMudanca == 0 ? "Entrada" : "Saída";
            $registro = '
            <tr>
                <td>' . $m->idMudanca . '</td>
                <td>' . date(('d/m/Y'), strtotime($m->dataMudanca)) . '</td>
                <td>' . $m->nm_morador . ' -: ' . $m->nr_apartamento . ' - ' . $m->blocoApartamento . '</td>
                <td>' . date(('H:i'), strtotime($m->horarioMudanca)) . '</td>
                <td>' . $m->periodoMudanca . '</td>
                <td>' . $m->sentidoMudanca . '</td>
                <td ' . $style . ' >' . $m->situacaoMudanca . '</td>
            </tr>
            ';
            $listagem = $listagem . $registro;
        }
        return $listagem;
    }

    private static function cabecalhoMudanca() {
        return '<tr>
                    <th width="30">#</th>
                    <th width="30">Data</th>
                    <th>Morador</th>
                    <th>Horário</th>
                    <th>Periodo</th>
                    <th>Sentido</th>
                    <th width="150">Situa&ccedil;&atilde;o</th>
                </tr>';
    }

    private static function listagemAtestado($atestados) {
        $listagem = '';
        foreach ($atestados as $a) {
            $registro = '
            <tr>
                <td width="30">' . $a->idAtestadoMedico . '</td>
                <td>' . date(('d/m/Y'), strtotime($a->dataEntrega)) . '</td>
                <td>' . $a->nm_morador . '</td>
                <td>' . $a->nr_apartamento . ' - ' . $a->blocoApartamento . '</td>
                <td>' . date(('d/m/Y'), strtotime($a->dataVencimento)) . '</td>
                <td>' . $a->nomeBeneficiado . '</td>
                <td>' . date(('d/m/Y'), strtotime($a->dataNascBeneficiado)) . '</td>
            </tr>
            ';
            $listagem = $listagem . $registro;
        }
        return $listagem;
    }

    private static function cabecalhoAtestado() {
        return ' <tr>
                    <th>#</th>
                    <th>Data Entrega</th>
                    <th>Morador</th>
                    <th>Apartametno</th>
                    <th>Data Vencimento</th>
                    <th>Beneficiário</th>
                    <th>Data Nascimento</th>
                </tr>';
    }

    private static function listagemOcorrencia($ocorrencias) {
        $listagem = '';
        foreach ($ocorrencias as $o) {
            $o->situacaoOcorrencia == 'Solucionado' ? $style = "style=' color:blue;'" : $style = "style=' color:red;'";
            $registro = '
            <tr>
               <td>' . $o->idOcorrencia . '</td>
                <td>' . date(('d/m/Y'), strtotime($o->dataOcorrencia)) . '</td>
                <td>' . $o->nm_morador . ' -: ' . $o->nr_apartamento . ' - ' . $o->blocoApartamento . '</td>
                <td>' . $o->localOcorrencia . '</td>
                <td>' . $o->categoria . '</td>
                <td>' . $o->acaoRealizada . '</td>
                <td ' . $style . ' >' . $o->situacaoOcorrencia . '</td>
            </tr>
            ';
            $listagem = $listagem . $registro;
        }
        return $listagem;
    }

    private static function cabecalhoOcorrencias() {
        return ' <tr>
                    <th width="30">#</th>
                    <th width="100">Data Ocorrência</th>
                    <th>Morador (Reclamante)</th>
                    <th>Local</th>
                    <th>Categoria</th>
                    <th>Ação Realizada</th>
                    <th width="150">Situação</th>
                </tr>';
    }

    private static function listagemNotificacao($notificacoes) {
        $listagem = '';
        foreach ($notificacoes as $n) {
            if ($n->tipo == 'Notificacao') {
                $label = 'success';
            } else if ($n->tipo == 'Multa') {
                $label = 'important';
            } else {
                $label = 'warning';
            }
            $registro = '
            <tr>
               <td>' . $n->idMultanotificacao . '</td>
               <td><span class="label label-' . $label . '">' . ucfirst($n->tipo) . '</span></td>
                <td>' . date(('d/m/Y'), strtotime($n->data)) . '</td>
                <td>' . $n->nm_morador . ' </td>
                <td> ' . $n->nr_apartamento . ' - ' . $n->blocoApartamento . ' </td>
                <td>' . $n->categoria . '</td>
                ' . self::visualizarNotificacao($n->tipo, $n->idMultanotificacao) . '
            </tr>
            ';
            $listagem = $listagem . $registro;
        }
        return $listagem;
    }

    private static function visualizarNotificacao($tipo, $idNotificacao) {
        return '<td>
                <a href="' . base_url() . 'multanotificacao/editar' . $tipo . '/' . $idNotificacao . '"
                title="Ver mais detalhes"><i class="fa fa-eye"></i></a>
            </td>';
    }

    private static function cabecalhoNotificacoes() {
        return ' <tr>
                    <th width="30">#</th>
                    <th width="100">Tipo</th>
                    <th width="100">Data</th>
                    <th>Morador</th>
                    <th>Apartamento</th>
                    <th>Categoria</th>
                    <th width="30"></th>
                </tr>';
    }

    public static function visualizarManutencao() {
        echo '<script>
    $("a").on("click", function (e) {
        if ($(this).attr("preventivaItem")) {
            var preventiva = $(this).attr("preventivaItem")
            abreImpressaoPreventiva(preventiva);
            return false;
        }
    });


    function abreImpressaoPreventiva(preventiva) {
        var url = "' . base_url() . 'manutencao/visualizarPreventiva/" + preventiva;
        var win = window.open(url, target = "_blank", "left=400,top=300,width=700,height=500,location=no,menubar=no,toolbar=no");
        win.print();
    }
    ;
</script>';
    }

    private static function mostrarCalendario($objeto) {
        $objeto->load->helper('paginashtml/mostrarcalendario_helper');
    }

    private static function mostrarGraficosNovos($objeto) {
        $objeto->load->view("sistema/temas/dashboards/graficos");
    }

    private static function errorCorrigirFechamentoDiv() {
        echo '</div>';
    }

    private static function statisticasSistema($objeto) {
        $objeto->load->helper('paginashtml/mostrardadosestatisticos_helper');
    }

    private static function dadosDoSistema($objeto) {
        $objeto->load->helper('paginashtml/mostrardados_helper');
    }

    private static function mostrarGraficos($objeto) {
        $objeto->load->helper('paginashtml/mostargraficoshome_helper');
    }

    private static function mostarOcorrenciasPorMorador($objeto) {
        $objeto->load->helper('paginashtml/mostrarocorrenciasmorador_helper');
    }
}

