<?php

class Agro_View_Helper_AvisoTelaInicial extends Zend_View_Helper_Abstract
{
    private ?int $id = null;
    private string $ocultarDiv = '';

    public function avisoTelaInicial(array $parametros = [])
    {
        $this->id = !empty($parametros['id']) ? $parametros['id'] : null;
        $this->ocultarDiv = isset($parametros['ocultarDiv']) && $parametros['ocultarDiv'] === true ? 'hide' : '';

        $html = '';
        $html .= $this->avisoCantoInferiorDireito();
        $html .= $this->avisosCentralizados();

        return $html;
    }

    private function avisoCantoInferiorDireito()
    {
        $html = "";
        $where = "fl_ativo = true AND ds_posicao = 'B' AND now() between dt_inicio and dt_termino";

        if (!empty($this->id)) {
            $where = "id = {$this->id} AND ds_posicao = 'B'";
        }

        $rs = (new Sistema_Model_AvisoTelaInicial())->fetchAll($where)->toArray();

        if (count($rs) == 1):

            ob_start(); ?>

          <style type='text/css'>
              body {
                  overflow: hidden;
              }

              .window_bottom_right {
                  position: fixed;
                  bottom: 0;
                  right: 0;
              }

              .minimizeWindow {
                  display: block;
                  margin-bottom: 1px;
                  padding-bottom: 10px;
              }

              .window_text {
                  background-color: #000;
                  color: #FFF;
                  width: 540px;
              }

          </style>
          <div class='window_bottom_right <?= $this->ocultarDiv ?>'>
              <?php
              $caminhoImagem = "/agronet/file/view/path/aviso_tela_inicial/name/{$rs[0]['ds_arquivo']}";

              if (!empty($rs[0]['ds_url'])) {
                  ?>
                <div class="div_imagem">
                  <a href="<?= $rs[0]['ds_url'] ?>" target="_blank">
                    <img class='minimizeWindow' src='/resources/imagens/icon/fechar.png'/>
                    <img src='<?=$caminhoImagem?>' alt=''
                         width="<?= $rs[0]['vl_largura'] ?>" height="<?= $rs[0]['vl_altura'] ?>"/>
                  </a>
                </div>
                  <?php
              } else {
                  ?>
                <div class="div_imagem">
                  <img class='minimizeWindow' src='/resources/imagens/icon/fechar.png'/>
                  <img src='<?=$caminhoImagem?>' alt=''
                       width="<?= $rs[0]['vl_largura'] ?>" height="<?= $rs[0]['vl_altura'] ?>"/>
                </div>
                  <?php
              }
              ?>
          </div>

        <? else: ?>
            <?= "" ?>
        <? endif;

        $html = ob_get_contents();
        ob_end_clean();

        return $html;
    }

    private function avisosCentralizados()
    {
        $html = "";
        $where = "fl_ativo = true AND ds_posicao = 'C' AND now() between dt_inicio and dt_termino";

        if (!empty($this->id)) {
            $where = "id = {$this->id} AND ds_posicao = 'C'";
        }

        $rs = (new Sistema_Model_AvisoTelaInicial())->fetchAll($where)->toArray();
        $usuarioLogado = Zend_Auth::getInstance()->getIdentity();
        $modelAvisoTelaInicialTipoUsuario = new Sistema_Model_AvisoTelaInicialTipoUsuario();

        if (count($rs) == 0) {
            echo "";
        } else {
            ob_start();
            ?>
          <style>
              body {
                  overflow: hidden;
              }

              .div_imagem {
                  padding: 0 15px 5px 15px;
              }

              .div_confirmacao_leitura {
                  font-weight: bold;
                  padding: 0 0 5px 15px;
                  margin-top: -15px;
              }

              .window_bottom_center {
                  position: absolute;
                  top: 37%;
                  left: 39%;
                  margin: -100px 0 0 -150px;
                  background-color: #ceebd1;
                  border-radius: 5% 2% 6% 6%;
              }

              .minimizeWindow {
                  display: block;
                  margin-bottom: -10px;
                  margin-left: auto;
                  padding-bottom: 9px;
              }

              .window_text {
                  background-color: #000;
                  color: #FFF;
                  width: 540px;
              }
          </style>
            <?php
            $registro = $rs[0];
            $mostrarAviso = true;
            $mostrarConfirmacaoLeitura = !$registro['fl_habilitar_confirmacao_leitura'] ? 'hide' : '';
            $retornoAvisoLido = (new Sistema_Model_AvisoTelaInicialUsuarioLeitura())->fetchRow(
                "id_aviso_tela_inicial = {$registro['id']} AND id_usuario = {$usuarioLogado->id}"
            );

            if (!empty($retornoAvisoLido)) {
                $mostrarAviso = false;
            } else {
                $tipoUsuariosFiltrados = $modelAvisoTelaInicialTipoUsuario->fetchAll(
                    "id_aviso_tela_inicial = {$registro['id']}"
                )->toArray();

                if (!empty($tipoUsuariosFiltrados)) {
                    $avisoParaTipoUsuarioLogado = array_filter($tipoUsuariosFiltrados, function ($registro) use ($usuarioLogado) {
                        return $registro['tp_usuario'] === $usuarioLogado->tp_usuario;
                    });

                    if (empty($avisoParaTipoUsuarioLogado)) {
                        $mostrarAviso = false;
                    }
                }
            }

            if ($mostrarAviso) {
                ?>
              <input type="hidden" id="idAviso" value="<?= $registro['id'] ?>">
              <div class='window_bottom_center <?= $this->ocultarDiv ?>' id="window_bottom_center">
                <img class='minimizeWindow' src='/resources/imagens/icon/fechar.png'/>
                  <?php
                  $caminhoImagem = "/agronet/file/view/path/aviso_tela_inicial/name/{$registro['ds_arquivo']}";

                  if (!empty($registro['ds_url'])) {
                      ?>
                    <div class="div_imagem">
                      <a href="<?= $registro['ds_url'] ?>" target="_blank">
                        <img src='<?= $caminhoImagem ?>' alt=''
                             width="<?= $registro['vl_largura'] ?>" height="<?= $registro['vl_altura'] ?>"/>
                      </a>
                    </div>
                      <?php
                  } else {
                      ?>
                    <div class="div_imagem">
                      <img src='<?= $caminhoImagem ?>' alt=''
                           width="<?= $registro['vl_largura'] ?>" height="<?= $registro['vl_altura'] ?>"/>
                    </div>
                      <?php
                  }
                  ?>
                <br>
                <div class="div_confirmacao_leitura <?= $mostrarConfirmacaoLeitura ?>"
                     style="max-width: <?= $registro['vl_largura'] ?>px">
                  <input type="checkbox" id="confirmacaoLeitura" style="margin-left: 5px">
                  <label for="confirmacaoLeitura">Confirmo que li e estou de acordo.</label>
                </div>
              </div>
                <?php
            }

            $html = ob_get_contents();
            ob_end_clean();
        }

        return $html;
    }
}
