<?php
/**
 * Copyright 2005-2017 de Solis Soluções Livres Ltda.
 *
 * Este arquivo é parte do programa Gnuteca.
 *
 * O Gnuteca é um software de propriedade da SOLIS, sendo desenvolvido
 * e mantido exclusivamente por esta empresa.
 *
 * A licença de uso está disponível mediante aquisição exclusiva junto à
 * SOLIS. A licença é concedida sem caráter de exclusividade ao licenciado.
 * Os direitos de uso são perpétuos.
 *
 * Embora os códigos fontes sejam fornecidos, o software é de propriedade
 * da SOLIS, não sendo permitido ao adquirente da licença a sua revenda,
 * empréstimo ou cessão (onerosa ou não) à terceiros. Também não é permitido,
 * a qualquer título e tempo, promover no software qualquer tipo de alienação,
 * reprodução, distribuição, divulgação, registro, licenciamento, transferência
 * ou qualquer outro ato que prejudique ou comprometa os direitos de propriedade
 * de software, o nome e a imagem da sua proprietária e do próprio software,
 * além de configurar concorrência à SOLIS.
 *
 * O licenciado, com o acesso ao código fonte do software, terá o direito de
 * promover mudanças no respectivo código. No entanto, nas situações em que ele
 * contar com o suporte oficial prestado pela SOLIS, não poderá promover mudanças
 * no código fonte, sob pena de perda do referido suporte.
 *
 * Para conhecer em detalhes o Termo de Licenciamento do Software Gnuteca
 * leia o arquivo “LICENCA.txt” disponível junto ao código deste software.
 * 
 * 
 * Processo para verificar inventário
 *
  *
 *
 *
 *
 **/

$MIOLO->getClass('gnuteca3', 'controls/GFileUploader');
$MIOLO->getClass('gnuteca3', 'controls/GDictionaryField');

class FrmMapSearch extends GForm
{
    private $busLibraryUnit;

    public function __construct($data)
    {
        $this->MIOLO    = MIOLO::getInstance();
        $this->module   = MIOLO::getCurrentModule();

        $this->busLibraryUnit = $this->MIOLO->getBusiness($this->module, 'BusLibraryUnit');
        
        $this->setTransaction('gtcMapSearch');
        $this->setBusiness('BusMapSearch');
        parent::__construct(_M("Pesquisa em mapa", $this->module));
    }

    public function mainFields()
    {
        $busMarcTagListingOption = $this->MIOLO->getBusiness($this->module, 'BusMarcTagListingOption');
        $this->busLibraryUnit->filterOperator = true;
        $list = $this->busLibraryUnit->listLibraryUnit(false, true);
        $fields[] = new GSelection('libraryUnitId', null, _M("Unidade de biblioteca", $this->module), $list);
        
        $fields[] = new MTextField('uf', NULL, _M('Estado', $this->module), FIELD_DESCRIPTION_SIZE);
        $fields[] = new MTextField('municipio', NULL, _M('Município', $this->module), FIELD_DESCRIPTION_SIZE);
       
        $ordem = new GDictionaryField('ordem', '', _M('Ordem'));
        $ordem->setContext('gnuteca3', 'gnuteca3', "Dictionary", 'filler', 'ordem', "ordem_Filter_DictionaryNumber,ordem_Filter_DictionaryContent", false);
        $fields[] = new MHiddenField("ordem_Filter_DictionaryNumber", 5);
        $fields[] = new MHiddenField("ordem_Filter_DictionaryContent", '');
        $fields[] = $ordem;
        
        $familia = new GDictionaryField('familia', '', _M('Família'));
        $familia->setContext('gnuteca3', 'gnuteca3', "Dictionary", 'filler', 'familia', "familia_Filter_DictionaryNumber,familia_Filter_DictionaryContent", false);
        $fields[] = new MHiddenField("familia_Filter_DictionaryNumber", 6);
        $fields[] = new MHiddenField("familia_Filter_DictionaryContent", '');
        $fields[] = $familia;
        
        $genero = new GDictionaryField('genero', '', _M('Gênero'));
        $genero->setContext('gnuteca3', 'gnuteca3', "Dictionary", 'filler', 'genero', "genero_Filter_DictionaryNumber,genero_Filter_DictionaryContent", false);
        $fields[] = new MHiddenField("genero_Filter_DictionaryNumber", 7);
        $fields[] = new MHiddenField("genero_Filter_DictionaryContent", '');
        $fields[] = $genero;
        
        $especie = new GDictionaryField('especie', '', _M('Espécie'));
        $especie->setContext('gnuteca3', 'gnuteca3', "Dictionary", 'filler', 'especie', "especie_Filter_DictionaryNumber,especie_Filter_DictionaryContent", false);
        $fields[] = new MHiddenField("especie_Filter_DictionaryNumber", 9);
        $fields[] = new MHiddenField("especie_Filter_DictionaryContent", '');
        $fields[] = $especie;
        
        $coletor = new GDictionaryField('coletor', '', _M('Coletor'));
        $coletor->setContext('gnuteca3', 'gnuteca3', "Dictionary", 'filler', 'coletor', "coletor_Filter_DictionaryNumber,coletor_Filter_DictionaryContent", false);
        $fields[] = new MHiddenField("coletor_Filter_DictionaryNumber", 2);
        $fields[] = new MHiddenField("coletor_Filter_DictionaryContent", '');
        $fields[] = $coletor;
        
        $lblColeta = new MLabel(_M('Período de coleta', $this->module) . ':');
        $inicioColeta = new MCalendarField('inicioColeta', $this->beginReturnDateS->value);
        $fimColeta = new MCalendarField('fimColeta', $this->endReturnForecastDateS->value);
        $fields[] = new GContainer('hctDates', array($lblColeta, $inicioColeta, $fimColeta));
        
        $btnSearch = new MButton('btnSearch', _M('Buscar', $this->module), ':searchFunction', GUtil::getImageTheme('search-16x16.png'));
        $fields[]  = new MDiv('btnSearchEx', $btnSearch );
        
        $this->setFields( $fields );
    }
    
    /**
     * Método reescrito para tratar os dinamicFields
     * @param type $args 
     */
    public function searchFunction($args)
    {
        $parameters = 'uf=' . $args->uf;
        $parameters .= '&municipio=' . $args->municipio;
        $parameters .= '&genero=' . $args->genero;
        $parameters .= '&familia=' . $args->familia;
        $parameters .= '&ordem=' . $args->ordem;
        $parameters .= '&especie=' . $args->especie;
        $parameters .= '&coletor=' . $args->coletor;
        $parameters .= '&libraryUnitId=' . $args->libraryUnitId;
        $parameters .= '&inicioColeta=' . $args->inicioColeta;
        $parameters .= '&fimColeta=' . $args->fimColeta;
        
        $js = "window.open('mapsSearch.php?" . $parameters . "', '_blank');";
        $this->page->onload($js);
        
        $this->information(_M('O resultado está sendo mostrado em outra aba. Verifique se o seu navegador está bloqueando popups'));
        
        $this->setResponse(NULL, 'divReponse');
    }
}
?>
