<?php
//
$sNomeIdJan1 = 'iJan_RelCsg_Princ';
$sNomeIdJan2 = 'iJan_RelCsg_TxtVs';
$sCorBarraInf = '#E8E3CE';
$sData_Trabalho = SQLVarConfig('DATA_DE_TRABALHO');
$sTipoConsignado = SQLVarConfig('NOME_CONSIGNADOS');
$sPulaLinha     = CHR(13).CHR(10);
//
// Carrega sessão para á variável
$aSessaoLocal = @$aSessao[$sNomeAcesso.'_S'];
//
//  ** TELA INICIAL **
If ( EMPTY( $sSubModulo ) ) {
   //
   $s_Formulario = "fmPRelCsg";     // Nome principal dos formulários HTML
   // Criar objeto Janela
   $oJanelaPrinc = New R_Janela();
   $oJanelaPrinc->sIdObj  = $sNomeIdJan1; 
   $oJanelaPrinc->nTop    = 100;
   $oJanelaPrinc->nLeft   = 5;
   $oJanelaPrinc->nWidth  = 500;   // Largura
   $oJanelaPrinc->nHeight = 0;     // Altura
   $oJanelaPrinc->nLeft   += ($nTela_W/2)-($oJanelaPrinc->nWidth/2);
   $oJanelaPrinc->sTitulo = 'Relatório de vendas de '.$sTipoConsignado;
   $sJavaTravarJ =
     "parent.Disabled_In_Elems('".$oJanelaPrinc->sIdObj."',true);".
     "parent.document.getElementById('".$oJanelaPrinc->sIdObj."_Travar').style.visibility='visible';";
   $oJanelaPrinc->sJavOnClickF =
     "parent.document.forms.".$s_Formulario.".acao.value='FECHAR';".
     "parent.document.forms.".$s_Formulario.".submit();".
     $sJavaTravarJ;
   $oJanelaPrinc->sJavKeyDown = "return Car_".$sNomeAcesso."1.Teclas_F(this,event);";
   $oJanelaPrinc->aIdsObjList =
      ARRAY(
   	    'in_RelCsg_DatIni', 'in_RelCsg_DatFim', 'sl_RelCsg_TipRel', 'sl_RelCsg_FilCli'
   	  );
   //
   // >> Janela Principal
   If ( EMPTY($sAcao) ) {
	   //
       // Tela HTML
       $sRet_TelaJ_HTML =
          $oJanelaPrinc->MontaJanHTML(True).
          '<form name="'.$s_Formulario.'" accept-charset="utf-8" method="post" action="./car_js.php" target="car_'.$sNomeAcesso.'2">'.
           '<input name="mod" type="hidden" value="'.$sModulo.'">'.
           '<input name="submod" type="hidden" value="'.$sSubModulo.'">'.
           '<input name="acao" type="hidden" value="">'.
           '<input name="nomeacs" type="hidden" value="'.$sNomeAcesso.'">'.
          // 1º linha
          '<table width="100%" border="0">'.
           '<tr>'.
            '<td width="4px" height="20px">&nbsp;</td>'.
            '<td width="80px" align="right">'.
             'Período:'.
            '</td>'.
            '<td align="left">'.
             '<table border="0" cellspacing="0" cellpadding="0"><tr>'.
              '<td width="28px" align="center"><img onclick="'."sIdHasFocus='in_RelCsg_DatIni';".'" src="images/bimg_calendario.png" border="0" id="bt_RelCsg_DatIni" style="cursor:pointer;"></td>'.
              '<td width="77px">'.
               '<input id="in_RelCsg_DatIni" name="Fil_DataIni" type="text" maxlength="10" onchange="return Car_'.$sNomeAcesso.'1.Atualiza();" value="" style="font-size:12px; width:99%; text-align:center;">'.
              '</td>'.
              '<td align="center" width="10px">'.
               '-'.
              '</td>'.
              '<td width="28px" align="center"><img onclick="'."sIdHasFocus='in_RelCsg_DatFim';".'" src="images/bimg_calendario.png" border="0" id="bt_RelCsg_DatFim" style="cursor:pointer;"></td>'.
              '<td width="77px">'.
               '<input id="in_RelCsg_DatFim" name="Fil_DataFim" type="text" maxlength="10" onchange="return Car_'.$sNomeAcesso.'1.Atualiza();" style="font-size:12px; width:99%; text-align:center;">'.
              '</td>'.
              '<td align="left" style="color:#FF0000;">'.
              '</td>'.
             '</tr></table>'.
            '</td>'.
            '<td width="70px" align="right" valign="middle">'.
			 'Tipo:'.
			'</td>'.
            '<td width="100px" align="right" valign="middle">'.
		   	 '<select id="sl_RelCsg_TipRel" name="Fil_TipoRel" style="width:99.4%;">'.
		   	  '<option value="0">Sintético</option>'.
		   	  //'<option value="1">Analítico</option>'.
		   	 '</select>'.
            '</td>'.
            '<td width="4px">&nbsp;</td>'.
           '</tr>'.
          '</table>'.
		  // 2º linha
		  '<table width="100%" border="0">'.
		   '<tr>'.
            '<td width="4px" height="20px">&nbsp;</td>'.
			'<td valign="middle" align="right" width="80px">'.
			 'Filtrar cliente:'.
			'</td>'.
		    '<td align="right">'.
			 '<select id="sl_RelCsg_FilCli" name="Fil_CodgCli" style="width:99.9%; font-size:11px; font-family:Courier New,Courier,mono;">'.
			 '</select>'.
			'</td>'.
            '<td width="4px">&nbsp;</td>'.
		   '</tr>'.
          '</table>'.
		  //
          '</form>'.
          // 2º linha (ultima dos botões)
          '<table width="100%" style="background-color:'.$sCorBarraInf.';">'.
           '</tr>'.
            '<td width="4px" height="40px">&nbsp;</td>'.
            '<td align="left">'.
             HTML_Botao( 3, 'objRelCsg_BT_Abr', 'Car_'.$sNomeAcesso.'1.Relatorio();'
                          , 'Visualizar (F8)' ,'images/btimg_docs.png',120).		    
            '</td>'.
            '<td align="right">'.
             HTML_Botao( 3, 'objRelCsg_BT_Fch', $oJanelaPrinc->sJavOnClickF
                          , 'Sair (ESC)' ,'images/btimg_fechar.png').		    
            '</td>'.
            '<td width="4px">&nbsp;</td>'.
           '</tr>'.
          '</table>'.		   
          $oJanelaPrinc->MontaJanHTML(False);
	   //
	   // Java anterior
       $sRet_Javs .=
	     'parent.document.getElementById("dv_MenuL_Barra").style.visibility="hidden";'.
	     //
	     "function Atualiza() {".
	        "var vFm = parent.document.forms.".$s_Formulario.";".
	        "sAntTarget = vFm.target;".
	        "vFm.target='car_".$sNomeAcesso."3';".
	        "vFm.acao.value='ATUALIZAR'; ".
            "vFm.submit(); ".
	        "vFm.target = sAntTarget;".
	     "}".
         //
         "function Relatorio() {".
            "var vFm = parent.document.forms.".$s_Formulario.";".
            "sAntTarget = vFm.target;".
            "vFm.target='car_".$sNomeAcesso."5';".
            "vFm.acao.value=''; ".
            "vFm.submod.value='RELATORIO'; ".
            "vFm.submit(); ".
            "vFm.submod.value='".$sSubModulo."'; ".
            "vFm.target = sAntTarget;".
            $sJavaTravarJ.
         "}".
         //
         "function Teclas_F( Objeto, Evento ) { ".
           "vNumTecla = parent.Tecla_Apertada(Evento); ".
           "sAntFocus = parent.sIdHasFocus;".
           "if ( vNumTecla==119) { ".         // ** [F8] **
               "if (parent.document.getElementById('objRelCsg_BT_Abr').style.display!='none') {".           // (Visualizar)
                  "setTimeout( parent.document.getElementById('objRelCsg_BT_Abr').onclick , 10);".
               "}".
           "} else if ( vNumTecla==116) { ".  // ** [F5] **     Não atualizar
               //
           "} else if ( vNumTecla==27 ) { ".  // ** [ESC] **    Fechar da janela
               "setTimeout( parent.document.getElementById('objRelCsg_BT_Fch').onclick , 10);".
           "} else if ( vNumTecla==13) { ".   // ** [ENTER] **
              "while (true) {".
           	     "sTempId = parent.Proximo_TabObj(parent.document.getElementById('".$oJanelaPrinc->sIdObj."'),sAntFocus);".
           	     "if ( sTempId.length>0 ) {".
           	         "parent.document.getElementById(sTempId).focus();".
           	         "if (sTempId == parent.sIdHasFocus ) {".
           	             'parent.document.getElementById(sTempId).select();'.
           	      	     "break;".
           	         "}".
           	         "sAntFocus=sTempId;".
           	     "} else {".
                     "parent.document.getElementById('in_RelCsg_DatIni').focus();".
                     'break;'.
           	     "}".
           	  "}".
           "} else {".
              "return true;".
           "} ".
           "return false;".
         "}".
         "";
       //
       // Java posterior
       $sRet_JavsPos .=
         "parent.document.getElementById('in_RelCsg_DatIni').focus();".
         "Atualiza();".
         //
         'parent.Calendar.setup({ '.
           'inputField : "in_RelCsg_DatIni", '.
           'trigger    : "bt_RelCsg_DatIni", '.
           'onSelect   : function() { this.hide(); parent.sIdHasFocus=""; Atualiza(); }, '.
           'showTime   : 0, '.
           'dateFormat : "%d/%m/%Y" '.
         '});'.
         'parent.Calendar.setup({ '.
           'inputField : "in_RelCsg_DatFim", '.
           'trigger    : "bt_RelCsg_DatFim", '.
           'onSelect   : function() { this.hide(); parent.sIdHasFocus=""; Atualiza(); }, '.
           'showTime   : 0, '.
           'dateFormat : "%d/%m/%Y" '.
         '});'.
         "";
      //
   //
   // >> Atualizar campos
   } ElseIf ( $sAcao=="ATUALIZAR" ) {
      $sFil_DataIni  = @$_REQUEST['Fil_DataIni'];                                   // Data inicial
      $sFil_DataFim  = @$_REQUEST['Fil_DataFim'];                                   // Data Final
      $nFil_CodgCli  = Somente_Numeros( @$_REQUEST['Fil_CodgCli'] )+0;              // Codigo do cliente
      $dFil_DataIni = ConvertDataSTR( ConvertDataBRUS($sFil_DataIni) );
      $dFil_DataFim = ConvertDataSTR( ConvertDataBRUS($sFil_DataFim) );
      //
      $sSQL_Where = 'FAT_TIP_LOC=2 AND FAT_TIPOORI=5 AND FAT_CANCELA=0 AND FAT_CLIENTE>0 AND FAT_RCFORMA>0';
      $aSessaoLocal['SQL_Where'] = $sSQL_Where;
      If ($dFil_DataIni>0) {
         $sSQL_Where .= ' AND (FAT_DATAINI>="'.DATE('Y-m-d',$dFil_DataIni).'")';    // Comparando (Inicial)
      }
      If ($dFil_DataFim>0) {
         $sSQL_Where .= ' AND (FAT_DATAINI<="'.DATE('Y-m-d',$dFil_DataFim).'")';    // Comparando (Final)
      }
      //
      $sHtml_CmbCli = '<option value="0">** Todos os clientes **</option>';
      $sSQL_Query =
        "SELECT ".
          "cli.CLI_CODIGOI,".
          "cli.CLI_NOMECP ".
        "FROM fat_geral         AS ftg ".
        "LEFT JOIN cad_cliente  AS cli  ON  cli.CLI_CODIGOI=ftg.FAT_CLIENTE ".
        "WHERE ".$sSQL_Where." ".
        "GROUP BY ftg.FAT_CLIENTE ".
        "ORDER BY cli.CLI_NOMECP ASC ".
        ";";
      $Rows = MYSQL_QUERY($sSQL_Query) or die(MYSQL_ERROR().'<br>'.$sSQL_Query);
      While ( $Row = MYSQL_FETCH_ARRAY($Rows,MYSQL_ASSOC) ) {
        $sHtml_CmbCli .=
        '<option value="'.$Row['CLI_CODIGOI'].'"'.
          ($nFil_CodgCli==$Row['CLI_CODIGOI'] ? ' selected' : '').
        '>'.
          Str_Zero($Row['CLI_CODIGOI'],8)." - ".$Row['CLI_NOMECP'].
        '</option>';
      }
      $sRet_Javs .=
        'parent.document.getElementById("sl_RelCsg_FilCli").innerHTML = '.JAVA_CharCode_Mini($sHtml_CmbCli).';'.
        'parent.document.getElementById("in_RelCsg_DatIni").value="'.$sFil_DataIni.'"; '.
        'parent.document.getElementById("in_RelCsg_DatFim").value="'.$sFil_DataFim.'"; '.
        '';
      //
   //
   // >> Fechar janela
   } ElseIf ( $sAcao=="FECHAR" ) {
      $sRet_Javs .=
        'parent.document.getElementById("dv_MenuL_Barra").style.visibility="visible";'.
        "parent.RmElem('".$oJanelaPrinc->sIdObj."');".
        "parent.Car_".$sNomeAcesso."2.location.href='about:blank';".
        "parent.Car_".$sNomeAcesso."1.location.href='about:blank';".
   	    "";
      UNSET( $aSessaoLocal );
      //
   }
   //
//
//  ** TELA QUE MONTA O RELATÓRIO **
} ElseIf ( $sSubModulo=="RELATORIO" ) {
   $s_Formulario = "fmPRelCsg_I";     // Nome principal dos formulários HTML
   // Criar objeto Janela
   $oJanelaPrinc = New R_Janela();
   $oJanelaPrinc->sIdObj  = $sNomeIdJan2; 
   $oJanelaPrinc->nTop    = 5;     // Inicio vertical
   $oJanelaPrinc->nLeft   = 0;     // Inicio horizontal
   $oJanelaPrinc->nWidth  = 1005;  // Largura
   $oJanelaPrinc->nHeight = 0;     // Altura
   $oJanelaPrinc->nLeft   += ($nTela_W/2)-($oJanelaPrinc->nWidth/2);
   $oJanelaPrinc->sTitulo = 'Relatório';
   $oJanelaPrinc->sJavOnClick  = "parent.document.getElementById('in_RelCsgV_Tecla').focus();";
   //
   $sJavaTravarJ = "parent.document.getElementById('".$oJanelaPrinc->sIdObj."_Travar').style.visibility='visible';";
   $oJanelaPrinc->sJavOnClickF =
       $sJavaTravarJ.
       "parent.document.forms.".$s_Formulario.".acao.value='FECHAR'; ".
       "parent.document.forms.".$s_Formulario.".submit();";
   $oJanelaPrinc->sJavKeyDown = "return Car_".$sNomeAcesso."5.Teclas_F(this,event);";
   //
   // >> Janela Principal
   If ( EMPTY($sAcao) ) {
      $aSessaoLocal['Fil_DataIni'] = @$_POST['Fil_DataIni'];      // Data inicial
      $aSessaoLocal['Fil_DataFim'] = @$_POST['Fil_DataFim'];      // Data final
      $aSessaoLocal['Fil_TipoRel'] = @$_POST['Fil_TipoRel'];      // Tipo do relatório
      $aSessaoLocal['Fil_CodgCli'] = @$_POST['Fil_CodgCli'];      // Código do cliente
      // Tela HTML
      $sRet_TelaJ_HTML =
        $oJanelaPrinc->MontaJanHTML(True).
        // Teclas
        '<input id="in_RelCsgV_Tecla" style="position:absolute; top:-600; left:-600; width:1px; height:1px;">'.
        //
        '<iframe name="VisCsgR_Print"></iframe>'.
        '<form name="'.$s_Formulario.'" accept-charset="utf-8" method="post" action="./car_js.php" target="car_'.$sNomeAcesso.'6">'.
         '<input name="mod" type="hidden" value="'.$sModulo.'">'.
         '<input name="submod" type="hidden" value="'.$sSubModulo.'">'.
         '<input name="acao" type="hidden" value="">'.
         '<input name="nomeacs" type="hidden" value="'.$sNomeAcesso.'">'.
        '</form>'.
        '<div id="dv_RelCsgR_Txt" style="width:100%; height:480px; background:#FFFFFF; overflow:auto;">'.
         '<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">'.
          '<tr><td align="center" valign="middle" style="color:#555555;">'.
          'Aguarde um momento...<br>'.
          '<img src="images/img_load1.gif" border="0">'.
          '</td></tr>'.
         '</table>'.
        '</div>'.
        //
        '<table width="100%" style="background-color:'.$sCorBarraInf.';"></tr>'.
         '<td width="4px" height="40px">&nbsp;</td>'.
         '<td width="150px" align="left">'.
           HTML_Botao( 3, 'objRelCsgR_BT_Imp',  'Car_'.$sNomeAcesso.'5.processPrint();'
                        , 'Imprimir (F2)'    , 'images/btimg_imp.png',130).
         '</td>'.
		 '<td width="110px" align="left">'.
           HTML_Botao( 3, 'objRelCsgR_BT_Csv',  'Car_'.$sNomeAcesso.'5.SalvarCSV();'
                        , 'Excel (F10)'   ,'images/btimg_exportar_excel.png',100).		    
		 '</td>'.
         '<td align="left">'.
           HTML_Botao( 3, 'objRelCsgR_BT_Dwn',  'Car_'.$sNomeAcesso.'5.SalvarTexto();'
                        , 'Salvar (F9)'      , 'images/btimg_baixar_texto.png',100).
         '</td>'.
         '<td align="right">'.
           HTML_Botao( 3, 'objRelCsgR_BT_Fch',  $oJanelaPrinc->sJavOnClickF
                        , 'Sair (ESC)'       , 'images/btimg_fechar.png').
         '</td>'.
         '<td width="4px">&nbsp;</td>'.
        '</tr></table>'.
        //
        $oJanelaPrinc->MontaJanHTML(False);
      //
      // Java anterior
      $sRet_Javs .=
        "function processPrint() {".
          "var sdivElements = parent.document.getElementById('dv_RelCsgR_Txt').innerHTML;".
          "var Quadro = parent.frames['VisCsgR_Print'];".
          "Quadro.window.location='about:blank';". 
          "Quadro.document.write('<html><head><title>Relatório de vendas de ".$sTipoConsignado."</title></head><body>');".
          "Quadro.document.write(sdivElements);".
          "Quadro.document.write('</body></html>');".
          "Quadro.window.print();".
        "}".
        //
        "function SalvarTexto() {".
          "parent.document.forms.".$s_Formulario.".acao.value='GERAR_TEXTO';".
          "parent.document.forms.".$s_Formulario.".submit();".
        "}".
        "function SalvarCSV() {".
          "parent.document.forms.".$s_Formulario.".acao.value='GERAR_CSV';".
          "parent.document.forms.".$s_Formulario.".submit();".
        "}".
        //
        "function Teclas_F( Objeto, Evento ) {".
          "vNumTecla = parent.Tecla_Apertada(Evento);".
          "if ( vNumTecla==120) { ".        //  ** [F9] **          // (Salvar em arquivo texto)
              "setTimeout( parent.document.getElementById('objRelCsgR_BT_Dwn').onclick , 50);".
              //
          "} else if ( vNumTecla==121) { ". //  ** [F10] **         // (Salvar em arquivo CSV)
              "setTimeout( parent.document.getElementById('objRelCsgR_BT_Csv').onclick , 50);".
              //
          "} else if ( vNumTecla==116) { ". //  ** [F5] **          Não atualizar
              //
          "} else if ( vNumTecla==113) { ". //  ** [F2] **          // (Imprimir)
              "setTimeout( parent.document.getElementById('objRelCsgR_BT_Imp').onclick , 50);".
              //
          "} else if ( vNumTecla==27) { ".  //  ** [ESC] **         // (SAIR)
              "setTimeout( parent.document.getElementById('objRelCsgR_BT_Fch').onclick , 50);".
          "} else {".
              "return true;".
          "}".
          "return false;".
        '}'.
        //
        "";
       // Java posterior
       $sRet_JavsPos .=
	     "parent.document.getElementById('in_RelCsgV_Tecla').focus(); ".
	     "setTimeout( function () { ".
	        "parent.document.forms.".$s_Formulario.".acao.value='MONTAR';".
            "parent.document.forms.".$s_Formulario.".submit();".
		 "} , 300); ".
         "";
	   //
   //
   // Monta o relatório
   } ElseIf ( $sAcao=="MONTAR" ) {
      $sFil_DataIni = $aSessaoLocal['Fil_DataIni'];
      $sFil_DataFim = $aSessaoLocal['Fil_DataFim'];
      $nFil_TipoRel = $aSessaoLocal['Fil_TipoRel']+0;
      $nFil_CodgCli = $aSessaoLocal['Fil_CodgCli']+0;
      $sSQL_Where   = $aSessaoLocal['SQL_Where'];
      $a_Retatorio = Montar_Relatorio_Csg();
      $sTxt_Rel = $a_Retatorio[0];
      $sCsv_Rel = $a_Retatorio[1];
      //
      //$sTxt_Rel = RemoveAcentos($sTxt_Rel);
      $aSessaoLocal['TXT_REL'] = $sTxt_Rel;
      $aSessaoLocal['CSV_REL'] = $sCsv_Rel;
      $sHTML_Rel = $sTxt_Rel;
      $sHTML_Rel = STR_REPLACE(CHR(10),"",$sHTML_Rel);
      $sHTML_Rel = STR_REPLACE(CHR(13),"<br>",$sHTML_Rel);
      $sHTML_Rel = STR_REPLACE(CHR(32),"&nbsp;",$sHTML_Rel);
      $sHTML_Rel =
        '<div align="center" style="-moz-user-select:text; -khtml-user-select:text; -webkit-user-select:text; -ms-user-select:text; user-select: text; cursor:auto;">'.
         '<table border="0" cellspacing="0" cellpadding="0"><tr><td align="left" style="font-size:13px; font-family:Courier New,Courier,mono;">'.
          $sHTML_Rel.
         '</td></tr></table>'.
        '</div>';
      //
      $sRet_Javs .= 
        "parent.document.getElementById('dv_RelCsgR_Txt').innerHTML = ".JAVA_CharCode($sHTML_Rel).";".
        "";
      //
   //
   // IMPRIMIR Relatório pronto
   } ElseIf ( $sAcao=="IMP" ) {
      $sRet_Javs .= "parent.JanEspera(false); ";
      $sCfg_ClpExp2 = SQLVarConfig('GARCOM_CLIPPER_ARQ_EXPORTA2');
      If ( STRLEN($sCfg_ClpExp2)>3 ) {
         $sTxt_Cupom = @$aSessaoLocal['TXT_REL'];
         If (STRLEN($sTxt_Cupom)>0) {
            // Gravar o relatório Texto
            $sNomArqExpT = $sCfg_ClpExp2.$R_CadFuncionario->FUN_CODIGO.'_'.DATE("d-m-Y_h-i-s").'_RCP.TMP';
            $sIP_NomeArq = STR_REPLACE(".","_",ObterIPdoCliente());
            $sNomArqExpR = $sCfg_ClpExp2.$R_CadFuncionario->FUN_CODIGO.'_'.DATE("d-m-Y_h-i-s").'_RCP_'.$sIP_NomeArq.'.REL';
            //
            ERROR_REPORTING(0);      // Bloqueio o relatório de erro
            If ( $hArqExp = FOPEN( $sNomArqExpT, "a" ) ) {
               FWRITE($hArqExp, $sTxt_Cupom );
               FCLOSE( $hArqExp );
               If ( FILE_EXISTS($sNomArqExpR) ) { UNLINK($sNomArqExpR); }
               RENAME( $sNomArqExpT, $sNomArqExpR );
               //
            } Else {
               $sRet_Javs .= Info_Evento('Erro ao gerar arquivo do relatório para impressão.',1,"Impressão de relatório");
            }
            ERROR_REPORTING(E_ALL); // Desbloqueio o relatório de erro
            //
         } Else {    // Sem conteudo para imprimir
            $sRet_Javs .=
                Info_Evento('Não há conteúdo para imprimir.').
                '';
         }
      } Else {       // Sem caminho para impressão
         $sRet_Javs .=
            Info_Evento('Parametros do caminho inválido.').
            $sJavaFechaEr;
      }
   //
   // >> Gerar texto para download
   } ElseIf ( $sAcao=="GERAR_TEXTO" ) {
      OB_CLEAN();
      $sArquivo = "Relatorio_Vendas_".$sTipoConsignado."_".DATE("d-m-Y_H-i-s").".txt";
      $s_Conteudo = @$aSessaoLocal['TXT_REL'];
      HEADER("Content-Type: text/plain");
      HEADER("Content-Length: ".STRLEN($s_Conteudo));
      HEADER("Content-Disposition: attachment; filename=".$sArquivo);
      ECHO $s_Conteudo;
      EXIT;
   //
   // >> Gerar texto csv para download
   } ElseIf ( $sAcao=="GERAR_CSV" ) {
      OB_CLEAN();
      $sArquivo = "Relatorio_Vendas_".$sTipoConsignado."_".DATE("d-m-Y_H-i-s").".csv";
      $s_Conteudo = @$aSessaoLocal['CSV_REL'];
      HEADER("Content-Type: text/csv");
      HEADER("Content-Length: ".STRLEN($s_Conteudo));
      HEADER("Content-Disposition: attachment; filename=".$sArquivo);
      ECHO $s_Conteudo;
      EXIT;
   // >> FECHAR Janela
   } ElseIf ( $sAcao=="FECHAR" ) {
      $sRet_Javs .=
        "if (parent.document.getElementById('".$oJanelaPrinc->sIdObj."') != null) { parent.RmElem('".$oJanelaPrinc->sIdObj."'); }".
        "parent.document.getElementById('".$sNomeIdJan1."_Travar').style.visibility='hidden';".
        "parent.Disabled_In_Elems('".$sNomeIdJan1."',false);".
        "parent.document.getElementById('in_RelCsg_DatIni').focus();".
        "parent.Car_".$sNomeAcesso."1.Atualiza();".
        "";
      //
   }
   //
}
//
// Tratamento da variável de sessão
If ( ISSET($aSessaoLocal) ) {
   $aSessao[$sNomeAcesso.'_S'] = $aSessaoLocal;
} Else {
   UNSET( $aSessao[$sNomeAcesso.'_S'] );
}
//
//
// *************************************
// ** Procedure para montar relatório **
// *************************************
Function Montar_Relatorio_Csg() {
   Global $Dados_Empresa, $sData_Trabalho, $sPulaLinha, $R_CadFuncionario;
   Global $sFil_DataIni, $sFil_DataFim, $nFil_TipoRel, $nFil_CodgCli, $sSQL_Where;
   $dFil_DataIni = ConvertDataSTR( ConvertDataBRUS($sFil_DataIni) );
   $dFil_DataFim = ConvertDataSTR( ConvertDataBRUS($sFil_DataFim) );
   $sTxt_Rel = "";
   $sCsv_Rel = "";
   //
   // Cicero 14/02/18
   $sSQL_Where .= ' AND LENGTH(FAT_CANITEM)=0';
   //
   If ($dFil_DataIni>0) {
      $sSQL_Where .= ' AND (FAT_DATAINI>="'.DATE('Y-m-d',$dFil_DataIni).'")';    // Comparando (Inicial)
   }
   If ($dFil_DataFim>0) {
      $sSQL_Where .= ' AND (FAT_DATAINI<="'.DATE('Y-m-d',$dFil_DataFim).'")';    // Comparando (Final)
   }
   If ( $nFil_CodgCli>0 ) {
      $sSQL_Where .= ' AND (FAT_CLIENTE='.$nFil_CodgCli.')';                     // Filtro de cliente
   }
   //
   $sTxt_Rel .=    // Cabeçalho do relatório
     $sPulaLinha.
     AlinhaStr('Empresa.....: '.$Dados_Empresa['EMP_FANTAS'],0,80).$sPulaLinha.
     AlinhaStr('Relatorio...: VENDAS DE '.STRTOUPPER($sTipoConsignado).' (RECEBIDAS)',0,80).$sPulaLinha.
     AlinhaStr('Emissao.....: '.DATE('d/m/Y H:i:s'),0,40).
     AlinhaStr('Operador....: '.$R_CadFuncionario->FUN_NOMECP,2,80).$sPulaLinha.
     ( ($dFil_DataIni==0 && $dFil_DataFim==0) ? "" :
     'Período.....: '.
       ( $dFil_DataIni>0 ?
        DATE("d/m/Y",$dFil_DataIni).' '
       :
        "Até "
       ).
       ( $dFil_DataFim>0 ?
        DATE("d/m/Y",$dFil_DataFim)
       :
        ""
       ).
     $sPulaLinha).
     'Tipo........: '.
     ( $nFil_TipoRel == 0 ? "Sintético" : "").
     ( $nFil_TipoRel == 1 ? "Analítico" : "").
     $sPulaLinha.
     STR_REPEAT("=",120).
     "";
   //
   $sCsv_Rel .=    // Cabeçalho do relatório CSV
     ';VENDAS DE CONSIGNAÇÕES (RECEBIDAS);'.
     ( $dFil_DataIni>0 ?
      DATE("d/m/Y",$dFil_DataIni).' '
     :
      "Até "
     ).
     ( $dFil_DataFim>0 ?
      DATE("d/m/Y",$dFil_DataFim)
     :
      ""
     ).
     ";".
     $sPulaLinha;
   //
   If ( $nFil_TipoRel==0 ) {         // ** Relatório Sintético **
      $sSQL_Query =
        "SELECT ".
          "ite.ITE_CODIGOI, ite.ITE_CODIGOL, ite.ITE_DESCRIC, SUM(fti.FAT_PRE_TOT) AS FTI_VALOR_T,".
          "SUM(fti.FAT_QTD_ITE) AS FTI_TOTAL_Q, SUM(fti.FAT_QTDSOBRA) AS FTI_TOTAL_S,".
          "ftg.FAT_CODIGOI AS FTG_CODIGOI, ftg.FAT_VALDESC AS FTG_VALOR_D,".
          "cli.CLI_CODIGOI, cli.CLI_NOMECP ".
        "FROM fat_item          AS fti ".
        "LEFT JOIN fat_geral    AS ftg  ON  ftg.FAT_CODIGOI=fti.FAT_CFATGER ".
        "LEFT JOIN cad_cliente  AS cli  ON  cli.CLI_CODIGOI=ftg.FAT_CLIENTE ".
        "LEFT JOIN cad_produto  AS ite  ON  ite.ITE_CODIGOI=fti.FAT_CODITE1 ".
        "WHERE ".$sSQL_Where." ".
        "GROUP BY fti.FAT_CODITE1, cli.CLI_CODIGOI ".
        "ORDER BY cli.CLI_NOMECP, ftg.FAT_CODIGOI, ite.ITE_DESCRIC  ASC".  // Não tirar o campo "FAT_CODIGOI" daqui, senão vai somar o Total das DESPESAS Errado !!
        ";";
      //
      $Rows = MYSQL_QUERY($sSQL_Query) or die(MYSQL_ERROR().'<br>'.$sSQL_Query);
      $nTotal_Rows = MYSQL_NUM_ROWS($Rows);
      $aReg_Totais = ARRAY();
      If ( $nTotal_Rows==0 ) {
         $sTxt_Rel .=
            $sPulaLinha.
            $sPulaLinha.
            AlinhaStr("** NÃO HÁ MOVIMENTO **",1,120).
            $sPulaLinha.
            "";
        //
      } Else {
        //
        $nAtual_CodCli = 0;
        $nAtual_CodFtg = 0;
        $nContar_Row = 0;
        $nG_Fti_Saida_Q = 0;
        $nG_Fti_Saida_V = 0;
        $nG_Fti_Sobra_Q = 0;
        $nG_Ftg_Valor_D = 0;
        $nG_Fti_Sobra_V = 0;
        $nG_Fti_Total_Q = 0;
        $nG_Fti_Total_V = 0;
        $aRows = ARRAY();
        While ( $Row = MYSQL_FETCH_ARRAY($Rows,MYSQL_ASSOC) ) {
           $aRows[] = $Row;
        }
        ForEach ( $aRows AS $Row ) {
           $nContar_Row++;
           $nCli_CodigoI = $Row['CLI_CODIGOI']+0;
           //
           If ( $nAtual_CodCli<>$nCli_CodigoI ) {        // Cabeçalho de cada cliente
              $sTxt_Rel .=
                $sPulaLinha.
                $sPulaLinha.
                "Cliente: ".Str_Zero($Row['CLI_CODIGOI'],8)." - ".$Row['CLI_NOMECP'].
                $sPulaLinha.
                STR_REPEAT("-",120).
                $sPulaLinha.
               //         1         2         3         4         5         6         7         8         9        10         1         2
               //123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
                "| Produto                              | Saida Qtd |  Valor Saida | Sobra Qtd | Valor Sobra | Total Qtd |  Valor total |".
                "";
              //
              $sCsv_Rel .=
                 $sPulaLinha.
                 ";Cliente:;".Str_Zero($Row['CLI_CODIGOI'],8)." - ".$Row['CLI_NOMECP'].
                 $sPulaLinha.
                 'Produto;Saida Qtd;Saida Valor;Sobra Qtd;Valor Sobra;Total Qtd;Valor total;'.
                 $sPulaLinha;
              //
              $nAtual_CodCli = $nCli_CodigoI;
           }
           //                                               Linha de cada item produto
           $nIte_Pre_Uni = ROUND($Row['FTI_VALOR_T'] / $Row['FTI_TOTAL_Q'],2);
           $nFti_Sobra_V = FormatoMoeda($Row['FTI_TOTAL_S']*$nIte_Pre_Uni);
           $nCli_CodigoI = $Row['CLI_CODIGOI']+0;
           $aReg_Totais[$nCli_CodigoI]['SAIDA_Q'] = @$aReg_Totais[$nCli_CodigoI]['SAIDA_Q'] + @$Row['FTI_TOTAL_Q'];
           $aReg_Totais[$nCli_CodigoI]['SAIDA_V'] = @$aReg_Totais[$nCli_CodigoI]['SAIDA_V'] + @$Row['FTI_VALOR_T'];
           $aReg_Totais[$nCli_CodigoI]['SOBRA_Q'] = @$aReg_Totais[$nCli_CodigoI]['SOBRA_Q'] + @$Row['FTI_TOTAL_S'];
           $aReg_Totais[$nCli_CodigoI]['SOBRA_V'] = @$aReg_Totais[$nCli_CodigoI]['SOBRA_V'] + $nFti_Sobra_V;
           //
           // Acumula o valor do DESCONTO das ENTREGAS		   
		   // 
           If ( $nAtual_CodFtg<>@$Row['FTG_CODIGOI'] ) {
              $aReg_Totais[$nCli_CodigoI]['DESCO_V'] = @$aReg_Totais[$nCli_CodigoI]['DESCO_V'] + @$Row['FTG_VALOR_D'];
              $nAtual_CodFtg = @$Row['FTG_CODIGOI'];
           }
           $sTxt_Rel .=
             $sPulaLinha.
             "|".
             " ".AlinhaStr( Str_Zero($Row['ITE_CODIGOL'],4)." - ".$Row['ITE_DESCRIC'] , 0, 36)." ".
             "|".
             " ".AlinhaStr( $Row['FTI_TOTAL_Q']+0 , 2, 9)." ".
             "|".
             " R$ ".AlinhaStr( FormatoMoeda($Row['FTI_VALOR_T']) , 2, 9)." ".
             "|".
             " ".AlinhaStr( $Row['FTI_TOTAL_S']+0 , 2, 9)." ".
             "|".
             " R$ ".AlinhaStr( FormatoMoeda($Row['FTI_TOTAL_S']*$nIte_Pre_Uni) , 2, 8)." ".
             "|".
             " ".AlinhaStr( $Row['FTI_TOTAL_Q']-$Row['FTI_TOTAL_S'] , 2, 9)." ".
             "|".
             " R$ ".AlinhaStr( FormatoMoeda( $Row['FTI_VALOR_T']-($Row['FTI_TOTAL_S']*$nIte_Pre_Uni) ) , 2, 9)." ".
             "|";
           //
           $sCsv_Rel .=
             Str_Zero($Row['ITE_CODIGOL'],4)." - ".$Row['ITE_DESCRIC'].
             ';'.
             ($Row['FTI_TOTAL_Q']+0).
             ';'.
             'R$ '.FormatoMoeda($Row['FTI_VALOR_T']).
             ';'.
             ($Row['FTI_TOTAL_S']+0).
             ';'.
             'R$ '.FormatoMoeda($Row['FTI_TOTAL_S']*$nIte_Pre_Uni).
             ';'.
             ($Row['FTI_TOTAL_Q']-$Row['FTI_TOTAL_S']).
             ';'.
             'R$ '.FormatoMoeda( $Row['FTI_VALOR_T']-($Row['FTI_TOTAL_S']*$nIte_Pre_Uni) ).
             ';'.
             $sPulaLinha;
           //
           //                                               Rodapé de cada cliente
           If ( $nTotal_Rows==$nContar_Row OR $nCli_CodigoI<>(@$aRows[$nContar_Row]['CLI_CODIGOI']+0) ) {
              $nFti_Saida_Q = @$aReg_Totais[$nAtual_CodCli]['SAIDA_Q']+0;
              $nFti_Saida_V = @$aReg_Totais[$nAtual_CodCli]['SAIDA_V']+0;
              $nFti_Sobra_Q = @$aReg_Totais[$nAtual_CodCli]['SOBRA_Q']+0;
              $nFti_Sobra_V = @$aReg_Totais[$nAtual_CodCli]['SOBRA_V']+0;
              $nFtg_Valor_D = @$aReg_Totais[$nAtual_CodCli]['DESCO_V'] - $nFti_Sobra_V;
              $nIte_Pre_Uni = ROUND($nFti_Saida_V / $nFti_Saida_Q,2);
              $nFti_Total_Q = $nFti_Saida_Q - $nFti_Sobra_Q;
              $nFti_Total_V = $nFti_Saida_V - $nFti_Sobra_V;
              $nG_Fti_Saida_Q += $nFti_Saida_Q;
              $nG_Fti_Saida_V += $nFti_Saida_V;
              $nG_Fti_Sobra_Q += $nFti_Sobra_Q;
              $nG_Ftg_Valor_D += $nFtg_Valor_D;
              $nG_Fti_Sobra_V += $nFti_Sobra_V;
              $nG_Fti_Total_Q += $nFti_Total_Q;
              $nG_Fti_Total_V += $nFti_Total_V;
              $sTxt_Rel .=
                $sPulaLinha.
                STR_REPEAT("-",120).
                $sPulaLinha.
                "|".
                " ".AlinhaStr( "-- Total do cliente --" , 0, 36)." ".
                "|".
                " ".AlinhaStr( $nFti_Saida_Q , 2, 9)." ".
                "|".
                " R$ ".AlinhaStr( FormatoMoeda($nFti_Saida_V) , 2, 9)." ".
                "|".
                " ".AlinhaStr( $nFti_Sobra_Q , 2, 9)." ".
                "|".
                " R$ ".AlinhaStr( FormatoMoeda($nFti_Sobra_V) , 2, 8)." ".
                "|".
                " ".AlinhaStr( $nFti_Total_Q , 2, 9)." ".
                "|".
                " R$ ".AlinhaStr( FormatoMoeda($nFti_Total_V) , 2, 9)." ".
                "|".
                $sPulaLinha.
                STR_REPEAT("=",120).
                $sPulaLinha.
                "| ".
                AlinhaStr( "TOTAL BRUTO: R$ ".FormatoMoeda($nFti_Total_V) , 2, 37).
                "|".
                AlinhaStr( "DESPESAS: R$ ".FormatoMoeda($nFtg_Valor_D) , 2, 37).
                " |".
                AlinhaStr( "TOTAL LIQUIDO: R$ ".FormatoMoeda($nFti_Total_V-$nFtg_Valor_D) , 2, 39).
                " |".
                $sPulaLinha.
                STR_REPEAT("=",120).
                $sPulaLinha.
                "";
              //
              $sCsv_Rel .=
                '* Total do cliente *'.
                ';'.
                $nFti_Saida_Q.
                ';'.
                'R$ '.FormatoMoeda($nFti_Saida_V).
                ';'.
                $nFti_Sobra_Q.
                ';'.
                'R$ '.FormatoMoeda($nFti_Sobra_V).
                ';'.
                $nFti_Total_Q.
                ';'.
                'R$ '.FormatoMoeda( $nFti_Total_V ).
                ';'.
                $sPulaLinha.
                'TOTAL BRUTO:;'  .'R$ '.FormatoMoeda( $nFti_Total_V ).';'.
                $sPulaLinha.
                'DESPESAS:;'     .'R$ '.FormatoMoeda( $nFtg_Valor_D ).';'.
                $sPulaLinha.
                'TOTAL LIQUIDO:;'.'R$ '.FormatoMoeda( $nFti_Total_V-$nFtg_Valor_D ).';'.
                $sPulaLinha;
              //
           }
           $nAtual_CodCli = $nCli_CodigoI;
           //
        }
        //  Rodapé do total geral do relatório
        $sTxt_Rel .=
          $sPulaLinha.
          $sPulaLinha.
          $sPulaLinha.
          STR_REPEAT("=",120).
          $sPulaLinha.
          "|".
          " ".AlinhaStr( "-- TOTAL GERAL DO RELATÓRIO --" , 0, 36)." ".
          "|".
          " ".AlinhaStr( $nG_Fti_Saida_Q , 2, 9)." ".
          "|".
          " R$ ".AlinhaStr( FormatoMoeda($nG_Fti_Saida_V) , 2, 9)." ".
          "|".
          " ".AlinhaStr( $nG_Fti_Sobra_Q , 2, 9)." ".
          "|".
          " R$ ".AlinhaStr( FormatoMoeda($nG_Fti_Sobra_V) , 2, 8)." ".
          "|".
          " ".AlinhaStr( $nG_Fti_Total_Q , 2, 9)." ".
          "|".
          " R$ ".AlinhaStr( FormatoMoeda($nG_Fti_Total_V) , 2, 9)." ".
          "|".
          $sPulaLinha.
          STR_REPEAT("=",120).
          $sPulaLinha.
          "| ".
          AlinhaStr( "TOTAL BRUTO: R$ ".FormatoMoeda($nG_Fti_Total_V) , 2, 37).
          "|".
          AlinhaStr( "DESPESAS: R$ ".FormatoMoeda($nG_Ftg_Valor_D) , 2, 37).
          " |".
          AlinhaStr( "TOTAL LIQUIDO: R$ ".FormatoMoeda($nG_Fti_Total_V-$nG_Ftg_Valor_D) , 2, 39).
          " |".
          $sPulaLinha.
          STR_REPEAT("=",120).
          $sPulaLinha.
          $sPulaLinha.
          $sPulaLinha.
          "";
        //
        $sCsv_Rel .=
          $sPulaLinha.
          $sPulaLinha.
          ';Saida Qtd;Saida Valor;Sobra Qtd;Valor Sobra;Total Qtd;Valor total;'.
          $sPulaLinha.
          '* Total geral do relatório *'.
          ';'.
          $nG_Fti_Saida_Q.
          ';'.
          'R$ '.FormatoMoeda($nG_Fti_Saida_V).
          ';'.
          $nG_Fti_Sobra_Q.
          ';'.
          'R$ '.FormatoMoeda($nG_Fti_Sobra_V).
          ';'.
          $nG_Fti_Total_Q.
          ';'.
          'R$ '.FormatoMoeda( $nG_Fti_Total_V ).
          ';'.
          $sPulaLinha.
          'TOTAL BRUTO:;'  .'R$ '.FormatoMoeda( $nG_Fti_Total_V ).';'.
          $sPulaLinha.
          'DESPESAS:;'     .'R$ '.FormatoMoeda( $nG_Ftg_Valor_D ).';'.
          $sPulaLinha.
          'TOTAL LIQUIDO:;'.'R$ '.FormatoMoeda( $nG_Fti_Total_V-$nG_Ftg_Valor_D ).';'.
          $sPulaLinha;
        //
      }
      //
   } Else If ( $nFil_TipoRel==1 ) {  // ** Relatório Analítico **
      //
      //$sSQL_Query =
      //  "SELECT ".
      //    "ite.ITE_CODIGOI, ite.ITE_CODIGOL, ite.ITE_DESCRIC, SUM(fti.FAT_PRE_TOT) AS FTI_VALOR_T,".
      //    "SUM(fti.FAT_QTD_ITE) AS FTI_TOTAL_Q, SUM(fti.FAT_QTDSOBRA) AS FTI_TOTAL_S,".
      //    "SUM(ftg.FAT_DESCONT) AS FTI_VALOR_D,".
      //    "cli.CLI_CODIGOI, cli.CLI_NOMECP ".
      //  "FROM fat_item          AS fti ".
      //  "LEFT JOIN fat_geral    AS ftg  ON  ftg.FAT_CODIGOI=fti.FAT_CFATGER ".
      //  "LEFT JOIN cad_cliente  AS cli  ON  cli.CLI_CODIGOI=ftg.FAT_CLIENTE ".
      //  "LEFT JOIN cad_produto  AS ite  ON  ite.ITE_CODIGOI=fti.FAT_CODITE1 ".
      //  "WHERE ".$sSQL_Where." ".
      //  "GROUP BY fti.FAT_CODITE1 ".
      //  "ORDER BY cli.CLI_NOMECP ASC, ite.ITE_DESCRIC ".
      //  ";";
      //$Rows = MYSQL_QUERY($sSQL_Query) or die(MYSQL_ERROR().'<br>'.$sSQL_Query);
      //$nTotal_Rows = MYSQL_NUM_ROWS($Rows);
      //$aReg_Totais = ARRAY();
      //If ( $nTotal_Rows==0 ) {
      //   $sTxt_Rel .=
      //      $sPulaLinha.
      //      $sPulaLinha.
      //      AlinhaStr("** NÃO HÁ MOVIMENTO **",1,120).
      //      $sPulaLinha.
      //      "";
      //   //
      //} Else {
      //   //
      //   //
      //}
      //
   }
   //
   //
   Return ARRAY( $sTxt_Rel, $sCsv_Rel );
}
//
//
?>