<?
/**
 * @version    5.0.0
 * @category   Goweb
 * @package    Goweb_Excel
 * @copyright  Copyright (c) 2009 Goweb (http://www.goweb.pt)
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
*/

/** Goweb_Excel_Maker */
Goweb::loadClass('Goweb_Excel_Maker');

/**
 * Goweb_Excel_Select_Excel
 *
 * @version    5.0.0
 * @category   Goweb
 * @package    Goweb_Excel
 * @copyright  Copyright (c) 2009 Goweb (http://www.goweb.pt)
 * @author     I&D <dev@goweb.pt>, Pedro Pinto <ppinto@goweb.pt>
*/
CLASS  Goweb_Excel_Select_Excel extends Goweb_Excel_Maker {

    /**
     * Este metodo ire montar um ficheiro excel a partir de
     * um objecto 
     *
     * @param   array   $fields
     * @param   array   $result
    */
    function sqlToExcel($result, $fileName = 'Goweb') {

        $fileName = trim($fileName);

        // define o timezone
        date_default_timezone_set('Europe/Lisbon');

        // define nome do arquivo
        $this->_fileName = $fileName . '_' . date("His");

        // Quantidade de linhas devolvidas pelo select
        $linReg  = count($result);

        // linha das colunas do CSV
        $colunas = '';
        foreach ($result as $row) {
            foreach ($row as $field => $value) {
                $colunas .= $field . ';';
            }
            break;
        }
        $colunas = substr($colunas, 0, -1) . "\n";
        $this->buildContent($colunas);

        foreach ($result as $row) {
            $linha = '';
            foreach ($row as $field => $value) {
                if (CHARSET == 'UTF-8') $value = utf8_decode($value);
                $linha .= $value . ';';
            }
            $linha = substr($linha, 0, -1) . "\n";
            $this->buildContent($linha);
        }

        // Cria arquivo
        $this->getFile();

    } // fecha funcao

} // fecha classe
