<?php

class Agro_View_Helper_Unidades extends Zend_Controller_Action_Helper_Abstract
{
    private $_producao, $_atributos, $_agrupamento, $_produtividade, $_quadras, $_options, $_prodDeclarada, $_wrong_lines
    , $_proposta = null, $_wrong, $_itensLaudo = null, $temAtributoArea = false, $temAtributoLmga = false
    , $totalizadorArea = 0, $totalizadorLmga = 0, $isCarObrigatorio = false;
    private $_hiddenColumns = array('IS_FRANQUIA_PARCIAL', 'IS_PREMIO_PARCIAL', 'IS_CICLO');

    public function unidades($Proposta, $options = false, $itensLaudo = null)
    {
        $this->_proposta = $Proposta;
        $this->_options = $options;
        $this->_itensLaudo = $itensLaudo;
        $this->_propriedades = $Proposta->propriedades();
        $this->_produto = $Proposta->produto();
        $this->isCarObrigatorio = Seguro_Service_Car::isCarObrigatorio($Proposta->id);
        $Atributogrupos = new Produto_Model_Atributogrupos();

        // Exibe a coluna de ciclo caso a view que chamou a funcao seja do Atendimento
        if ($options['atendimento'] == true) {
            $this->_hiddenColumns = array('IS_FRANQUIA_PARCIAL', 'IS_PREMIO_PARCIAL');
        }

        try {
            // Seta a produtividade declarada
            $this->_prodDeclarada = $this->_proposta->resposta('QUEST_PRODUTIVIDADE_DECLARADA');

            // Seta a producao garantida
            $this->_producao = $this->_proposta->atributo_rn('PROPRIEDADE', 'PROD_PRODUCAO_GARANTIDA');

            // Seta as unidades configuradas por grupo
            $this->_atributos = $Atributogrupos->getAtributosProposta($this->_proposta, 'UNIDADE_SEGURADA');

            // Seta o Agrupamento
            if (!$Proposta->isEndosso()) {
                $this->_agrupamento = $this->_proposta->agrupamento();
            }

            $this->_croqui_obrigatorio = $this->_proposta->atributo_rn('PROPRIEDADE', 'PROD_CROQUI_OBRIGATORIO', true);

            // Seta as respostas
            $this->_quadras = $this->_proposta->itens_segurados();

            if ($this->_options['verifica_ciclo']) {
                // Busca as unidades sem ciclo
                $this->_wrong_lines = $this->_proposta->unidades_sem_ciclo();
            }

            // Caso exista producao garantida, seta produtividade estimada
            if ($this->_producao) {
                $this->_produtividade = $this->_proposta->produtividade_estimada();
            }

            if ($this->_options['somente_quadras']) {
                $this->_quadras();
            } else {
                $this->_monta();
            }

            if (!empty($this->_options['mensagemErro'])) {
              throw new Exception($this->_options['mensagemErro'], 1);
            }
        } catch (Exception $e) {
            echo "<pre>{$e->getMessage()}</pre>";

            if ($e->getCode() === 1) {
                echo "<script>alert('" . $e->getMessage() . "')</script>";
            }
        }
    }

    private function _monta()
    {
        ?>
      <script type="text/javascript" src="/resources/jquery/jquery.validade.js"></script>
      <script type="text/javascript" src="/resources/javascript/agronet/car.js"></script>
      <div class='title-design' id=''>
        <div class='title'><span>Unidades Seguradas da Proposta</span></div>
      </div>
      <style>
          .tr_bullet div {
              position: absolute;
              font-weight: bold;
              padding: 3px;
              width: 90%;
              display: none;
          }

          .erro {
              background-color: #FFBBBC;
              border: 1px solid #DB0912;
              color: #DB0912;
          }

          .aviso {
            background-color: var(--warning-bg-color);
            border: 1px solid var(--warning-border-color);
            color: var(--warning-color);
          }
          .salvas {
              background-color: #E0F2C0;
              border: 1px solid #568C12;
              color: #568C12;
          }

          .tooltip-container {
            position: relative;
            display: inline-block;
          }

          .tooltip-container img {
            cursor: pointer;
          }
          
          .tooltip-text {
            visibility: hidden;
            opacity: 0;
            position: absolute;
            background-color: #fff;
            color: #333;
            border: 1px solid #ccc;
            padding: 8px;
            width: 500px;
            z-index: 10;
            top: -5px;
            left: 15px;
            font-size: 12px;
            border-radius: 4px;
            box-shadow: 0 2px 6px rgba(0,0,0,0.2);
            transition: opacity 0.3s ease;
            white-space: normal;
            word-wrap: break-word;
            height:100px;
          }

          .tooltip-text-car {
            visibility: hidden;
            opacity: 0;
            position: absolute;
            background-color: #fff;
            color: #333;
            border: 1px solid #ccc;
            padding: 8px;
            width: 150px;
            z-index: 10;
            top: -5px;
            left: 15px;
            font-size: 12px;
            border-radius: 4px;
            box-shadow: 0 2px 6px rgba(0,0,0,0.2);
            transition: opacity 0.3s ease;
            white-space: normal;
            word-wrap: break-word;
            height:35px;
            text-align:left;
          }

          .tooltip-container:hover .tooltip-text-car {
            visibility: visible;
            opacity: 1;
          }

          .tooltip-container:hover .tooltip-text {
            visibility: visible;
            opacity: 1;
          }
      </style>
      <div class="geral">

          <? if ($this->_produto["ds_nome_cultura"] != "Pastagem"): ?>
            <div class="row" id="div_qtd_unidades" style="margin-bottom:10px;">
              <div class="field">
                <label><b>Digite o número de quadras/talhões que deseja inserir.</b></label>
                <input type="text" size="5" class="integer" id="qtd_unidades" style="padding:4px;font-weight:bold;"/>
                <button type="button" id="inserir_unidades">Inserir</button>
              </div>
            </div>
            <div class="row hide" id="div_qtd_unidades_cancel">
              <div class="field">
                <button type="button" id="cancel_unidades">Cancelar</button>
              </div>
            </div>
            <br class="clear"/>
            <div class='title-design' id="div_cadastro_unidades" style="margin-top:14px;" id=''>
              <div class='title'><span>Cadastro de Unidades Seguradas</span></div>
            </div>
          <? endif; ?>

        <form id="formUnidadesSeguradas" class="form_unidades" method="post" action="/seguro/itenssegurados/save">
          <div id="helper_unidades" style="margin-bottom:15px;overflow:auto;overflow-y:hidden;padding-bottom:10px;">
            <input type="hidden" name="id_proposta" id="id_proposta" value="<?= $this->_proposta->id; ?>"/>
            <input type="hidden" name="unidades_salvas" id="unidades_salvas" value="0"/>
            <input type="hidden" name="croqui_obrigatorio" id="croqui_obrigatorio"
                   value="<?= $this->_propriedades ['PROD_CROQUI_OBRIGATORIO'] ?>"/>
            <input type="hidden" name="validar_capacidade" value="<?= $this->_options['validar_capacidade'] ?>"/>
            <input type="hidden" name="recalcular" value="<?= $this->_options['recalcular'] ?>"/>
            <input type="hidden" name="md" value="<?= md5($this->_proposta->id . $_SERVER['SERVER_ADDR']) ?>" id="md"/>
            <input type="hidden" name="abriuPopup" value="1" id="abriuPopup"/>

            <table class='grid' cellspacing='1' cellpadding='5' border='0' id='Unidades'>
              <thead>
              <tr>
                <th></th>
                  <? if (!empty($this->_itensLaudo)) { ?>
                    <th>&nbsp;</th>
                    <th nowrap="nowrap">Quadra/Talhão</th>
                    <th nowrap="nowrap">Variedades</th>
                    <th nowrap="nowrap">Nro.smts/m linear</th>
                    <th nowrap="nowrap">Coordenadas Geográficas</th>
                    <th nowrap="nowrap">Data da Semeadurax</th>
                    <th nowrap="nowrap">Espaçamento</th>
                    <th nowrap="nowrap">
                      1º ano de plantio?
                      <span class="tooltip-container">
                        <img src="/resources/imagens/icon/help.png" border="0" id="help_form">
                        <span class="tooltip-text">
                          *Considera-se aaa1º ano de plantio a primeira safra de uma cultura agrícola de grãos em uma área que esteve anteriormente ocupada por pastagem perene, floresta ou cana por um período mínimo de 12 meses consecutivos anteriores à cultura de grãos.
                        </span>
                      </span>
                    </th>
                    <th nowrap="nowrap">Sistema de plantio</th>
                    <th nowrap="nowrap">Tipo de solo</th>
                    <th nowrap="nowrap">Área (ha)</th>
                    <th nowrap="nowrap">Produtividade (ton/ha)</th>
                    <th nowrap="nowrap">Valor (R$/ton)</th>
                    <th nowrap="nowrap">LMGA Parcial (R$)</th>
                    <th nowrap="nowrap" class="hide">Importado Prévia</th>
                  <? } else { ?>
                      <? if (count($this->_atributos)): ?>
                          <? if ($this->_options['delete'] && $this->_produto["ds_nome_cultura"] != "Pastagem"): ?>
                        <th>
                          <input type="checkbox" name="" id="checkall" value=""/>
                        </th>
                          <? endif; ?>

                      <th>&nbsp;</th>

                          <?
                          foreach ($this->_atributos as $atributo):
                              if ($atributo['ds_chave_rn'] == 'IS_CAR' && !$this->isCarObrigatorio) {
                                continue;
                              }

                              if (!$this->_mostraColuna($atributo['ds_chave_rn'])) {
                                  continue;
                              }

                              if ($this->_produto["ds_nome_cultura"] == "Pastagem" && $atributo['ds_chave_rn'] == "IS_VALOR_CUSTEIO") {
                                  $atributo['ds_descricao_atributo'] = "Valor Segurado (R$/Ha)";
                              }

                              if ($atributo['ds_chave_rn'] === 'IS_AREA') {
                                  $this->temAtributoArea = true;
                              }

                              if ($atributo['ds_chave_rn'] === 'IS_LMGA_PARCIAL') {
                                  $this->temAtributoLmga = true;
                              }

                              if ($atributo['ds_chave_rn'] == 'IS_PRIMEIRO_ANO_PLANTIO') {
                                echo '<th nowrap="nowrap">
                                  1º ano de plantio?
                                  <span class="tooltip-container">
                                    <img src="/resources/imagens/icon/help.png" border="0" id="help_form">
                                    <span class="tooltip-text">
                                      *Considera-se 1º ano de plantio a primeira safra de uma cultura agrícola de grãos em uma área que esteve anteriormente ocupada por pastagem perene, floresta ou cana por um período mínimo de 12 meses consecutivos anteriores à cultura de grãos.
                                    </span>
                                  </span>
                                </th>';
                              } elseif($atributo['ds_chave_rn'] == 'IS_CAR') {
                                echo '<th nowrap="nowrap">
                                  CAR
                                  <span class="tooltip-container">
                                    <img src="/resources/imagens/icon/help.png" border="0" id="help_form">
                                    <span class="tooltip-text-car">
                                      (S) - Sugerido<br>
                                      (M) - Manual
                                    </span>
                                  </span>
                                </th>';
                              } else {
                                echo '<th nowrap="nowrap">'.$atributo['ds_descricao_atributo'] .'</th>';
                              }
                              ?>

                          <? endforeach; ?>
                      <th class="hide">Importado Prévia</th>
                      <? endif; ?>
                  <? } ?>
              </tr>
              </thead>
              <tbody>
              <?
              if (!empty($this->_itensLaudo)) {
                  $this->_quadrasLaudo();
              } else {
                  $this->_quadras();
              }
              ?>
              </tbody>
            </table>
          </div>
          <div style="clear:both;"></div>

          <div style="text-align: right; padding-bottom: 15px">
              <?php
              if ($this->temAtributoArea) {
                  ?>
                <b>Área (ha) Total: <span
                    id="spanTotalizadorArea"><?= Agro_Util::formatDbCurrency($this->totalizadorArea, 2, '.', false) ?></span></b>
                <br><br>
                  <?php
              }

              if ($this->temAtributoLmga) {
                  ?>
                <b>LMGA Parcial (R$) Total: <span
                    id="spanTotalizadorLmga"><?= Agro_Util::formatDbCurrency($this->totalizadorLmga) ?></span></b><br>
                <br>
                  <?php
              }
              ?>
          </div>

          <div align="right">
              <? if ($this->_options['delete'] && $this->_produto["ds_nome_cultura"] != "Pastagem"): ?>
                <button type="button" name="excluir" id="excluir_unidades" value="Excluir" disabled="disabled">Excluir
                  Selecionadas
                </button>
              <? endif; ?>
            <button type="button" name="salvar" id="salvar_unidades" value="Salvar">Salvar</button>
          </div>
        </form>
      </div>
        <?
        $this->_quadraVazia();
    }

    /**
     * Monta as respostas
     */
    private function _quadras()
    {
        if (count($this->_quadras)):
            foreach ($this->_quadras as $quadra):
                $background = ($this->_options['verifica_ciclo'] ? (in_array($quadra['is_item'], $this->_wrong_lines) ? '#FFBBBC' : '#FFF') : '#FFF');

                if (array_key_exists('is_area', $quadra)) {
                    $this->totalizadorArea += $quadra['is_area'];
                }

                if (array_key_exists('is_lmga_parcial', $quadra)) {
                    $this->totalizadorLmga += $quadra['is_lmga_parcial'];
                }
                ?>

              <tr id="unidade_<?= $quadra['is_item'] ?>" style="background: <?= $background ?>">
                <td id="unidade_icon_<?= $quadra['is_item'] ?>" class="tr_bullet">
                  <img src="/resources/imagens/transp.png" width="10" height="10" class="bullet"/>
                  <div></div>
                </td>
                  <? if (count($this->_atributos)): ?>
                      <? if ($this->_options['delete'] && $this->_produto["ds_nome_cultura"] != "Pastagem"): ?>
                      <td align="center">
                        <input type="checkbox" name="deletar_unidades[]" class="deletar_unidades"
                               value="<?= $quadra['is_item'] ?>"/>
                      </td>
                      <? endif; ?>
                    <td valign="middle" align="center"><?= $quadra['is_item'] ?></td>

                      <?
                      foreach ($this->_atributos as $atributo):
                          if ($atributo['ds_chave_rn'] == 'IS_CAR' && !$this->isCarObrigatorio) {
                            continue;
                          }

                          if (!$this->_mostraColuna($atributo['ds_chave_rn'])) {
                              continue;
                          }

                          if ($atributo['ds_chave_rn'] == 'IS_CICLO') {
                              $atributo['ds_chave_rn'] = 'IS_CICLO_VARIEDADE';
                          }
                          ?>

                        <td nowrap="nowrap" align="center"
                            id="<?= $atributo['ds_chave_rn'] ?>_linha_<?= $quadra['is_item'] ?>">
                            <? echo $this->getElement($atributo, $quadra); ?>
                        </td>

                      <? endforeach; ?>
                    <td class="hide" nowrap="nowrap" id="fl_importado_previa_linha_<?= $quadra['is_item'] ?>">
                        <input type="text"
                               value="<?=$quadra['fl_importado_previa'] ?>"
                               name="unidades[<?= $quadra['is_item'] ?>][fl_importado_previa]" />
                    </td>
                  <? endif; ?>
              </tr>
            <?
            endforeach;
        endif;
    }

    /**
     * Monta as respostas
     */
    private function _quadrasLaudo()
    {

        if (!empty($this->_itensLaudo)):
            $Variedades = new Produto_Model_Variedades();
            $itensSegurados = new Seguro_Model_ItensSegurados();


            foreach ($this->_itensLaudo as $key => $quadra):
                $background = ($this->_options['verifica_ciclo'] ? (in_array($quadra['is_item'], $this->_wrong_lines) ? '#FFBBBC' : '#FFF') : '#FFF');
                $itenSegurado = null;
                foreach ($this->_quadras as $qd) {
                    if ($quadra['id_item_segurado'] == $qd['id']) {
                        $itenSegurado = $qd;
                    }
                }

                if (!isset($quadra['nro_item']) || empty($quadra['nro_item'])) {
                    $quadra['nro_item'] = $key + 1;
                }

                //valor da produtividade
                $produtividade = $quadra['vl_rendimento_estimado'];
                if (!$quadra['fl_rendimento_inferior']) {
                    $produtividade = ($itenSegurado ? $itenSegurado['is_produtividade'] : ($quadra['vl_rendimento_proposta'] ? $quadra['vl_rendimento_proposta'] : '0.000'));
                }

                //valor por tonelada
                $valorTonelada = ($itenSegurado ? $itenSegurado['is_valor_tonelada'] : $itensSegurados->getValorTonelada($quadra['id_item_segurado']));
                ?>

              <tr id="unidade_<?= $quadra['nro_item']; ?>" style="background: <?= $background; ?>">
                <td id="unidade_icon_<?= $quadra['nro_item']; ?>" class="tr_bullet">
                  <img src="/resources/imagens/transp.png" class="bullet" width="10" height="10">
                  <div style="left: 43.4667px; top: 151.233px; display: none;"></div>
                </td>
                <td valign="middle" align="center"><?= $quadra['nro_item']; ?></td>
                <td id="IS_DESCRICAO_ITEM_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input value="<?= $quadra['nr_quadra']; ?>" maxlength="100" class="text element_required"
                         name="unidades[<?= $quadra['nro_item']; ?>][IS_DESCRICAO_ITEM]"
                         id="unidades[<?= $quadra['nro_item']; ?>][IS_DESCRICAO_ITEM]" size="15" type="text">
                </td>
                <td id="IS_VARIEDADES_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                    <? echo $Variedades->getSelectVariedades($this->_proposta->id, null, $quadra['id_variedade'], $quadra['nro_item'], false, "unidades[{$quadra['nro_item']}][IS_VARIEDADES]", "lookup element_required"); ?>
                  <!--                        <select name="unidades[1][IS_VARIEDADES]" id="unidades[1][IS_VARIEDADES]" class="lookup element_required">-->
                  <!--                            <option value="4930">ANA02</option><option value="4931">ANAG01</option><option value="463">BRS 195</option><option value="484">BRS 225</option><option value="3702">BRSALIENSA</option><option value="556">BRS BOREMA</option><option value="2468">BRS BRAU</option><option value="567" selected="">BRS CAUE</option><option value="572">BRS ELIS</option><option value="3703">BRSITANEMA</option><option value="4026">BRSKORBEL</option><option value="589">BRS LAGOA</option><option value="2545">BRS MANDURI</option><option value="596">BRS MARCIANA</option><option value="597">BRS MARIANA</option><option value="4348">BRSQUARANTA</option><option value="2546">BRS SAMPA</option><option value="4929">DANIELLE</option><option value="1025">EMBRAPA 127</option><option value="1026">EMBRAPA 128</option><option value="2509">MN 6021</option><option value="1470">MN 610</option><option value="1471">MN 698</option><option value="1472">MN 716</option><option value="1473">MN 721</option><option value="1474">MN 743</option><option value="1475">MN 836</option><option value="1476">MN 858</option><option value="1760">SCARLETT</option></select>-->
                </td>
                <td id="IS_NRO_PLANTAS_M_LINEAR_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input value="<?= $quadra['media_amostras']; ?>" class="decimal element_required"
                         name="unidades[<?= $quadra['nro_item']; ?>][IS_NRO_PLANTAS_M_LINEAR]"
                         id="unidades[<?= $quadra['nro_item']; ?>][IS_NRO_PLANTAS_M_LINEAR]" size="10" maxlength=""
                         type="text">
                </td>
                <td id="IS_COORDENADAS_GEOGRAFICAS_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input value="<?= $quadra['ds_coordenadas']; ?>" class="coordenadas"
                         name="unidades[<?= $quadra['nro_item']; ?>][IS_COORDENADAS_GEOGRAFICAS]"
                         id="unidades[<?= $quadra['nro_item']; ?>][IS_COORDENADAS_GEOGRAFICAS]" size="21" maxlength=""
                         type="text">
                </td>
                <td id="IS_DATA_SEMEADURA_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input
                    value="<?= ($quadra['dt_final_semeadura'] ? date_create($quadra['dt_final_semeadura'])->format('d/m/Y') : ''); ?>"
                    class="data element_required" name="unidades[<?= $quadra['nro_item']; ?>][IS_DATA_SEMEADURA]"
                    id="unidades[<?= $quadra['nro_item']; ?>][IS_DATA_SEMEADURA]" size="15" maxlength="" type="text">
                </td>
                <td id="IS_ESPACAMENTO_SIMPLES_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input value="<?= ($quadra['espacamento_linhas'] ? $quadra['espacamento_linhas'] : '0.00'); ?>"
                         class="decimal element_required"
                         name="unidades[<?= $quadra['nro_item']; ?>][IS_ESPACAMENTO_SIMPLES]"
                         id="unidades[<?= $quadra['nro_item']; ?>][IS_ESPACAMENTO_SIMPLES]" size="10" maxlength=""
                         type="text">
                </td>
                <td id="IS_PRIMEIRO_ANO_PLANTIO_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <select name="unidades[<?= $quadra['nro_item']; ?>][IS_PRIMEIRO_ANO_PLANTIO]"
                          id="unidades[<?= $quadra['nro_item']; ?>][IS_PRIMEIRO_ANO_PLANTIO]"
                          class="select element_required">
                    <option value="2" <?= (!$quadra['negar_nro_safra'] ? 'selected="selected"' : ''); ?>>Não</option>
                    <option value="1" <?= ($quadra['negar_nro_safra'] ? 'selected="selected"' : ''); ?>>Sim</option>
                  </select>
                </td>
                <td id='IS_SISTEMA_PLANTIO_linha_<?= $quadra['nro_item'] ?>' nowrap="nowrap" align="center">
                  <select name="unidades[<?= $quadra['nro_item'] ?>][IS_SISTEMA_PLANTIO]"
                          id="unidades[<?= $quadra['nro_item'] ?>][IS_SISTEMA_PLANTIO]" class="select element_required">
                    <option value=""></option>
                    <option value="1" <?= (trim($quadra['tipo_semeadura']) == 'D' ? 'selected="selected"' : '') ?>>
                      Direto
                    </option>
                    <option value="2" <?= (trim($quadra['tipo_semeadura']) == 'C' ? 'selected="selected"' : '') ?>>
                      Convencional
                    </option>
                    <option value="3" <?= (trim($quadra['tipo_semeadura']) == 'A' ? 'selected="selected"' : '') ?>>A
                      Lanço
                    </option>
                  </select>
                </td>
                <td id='IS_TIPO_SOLO_linha_<?= $quadra['nro_item'] ?>' nowrap="nowrap" align="center">
                  <select name="unidades[<?= $quadra['nro_item'] ?>][IS_TIPO_SOLO]"
                          id="unidades[<?= $quadra['nro_item'] ?>][IS_TIPO_SOLO]" class="select element_required">
                    <option value=""></option>
                    <option value="1" <?= ($quadra['tipo_solo'] == '1' ? 'selected="selected"' : '') ?>>Tipo 1</option>
                    <option value="2" <?= ($quadra['tipo_solo'] == '2' ? 'selected="selected"' : '') ?>>Tipo 2</option>
                    <option value="3" <?= ($quadra['tipo_solo'] == '3' ? 'selected="selected"' : '') ?>>Tipo 3</option>
                  </select>
                </td>
                <td id="IS_AREA_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input value="<?= $quadra['vl_area_asseguravel']; ?>" class="decimal element_required"
                         name="unidades[<?= $quadra['nro_item']; ?>][IS_AREA]"
                         id="unidades[<?= $quadra['nro_item']; ?>][IS_AREA]" size="10" maxlength="" type="text">
                </td>
                <td id="IS_PRODUTIVIDADE_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input value="<?= $produtividade; ?>" class="decimal3casas element_required"
                         name="unidades[<?= $quadra['nro_item']; ?>][IS_PRODUTIVIDADE]"
                         id="unidades[<?= $quadra['nro_item']; ?>][IS_PRODUTIVIDADE]" size="10" maxlength=""
                         type="text">
                </td>
                <td id="IS_VALOR_TONELADA_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <input value="<?= $valorTonelada; ?>" class="currency element_required"
                         name="unidades[<?= $quadra['nro_item']; ?>][IS_VALOR_TONELADA]"
                         id="unidades[<?= $quadra['nro_item']; ?>][IS_VALOR_TONELADA]" size="10" maxlength=""
                         type="text">
                </td>
                <td id="IS_LMGA_PARCIAL_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <label for="unidades[<?= $quadra['nro_item']; ?>][IS_LMGA_PARCIAL]"></label>
                </td>
                <td class="hide" id="fl_importado_previa_linha_<?= $quadra['nro_item']; ?>" nowrap="nowrap" align="center">
                  <label for="unidades[<?= $quadra['nro_item']; ?>][fl_importado_previa]"></label>
                </td>
              </tr>
            <?
            endforeach;
        endif;
    }

    /**
     * Monta as uma linha vazia para ser incluida no insert
     */
    private function _quadraVazia()
    {
        ?>
      <textarea id="template_unidades" class="hide">
			<tr id="unidade_{0}">
				<td id="unidade_icon_{0}" class="tr_bullet">
					<img src="/resources/imagens/transp.png" width="10" height="10" class="bullet" />
					<div></div>
				</td>
				<? if (count($this->_atributos)): ?>
            <? if ($this->_options['delete'] && $this->_produto["ds_nome_cultura"] != "Pastagem"): ?>
            <td align="center">
            <input type="checkbox" name="deletar_unidades[]" class="deletar_unidades" value="{0}" />
            </td>
            <? endif; ?>
          <td valign="middle" align="center">{0}</td>

            <? foreach ($this->_atributos as $atributo):
                if ($atributo['ds_chave_rn'] == 'IS_CAR' && !$this->isCarObrigatorio) {
                  continue;
                }
            ?>
              
                <? if (!$this->_mostraColuna($atributo['ds_chave_rn'])) {
                    continue;
                } ?>

            <td nowrap="nowrap" align="center" id="<?= $atributo['ds_chave_rn'] ?>_linha_{0}">
                <?php echo $this->getElement($atributo); ?>
            </td>
            <? endforeach; ?>
        <? endif; ?>
			</tr>
		</textarea>
        <?
    }

    /**
     * Verifica se uma coluna deve ou nao ser mostrada na tabela
     *
     * @param string $chave
     */
    private function _mostraColuna($chave)
    {
        if (in_array($chave, $this->_hiddenColumns)) {
            return false;
        }

        if ($this->_producao && strtoupper($chave) == 'IS_PRODUCAO_GARANTIDA') {
            return false;
        }

        if ($this->_prodDeclarada == 2) {
            if (strtoupper($chave) == 'IS_AREA' or strtoupper($chave) == 'IS_PRODUTIVIDADE') {
                return false;
            }
        } else {
            if (strtoupper($chave) == 'IS_PRODUCAO_PLANTA' or strtoupper($chave) == 'IS_NRO_PLANTAS') {
                return false;
            }
        }

        return true;
    }

    /**
     * Monta um elemento
     */
    private function getElement($atributo, $quadra = false)
    {
        $module = Zend_Controller_Front::getInstance()->getRequest()->getModuleName();
        $Element = new Agro_Element();
        $Element->setType($atributo['ds_chave_tipo_atributo']);
        $Element->setOptions($atributo['ds_valores_opcoes']);
        $Element->setName("unidades[{$quadra['is_item']}][{$atributo['ds_chave_rn']}]");

        if ($quadra) {
            if ($atributo['ds_chave_rn'] == 'IS_ESPACAMENTO_COMPOSTO') {
                $tmp = explode('x', $quadra['is_espacamento_simples']);
                $quadra['is_espacamento_composto']['n'] = $tmp[0];
                $quadra['is_espacamento_composto']['m'] = $tmp[1];
            }

            if ($atributo['ds_chave_rn'] == "IS_TIPO_SOLO_AD") {
              $quadra[strtolower($atributo['ds_chave_rn'])] = $quadra['is_tipo_solo']; 
            }

            $Element->setName("unidades[{$quadra['is_item']}][{$atributo['ds_chave_rn']}]");
            $Element->setValue($quadra[strtolower($atributo['ds_chave_rn'])]);

            if ($atributo['ds_chave_rn'] == 'IS_SISTEMA_PLANTIO') {
                $Element->setValue($quadra['is_id_sistema_plantio']);
            }

        } else {
            $Element->setName("unidades[{0}][{$atributo['ds_chave_rn']}]");
        }

        if ($atributo['ds_chave_rn'] == 'IS_PRODUTIVIDADE' && $this->_producao && !$this->_proposta->isEndosso()) {
            $Element->setAttrib('readonly', 'readonly');

            $produtividade = $this->_produtividade;
            if ($this->_options['atendimento'] == true && !empty($quadra)) {
                $produtividade = ($quadra['is_produtividade'] != '' || $quadra['is_produtividade'] != null) ? $quadra['is_produtividade'] : $this->_produtividade;
            }

            if ($produtividade) {
                $Element->setValue($produtividade);
            }
        }

        if ($atributo['max_length']) {
            $Element->setAttrib('maxlength', $atributo['max_length']);
        }

        if ($atributo['fl_required']) {
            $Element->setClass($atributo['ds_chave_tipo_atributo'] . ' element_required');
        } else {
            $Element->setClass($atributo['ds_chave_tipo_atributo']);
        }

        if ($atributo['ds_chave_tipo_atributo'] == 'lookup') {
            $where = '';
            if ($atributo['ds_option_filter']) {
                $value = $this->_proposta->{$atributo['ds_option_filter']};
                $where = "where {$atributo['ds_option_filter']} = $value";
            }

            $Element->setLookup($atributo['ds_schema'], $atributo['ds_table'], $atributo['ds_option_value'], $atributo['ds_option_text'], $where);
        }

        if ($atributo['ds_chave_rn'] == 'IS_CAR') {
          $map = (new Seguro_Model_ItensSeguradosCAR())->mapItemSeguradoCarsByProposta($this->_proposta->id);
          $options = [];
          
          $spanInfo = '<span id="span-info-car-'. $quadra['is_item'] .'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>';
          
          foreach ($map[$quadra['id']] as $row) {
            if ($row['fl_selecionado']) {
              $Element->setValue(Agro_Util::carMask($row['ds_car']));
              $options[$row['ds_car']]['selected'] = 'selected';

              $spanInfo = $row['fl_manual']
                ? '<span id="span-info-car-'. $row['nr_item_segurado'] .'" style="font-weight:bold; color:var(--info-color);">(M)</span>'
                : '<span id="span-info-car-'. $row['nr_item_segurado'] .'" style="font-weight:bold; color:var(--success-color);">(S)</span>';
            }

            $options[$row['ds_car']]['attrib'] = "data-is-manual='{$row['fl_manual']}';data-id-car='{$row['id_car']}';data-numero-item='{$row['nr_item_segurado']}';";
            $options[$row['ds_car']]['value'] = Agro_Util::carMask($row['ds_car']);
          }

          $Element->setAttrib('spanInfo', $spanInfo);

          $Element->setMaxLength(50);
          $Element->setClass('input-numero-car');
          $Element->setOptions($options);
        }

        if ($this->_produto["ds_nome_cultura"] == "Pastagem") {
            //Comentei por causa da tarefa 2303161127
            //$Element->setAttrib('readonly', 'readonly');
        }

        echo $Element->get();
    }
}
