<?php
$bDir_Consult = CondPrivilegio(@$s_DireitosLst, $sNomeAcesso, 'C');   // Consulta básica
$sNomeIdJPrin = "iJan_RelCfe_P";
$sNomeIdJan_2 = "iJan_RelCfe_T";
$sCorBarraInf = '#E8E3CE';
$sEmpresaFan = SQLVarConfig('EMPRESA_NOME_FANTASIA');
$sPulaLinha = CHR(13).CHR(10);
//
//  ** PRINCIPAL **
If ( EMPTY($sSubModulo) ) {
   // Criar objeto Janela
   $oJan = New R_Janela();
   $oJan->sIdObj  = $sNomeIdJPrin;
   $oJan->nTop    = 80;
   $oJan->nLeft   = 0;
   $oJan->nHeight = 0;     // Altura
   $oJan->nWidth  = 500;   // Largura
   $oJan->nLeft  += ($nTela_W/2)-($oJan->nWidth/2);
   $oJan->sTitulo = 'Consulta de cupons fiscais';
   $oJan->sJavKeyDown = "return Car_".$sNomeAcesso."1.Teclas_F(this,event);";
   //
   $sJavaTravarJ = "parent.document.getElementById('".$oJan->sIdObj."_Travar').style.visibility='visible'; parent.Disabled_In_Elems('".$oJan->sIdObj."',true);";
   $oJan->sJavOnClickF = 
       $sJavaTravarJ.
   	   "parent.document.forms.fmRel_Cfe.acao.value='FECHAR'; ".
   	   "parent.document.forms.fmRel_Cfe.submod.value=''; ".
   	   "parent.document.forms.fmRel_Cfe.submit();".
   	   "";
   //
   // >> Inicial
   If ( EMPTY($sAcao) ) {
      //
      $oJan->aIdsObjList = ARRAY();
      //
      $sRet_TelaJ_HTML =
         $oJan->MontaJanHTML(True).
         '<form name="fmRel_Cfe" 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.'">'.
	     '<div style="height:6px;"></div>'.
		 '<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_RelCfe_DatIni';".'" src="images/bimg_calendario.png" border="0" id="bt_RelCfe_DatIni" style="cursor:pointer;"></td>'.
		     '<td width="77px">'.
		      '<input id="in_RelCfe_DatIni" name="Fil_DataIni" type="text" maxlength="10" value="'.DATE("d/m/Y").'" style="font-size:12px; width:99%;">'.
		     '</td>'.
		     '<td align="center" width="10px">'.
		      '-'.
		     '</td>'.
		     '<td width="28px" align="center"><img onclick="'."sIdHasFocus='in_RelCfe_DatFim';".'" src="images/bimg_calendario.png" border="0" id="bt_RelCfe_DatFim" style="cursor:pointer;"></td>'.
		     '<td width="77px">'.
		      '<input id="in_RelCfe_DatFim" name="Fil_DataFim" type="text" maxlength="10" value="'.DATE("d/m/Y").'" style="font-size:12px; width:99%;">'.
		     '</td>'.
		    '</tr></table>'.
           '</td>'.
           '<td width="4px" height="20px">&nbsp;</td>'.
		  '</tr>'.
		  //
		  '<tr>'.
		   '<td></td>'.
		   '<td align="right">'.
		    'Relatório:'.
		   '</td>'.
           '<td align="left">'.
            '<select id="sl_RelCfe_ModoRel" name="Cfe_ModoRel"  style="width:96%; font-size:11px; font-family:Courier New,Courier,mono;">'.
             '<option value="0">Sintético</option>'.
             '<option value="1">Analítico</option>'.
		    '</select>'.
		   '</td>'.
		   '<td></td>'.
		  '</tr>'.
		  //
		  //
		  '<tr>'.
		   '<td></td>'.
		   '<td align="right">'.
		    'Opção:'.
		   '</td>'.
           '<td align="left">'.
            '<select id="sl_RelCfe_Opcao" name="Cfe_Opcao"  style="width:96%; font-size:11px; font-family:Courier New,Courier,mono;">'.
             '<option value="0">Cupom Fiscal</option>'.
             '<option value="1">Nota Fiscal Eletrônica</option>'.
             '<option value="2">Nota Fiscal Consumidor</option>'.
			 '<option value="9" selected>Todos</option>'.
		    '</select>'.
		   '</td>'.
		   '<td></td>'.
		  '</tr>'.
		  //
		  '<tr>'.
		   '<td></td>'.
		   '<td align="right">'.
		    'Estado:'.
		   '</td>'.
           '<td align="left">'.
            '<select id="sl_RelCfe_Estado" name="Cfe_Est"  style="width:96%; font-size:11px; font-family:Courier New,Courier,mono;">'.
             '<option value="0">Emitidas e canceladas</option>'.
             '<option value="1">Somente as não canceladas</option>'.
             '<option value="2">Somente as canceladas</option>'.
		    '</select>'.
		   '</td>'.
		   '<td></td>'.
		  '</tr>'.
		  //
		  '<tr>'.
		     '<td></td>'.
		     '<td align="right">'.
		        'Tipo:'.
		     '</td>'.
             '<td align="left">'.
                '<select id="sl_RelCfe_OpcaoR" name="Cfe_OpcaoR"  style="width:96%; font-size:11px; font-family:Courier New,Courier,mono;">'.
                   '<option value="0">Movimento Fiscal</option>'.
                   '<option value="1">Resumo de Vendas por CFOP (80 colunas)</option>'.
			    '</select>'.
		     '</td>'.
		     '<td></td>'.
		  '</tr>'.
		  '</table>'.
	     '<div style="height:6px;"></div>'.
         '</form>'.
         //
         '<table width="100%" style="background-color:'.$sCorBarraInf.';">'.
		  '</tr>'.
           '<td width="4px" height="40px">&nbsp;</td>'.
           '<td align="left">'.
            HTML_Botao( 3, 'objRelCfe_BT_Abr',
                                               "var vff = document.forms.fmRel_Cfe;".
                                               "vff.acao.value=''; ".
                                               "vff.submod.value='RELATORIO'; ".
                                               "vff.submit();".
                                               $sJavaTravarJ
                         , 'Visualizar (F8)' ,'images/btimg_docs.png',120).		    
           '</td>'.
           '<td align="right">'.
            HTML_Botao( 3, 'objRelCfe_BT_Fch', $oJan->sJavOnClickF
                         , 'Sair (ESC)' ,'images/btimg_fechar.png').		    
           '</td>'.
           '<td width="4px">&nbsp;</td>'.
          '</tr>'.
		 '</table>'.		   
         //
         $oJan->MontaJanHTML(False);
      //
      // Java inicial
      $sRet_Javs .=
        'parent.document.getElementById("dv_MenuL_Barra").style.visibility="hidden";'.
 	    "";
      // Java posterior
      $sRet_JavsPos .=
	    "var FmH = parent.document.forms['fmRel_Cfe'];".
		// teclas da janela
		"function Teclas_F( Objeto, Evento ) {".
           "vNumTecla = parent.Tecla_Apertada(Evento);".
		   "if ( vNumTecla==116) { ".           //  ** [F5] **       Não atualizar
		       //
           "} else if ( vNumTecla==119) { ".     // ** [F8] **
              "if (parent.document.getElementById('objRelCfe_BT_Abr').style.display!='none') {".           // (Visualizar)
                 "setTimeout( parent.document.getElementById('objRelCfe_BT_Abr').onclick , 10);".
         	  "}".
			  //
           "} else if ( vNumTecla==13) { ".
              "sTempId = parent.Proximo_TabObj(parent.document.getElementById('".$oJan->sIdObj."'),parent.sIdHasFocus);".
              "if ( sTempId.length>0 ) {".
           	     "parent.document.getElementById(sTempId).focus();".
           	  "} else {".
                 'parent.document.getElementById("in_RelCfe_DatIni").focus();'.
              "}".
			  //
		   "} else if ( vNumTecla==27) { ".     //  ** [ESC] **      (SAIR)
              "setTimeout( function () { ".$oJan->sJavOnClickF." } , 1);".
			  //
		   "} else {".
		      "return true;".
		   "}".
		   "return false;".
		"}".
		"function Atualiza() {".
		     "var vff = parent.document.forms.fmRel_Cfe;".
			 "stmp = vff.target;".
			 "vff.target='car_".$sNomeAcesso."5';".
	         "vff.acao.value='MONTAR'; ".
	         "vff.submod.value=''; ".
             "vff.submit(); ".
			 "vff.target = stmp;".
   	      "}".
		  "Atualiza(); ".
		//
        'parent.Calendar.setup({ '.
          'inputField : "in_RelCfe_DatIni", '.
          'trigger    : "bt_RelCfe_DatIni", '.
          'onSelect   : function() { this.hide(); parent.sIdHasFocus=""; Atualiza(); }, '.
          'showTime   : 0, '.
          'dateFormat : "%d/%m/%Y" '.
        '});'.
        'parent.Calendar.setup({ '.
          'inputField : "in_RelCfe_DatFim", '.
          'trigger    : "bt_RelCfe_DatFim", '.
          'onSelect   : function() { this.hide(); parent.sIdHasFocus=""; Atualiza(); }, '.
          'showTime   : 0, '.
          'dateFormat : "%d/%m/%Y" '.
        '});'.
		//
	    "parent.document.getElementById('in_RelCfe_DatIni').focus(); ".
		"";
   //
   // >> Fechar janela
   } ElseIf ( $sAcao=="FECHAR" ) {
      //
      $sRet_Javs .=
         "parent.document.getElementById('dv_MenuL_Barra').style.visibility='visible';".
         "parent.RmElem('".$oJan->sIdObj."');";
   }
   //
//
//  ** TELA QUE MONTA O RELATÓRIO **
//
} ElseIf ( $sSubModulo=="RELATORIO" ) {
   // Criar objeto Janela
   $oJan = New R_Janela();
   $oJan->sIdObj  = $sNomeIdJan_2; 
   $oJan->nTop    = 2;
   $oJan->nLeft   = 5;
   $oJan->nWidth  = 750;   // Largura
   $oJan->nHeight = 0;     // Altura
   $oJan->nLeft   += ($nTela_W/2)-($oJan->nWidth/2);
   $oJan->sTitulo = 'Relatório';
   $oJan->sJavOnClick  = "document.getElementById('in_RelCfeR_Tecla').focus();";
   //
   $sJavaTravarJ = "parent.document.getElementById('".$oJan->sIdObj."_Travar').style.visibility='visible'; ";
   $oJan->sJavOnClickF =
       $sJavaTravarJ.
       "parent.document.forms.fmPRelCfe_R.acao.value='FECHAR'; ".
       "parent.document.forms.fmPRelCfe_R.submit();";
   //
   $aV_Sessao = @$aSessao[$sNomeAcesso.'_S'];
   // >> Inicial
   If ( EMPTY($sAcao) ) {
	  //
	  $aV_Sessao = ARRAY();
	  $aV_Sessao['Fil_DataIni'] = @$_POST['Fil_DataIni'];          // Data inicial
	  $aV_Sessao['Fil_DataFim'] = @$_POST['Fil_DataFim'];          // Data Final
	  $aV_Sessao['Cfe_ModoRel'] = @$_POST['Cfe_ModoRel']+0;        // Relatório: 0-Sintético   , 1-Analítico
	  $aV_Sessao['Cfe_Opcao']   = @$_POST['Cfe_Opcao']+0;          // Opcao....: 0-Cupom Fiscal, 1-Nota Fiscal 
	  $aV_Sessao['Cfe_EstadoE'] = @$_POST['Cfe_Est']+0;            // Estado da Cfe
	  $aV_Sessao['Cfe_OpcaoR']  = @$_POST['Cfe_OpcaoR']+0;         // 0-Movimento Fiscal 1-Resumo de Vendas por CFOP 
	  $aSessao[$sNomeAcesso.'_S'] = $aV_Sessao;
	  //
	  $oJan->sJavKeyDown = "return Car_".$sNomeAcesso."2.Teclas_F(this,event);";	   
	  //
      // Tela HTML
      $sRet_TelaJ_HTML =
        $oJan->MontaJanHTML(True).
	    // Teclas
	    '<input id="in_RelCfeR_Tecla" style="position:absolute; top:-100; left:-100; width:1px; height:1px;">'.
	    //
		'<iframe name="VisCfeR_Print"></iframe>'.
        '<form name="fmPRelCfe_R" accept-charset="utf-8" method="post" action="./car_js.php" target="car_'.$sNomeAcesso.'3">'.
          '<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_RelCfeR_Txt" style="width:100%; height:400px; 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>'.
          ( $aV_Sessao['Cfe_OpcaoR'] == 0 ?
		     '<td width="150px" align="left">'.
              HTML_Botao( 3, 'objRelCfeR_BT_Abr',
	  	                                    "parent.JanEspera(true, 'Imprimindo relatório... aguarde...');".
	  										"setTimeout( function () { ".
	                                           "document.forms.fmPRelCfe_R.acao.value='IMP'; ".
                                               "document.forms.fmPRelCfe_R.submit();".
	  										"}, 500);"
                           , 'Imprimir (F7)'   ,'images/btimg_imp.png',120).		    
	         '</td>'
          :
		     '<td width="150px" align="left">'.
                HTML_Botao( 3, 'objRelCfeR_BT_Pdf',  'Car_'.$sNomeAcesso.'2.processPrint();'
                             , 'Imprimir (F2)'   ,'images/btimg_imp.png',130).		    
		     '</td>'
		  ).
		  '<td align="left">'.
             HTML_Botao( 3, 'objRelCfeR_BT_Dwn',  'Car_'.$sNomeAcesso.'2.SalvarTexto();'
                          , 'Salvar (F9)'   ,'images/btimg_baixar_texto.png',100).		    
		  '</td>'.
		  '<td align="right">'.
           HTML_Botao( 3, 'objRelCfeR_BT_Fch', $oJan->sJavOnClickF
                        , 'Sair (ESC)' ,'images/btimg_fechar.png').		    
	      '</td>'.
          '<td width="4px">&nbsp;</td>'.
	     '</tr>'.
		'</table>'.
	    //
        $oJan->MontaJanHTML(False);
      //
	  // Java anterior
      $sRet_Javs .=
	    "function processPrint( ) {".
		  "var sdivElements = parent.document.getElementById('dv_RelCfeR_Txt').innerHTML;".
          "var Quadro = parent.frames['VisCfeR_Print'];".
          "Quadro.window.location='about:blank';". 
		  "Quadro.document.write('<html><head><title>Resumo de Vendas Por CFOP</title></head><body>');".
		  "Quadro.document.write(sdivElements);".
		  "Quadro.document.write('</body></html>');".
		  "Quadro.window.print();".
		"}".
		//
		"function SalvarTexto() {".
	      "parent.document.forms.fmPRelCfe_R.acao.value='GERAR_TEXTO';".
          "parent.document.forms.fmPRelCfe_R.submit();".
		"}".
		//
	    "function Teclas_F( Objeto, Evento ) {".
           "vNumTecla = parent.Tecla_Apertada(Evento);".
           "if ( vNumTecla==118) { ".        //  ** [F7] **          // (Imprimir)
              "setTimeout( parent.document.getElementById('objRelCfeR_BT_Abr').onclick , 50);".
		      //
	       "} else if ( vNumTecla==116) { ". // ** [F5] **     Não atualizar
	          //
		   "} else if ( vNumTecla==113) { ". //  ** [F2] **          // (PDF)
              "setTimeout( parent.document.getElementById('objRelCfeR_BT_Pdf').onclick , 50);".		  
		      //
		   "} else if ( vNumTecla==120) { ". //  ** [F9] **          // (Salvar em texto)
              "setTimeout( parent.document.getElementById('objRelCfeR_BT_Dwn').onclick , 50);".
		      //
	       "} else if ( vNumTecla==27) { ".  //  ** [ESC] **         // (SAIR)
              "setTimeout( parent.document.getElementById('objRelCfeR_BT_Fch').onclick , 50);".
		      //
	       "} else {".
	         "return true;".
	       "}".
	       "return false;".
        "}".
	    "";
      //
	  // Java posterior
      $sRet_JavsPos .=
	    "parent.document.getElementById('in_RelCfeR_Tecla').focus(); ".
	    "setTimeout( function () { ".
	      "parent.document.forms.fmPRelCfe_R.acao.value='MONTAR';".
          "parent.document.forms.fmPRelCfe_R.submit();".
		"} , 300); ".
        "";
	  //
   //
   // Montar relatório
   } ElseIf ( $sAcao=="MONTAR" ) {
      $d_Fil_DataIni = ConvertDataSTR( ConvertDataBRUS($aV_Sessao['Fil_DataIni'] ) );
      $d_Fil_DataFim = ConvertDataSTR( ConvertDataBRUS($aV_Sessao['Fil_DataFim'] ) );
      $n_Cfe_EstadoE = $aV_Sessao['Cfe_EstadoE']+0;
	  $n_Cfe_ModoRel = $aV_Sessao['Cfe_ModoRel']+0;
	  $n_Cfe_Opcao   = $aV_Sessao['Cfe_Opcao']+0;
	  $n_Cfe_OpcaoR  = $aV_Sessao['Cfe_OpcaoR']+0;
	  // Verificar erros
	  $sMsg_Erro = "";
	  If ( $d_Fil_DataIni==0 ) {
	     $sMsg_Erro = "A data inical é inválida";
	  } ElseIf ( $d_Fil_DataFim==0 ) {
	     $sMsg_Erro = "A data final é inválida";
	  } ElseIf ( $d_Fil_DataIni>$d_Fil_DataFim ) {
	     $sMsg_Erro = "A data inicial é maior que a data final.";
	  }
	  //
	  If ( EMPTY($sMsg_Erro) ) {
         $sSQLParm = '';
         // Filtro de data inicial e final
	     If ($d_Fil_DataIni>0) {
	        If (STRLEN($sSQLParm)>0) { $sSQLParm .= ' AND '; }
		    $sSQLParm .= '(FSC_DT_REAL>="'.DATE('Y-m-d',$d_Fil_DataIni).' 00:00:00")';                  // Comparando (Inicial)
	     }
	     If ($d_Fil_DataFim>0) {
	        If (STRLEN($sSQLParm)>0) { $sSQLParm .= ' AND '; }
		    $sSQLParm .= '(FSC_DT_REAL<="'.DATE('Y-m-d',$d_Fil_DataFim).' 23:59:00")';                  // Comparando (Final)
	     }
	     // 0-Cupom Fiscal, 1- Nota fiscal Eletrônica, 2-Nota fiscal consumidor, 9-Todos
		 If ( $n_Cfe_Opcao==0 ) {       // 
	        If (STRLEN($sSQLParm)>0) { $sSQLParm .= ' AND '; }
		    $sSQLParm .= "FSC_ESPDOC_=''";
	     } ElseIf ( $n_Cfe_Opcao==1 ) { // 
	        If (STRLEN($sSQLParm)>0) { $sSQLParm .= ' AND '; }
		    $sSQLParm .= "FSC_ESPDOC_='NE'";
	     } ElseIf ( $n_Cfe_Opcao==2 ) { // 
	        If (STRLEN($sSQLParm)>0) { $sSQLParm .= ' AND '; }
		    $sSQLParm .= "FSC_ESPDOC_='NC'";
	     }
		 
 
		 
		 
		 // Filtro de emitidos e cancelados
	     If ( $n_Cfe_EstadoE==1 ) {       // emitidos
	        If (STRLEN($sSQLParm)>0) { $sSQLParm .= ' AND '; }
		    $sSQLParm .= '( Length(FSC_CANCELA)=0 AND (FSC_STATUSNFE=0 OR FSC_STATUSNFE=1 ) )';
	     } ElseIf ( $n_Cfe_EstadoE==2 ) { // cancelados
	        If (STRLEN($sSQLParm)>0) { $sSQLParm .= ' AND '; }
		    $sSQLParm .= '( Length(FSC_CANCELA)>0  OR  FSC_STATUSNFE=2 OR FSC_STATUSNFE=3   )';
	     }
	     // Capturar dados do MySQL
         $aCfe_Lista = ARRAY();
	     If ( $n_Cfe_OpcaoR ==0 ) {
		    $sSQLRequest =
	           "SELECT * ".
		       "FROM fiscal_geral ".
		       "";
		 } Else {

//			      "sum(fiscal_item.FSI_PRE_TOT)- ".
//                  "sum(( fiscal_item.FSI_PRE_TOT * fiscal_geral.FSC_DESCONT ) / fiscal_geral.FSC_SBTOTAL ) + ".
//                  "sum(( fiscal_item.FSI_PRE_TOT * fiscal_geral.FSC_ACRESCI ) / fiscal_geral.FSC_SBTOTAL ) AS TOTAL_OPERACAO, ".

			$sSQLRequest =
			   "SELECT ".
                  "fiscal_geral.FSC_CANCELA, fiscal_geral.FSC_STATUSNFE,".
" SUM( fiscal_item.FSI_PRE_TOT ) - ".
" SUM( ( fiscal_item.FSI_PRE_TOT + ( ( fiscal_item.FSI_PRE_TOT * ( ( fiscal_geral.FSC_DESCONT * 100 )/ (fiscal_geral.FSC_SBTOTAL  - fiscal_geral.FSC_ACRESCI  + fiscal_geral.FSC_DESCONT ) ) ) / 100 ) ) ) +  ".
" SUM( ( fiscal_item.FSI_PRE_TOT + ( ( fiscal_item.FSI_PRE_TOT * ( ( fiscal_geral.FSC_ACRESCI * 100 )/ (fiscal_geral.FSC_SBTOTAL  - fiscal_geral.FSC_ACRESCI  + fiscal_geral.FSC_DESCONT ) ) ) / 100 ) ) ) ".
" AS TOTAL_OPERACAO, ".
				  
                  "fiscal_geral.FSC_CODIGOI, ".
				  "sum( fiscal_item.FSI_ICM_BAS ) AS BASICM, ".
                  "sum( fiscal_item.FSI_ICM_VAL ) AS VALICM, ".
                  "cad_tributacao.TRB_COD_CFO ".
			   "FROM fiscal_item ".
               "LEFT JOIN fiscal_geral   ON fiscal_geral.FSC_CODIGOI   = fiscal_item.FSI_CODFISC ".
               "LEFT JOIN cad_produto    ON fiscal_item.FSI_CODITEM    = cad_produto.ITE_CODIGOI ".
               "LEFT JOIN cad_tributacao ON cad_tributacao.TRB_CODIGOI = cad_produto.ITE_FISCAL_TRIB ".
			   "";
         }
		 $sSQLWhere =
		    ( EMPTY($sSQLParm)  ? "" : "WHERE ".$sSQLParm." " ).
            ( $n_Cfe_OpcaoR==1 ?
			  "GROUP BY cad_tributacao.TRB_COD_CFO ".
			  ($n_Cfe_EstadoE==0 ?
			  ", ( Length(FSC_CANCELA)>0 OR FSC_STATUSNFE=2 OR FSC_STATUSNFE=3 ) "
			  : "").
			  ""
			: "" ).
		    "ORDER BY FSC_DT_REAL ASC; ";
		 //
		 
//   $hInfoArq = FOPEN( 'LOG-Rel.txt','a');
//   FWRITE($hInfoArq,$sSQLRequest.$sSQLWhere);
//   FCLOSE($hInfoArq);		 		 
		 
	     $Rows_Temp = MYSQL_QUERY($sSQLRequest.$sSQLWhere) Or Die($sSQLRequest."<br>".MYSQL_ERROR());
	     $nSQLRegistros = 0;
		 $nPosicao      = 1;		 
	     While ( $Row_Temp = MYSQL_FETCH_ARRAY($Rows_Temp) ) {
	         $aCfe_Lista[ $nPosicao ] = $Row_Temp;
		     $nSQLRegistros++;
			 $nPosicao++;			 
	     }
		 If ($nSQLRegistros==0) {
	        $sMsg_Erro = "Não possui movimento fiscal para montar o relatório.";
		 }
	  }
	  // Descrição do período
	  If ( EMPTY($sMsg_Erro) ) {
	     $sPeriodo = '';
	     If ($d_Fil_DataIni==0 && $d_Fil_DataFim==0) {
	        $sPeriodo = '** TODOS **';
	     } ElseIf ($d_Fil_DataIni>0 && $d_Fil_DataFim==0) {
	        $sPeriodo = 'Apartir de '.$aV_Sessao['Fil_DataIni'];
	     } ElseIf ($d_Fil_DataIni==0 && $d_Fil_DataFim>0) {
	        $sPeriodo = 'Ate '.$aV_Sessao['Fil_DataFim'];
	     } Else {
	        $sPeriodo = $aV_Sessao['Fil_DataIni'].' ate '.$aV_Sessao['Fil_DataFim'];
	     }
	     If ( $n_Cfe_OpcaoR==0 ) {
			// Cabeçalho do relatório
            $sTxt_Rel =
               $sPulaLinha.
               //AlinhaStr($sEmpresaFan,1).$sPulaLinha.
               //AlinhaStr("** RELATORIO DE CUPONS FISCAIS **",1).$sPulaLinha.
               //'Emissao.: '.DATE('d/m/Y H:i:s').$sPulaLinha.
               //'Operador: '.SUBSTR(PegarPorPausa($R_CadFuncionario->FUN_NOMECP,3),0,30).$sPulaLinha.
               AlinhaStr('Empresa..: '.$Dados_Empresa['EMP_FANTAS'],0,40).$sPulaLinha.
			   AlinhaStr('Relatorio: CUPONS FISCAIS',0,40).$sPulaLinha.
			   AlinhaStr('Emissao..: '.DATE('d/m/Y H:i:s'),0,40).$sPulaLinha.
		       AlinhaStr('Operador.: '.$R_CadFuncionario->FUN_NOMECP,0,40).$sPulaLinha.
			 		     'Periodo.....: '.$sPeriodo.$sPulaLinha.
			   ($n_Cfe_ModoRel==0 ? ' * Relatório sintético'.$sPulaLinha : '').
			   ($n_Cfe_ModoRel==1 ? ' * Relatório analítico'.$sPulaLinha : '').
               ($n_Cfe_EstadoE==0 ? ' * Cupons fiscais emitidos e cancelados'.$sPulaLinha : '').
               ($n_Cfe_EstadoE==1 ? ' * Somente os cupons fiscais emitidos'.$sPulaLinha : '').
               ($n_Cfe_EstadoE==2 ? ' * Somente os cupons fiscais cancelados'.$sPulaLinha : '').
               STR_REPEAT("=",40).$sPulaLinha.
			   ( $n_Cfe_ModoRel==0 ?
			 //          1         2         3         4
			 // 1234567890123456789012345678901234567890
			   'Tip|Cupom |F| Emissor |  Hora  |   Valor'.$sPulaLinha
			   : "").
			   ( $n_Cfe_ModoRel==1 ?
			   'Tip|Cupom |F| Tomador CPF/CNPJ |  Hora'  .$sPulaLinha.
			   '      Bruto |Acrécimo |Desconto| Liquido'.$sPulaLinha.
			   '                Modalidades de pagamento'.$sPulaLinha
		   //   CFE|000000|E|00.000.000/0001-00|00:00:00
		   //       00000,00|000000,00|00000,00|00000,00
			   : "").
			   'Tip=ECF : Emissor de cupom fiscal'       .$sPulaLinha.
			   'Tip=CFE : Cupom fiscal eletrônico (SAT)' .$sPulaLinha.
			   'Tip=NE  : Nota fiscal eletrônica'        .$sPulaLinha.
			   'Tip=NC  : Nota fiscal consumidor'        .$sPulaLinha.
			   '  F=E   : Cupom/Nota emitido/não canc.'  .$sPulaLinha.
			   '  F=C   : Cupom/Nota cancelado(a)'       .$sPulaLinha.
	           '';
	        // Código em php para totalizações
	        $sPhp_Totaliza =
	           '$sTxt_Rel .= '.
			      'STR_REPEAT("-",40).$sPulaLinha.'.
			      '"Qtd   |Emit.: ".AlinhaStr($nBloco_C_E,2,9)." |Canc.: ".AlinhaStr($nBloco_C_C,2,8).$sPulaLinha.'.
				  ( $n_Cfe_ModoRel==1 ?
			      '"Bruto |Emit.: ".AlinhaStr(FormatoMoeda($nBloco_B_E),2,9)." |Canc.: ".AlinhaStr(FormatoMoeda($nBloco_B_C),2,8).$sPulaLinha.'.
			      '"Acrec.|Emit.: ".AlinhaStr(FormatoMoeda($nBloco_A_E),2,9)." |Canc.: ".AlinhaStr(FormatoMoeda($nBloco_A_C),2,8).$sPulaLinha.'.
			      '"Desc. |Emit.: ".AlinhaStr(FormatoMoeda($nBloco_D_E),2,9)." |Canc.: ".AlinhaStr(FormatoMoeda($nBloco_D_C),2,8).$sPulaLinha.'.
				  'STR_REPEAT("-",40).$sPulaLinha.'.
			      '"Total.......: ".AlinhaStr(FormatoMoeda($nBloco_V_E),2,9)." | ".AlinhaStr(FormatoMoeda($nBloco_V_C),2,14).$sPulaLinha.'
				  :
			      '"Valor |Emit.: ".AlinhaStr(FormatoMoeda($nBloco_V_E),2,9)." |Canc.: ".AlinhaStr(FormatoMoeda($nBloco_V_C),2,8).$sPulaLinha.'
				  ).
				  //( $n_Cfe_ModoRel==1 ?
			      //'"Pags. |Emit.: ".AlinhaStr(FormatoMoeda($nBloco_M_E),2,9)." |Canc.: ".AlinhaStr(FormatoMoeda($nBloco_M_C),2,8).$sPulaLinha.'
				  //: "").
			      'STR_REPEAT("-",40).$sPulaLinha;'.
			   '';
	        //
	        $s_GrupoData = "";
	        // Bloco por data, Total geral
	        $nBloco_C_E = 0;  $nTotal_C_E = 0;  // Quantidade de cupons emitidos
	        $nBloco_C_C = 0;  $nTotal_C_C = 0;  // Quantidade de cupons cancelados
			$nBloco_B_E = 0;  $nTotal_B_E = 0;  // Valor bruto de cupons emitidos
			$nBloco_B_C = 0;  $nTotal_B_C = 0;  // Valor bruto de cupons cancelados
			$nBloco_A_E = 0;  $nTotal_A_E = 0;  // Valor do acréscimo de cupons emitidos
			$nBloco_A_C = 0;  $nTotal_A_C = 0;  // Valor do acréscimo de cupons canceladas
			$nBloco_D_E = 0;  $nTotal_D_E = 0;  // Valor do desconto de cupons emitidos
			$nBloco_D_C = 0;  $nTotal_D_C = 0;  // Valor do desconto de cupons canceladas
	        $nBloco_V_E = 0;  $nTotal_V_E = 0;  // Valor de cupons emitidos
	        $nBloco_V_C = 0;  $nTotal_V_C = 0;  // Valor de cupons cancelados
	        $nBloco_M_E = 0;  $nTotal_M_E = 0;  // Valor das modalidade de pagamento dos emitidos
	        $nBloco_M_C = 0;  $nTotal_M_C = 0;  // Valor das modalidade de pagamento dos cancelados
			$aBloco_Mpg = ARRAY();              // Valor totalizado por bloco de cada modalidade
			$aTotal_Mpg = ARRAY();              // Valor totalizado geral de cada modalidade
	        // Montagem de relatório sintético
	        ForEach ( $aCfe_Lista As $aCfe_Dados ) {
	           $s_DataAtual = DATE("d/m/Y",ConvertDtHrSTR($aCfe_Dados['FSC_DT_REAL']));
			   // Mudança de data
	           If ( $s_GrupoData<>$s_DataAtual ) {
			      If ( !EMPTY($s_GrupoData) ) { EVAL($sPhp_Totaliza); }
			      $s_GrupoData = $s_DataAtual;
			      $sTxt_Rel .=
			         $sPulaLinha.
			         "Data: ".$s_GrupoData." ".
			   	     $sPulaLinha.
			   	     "";
				  //
				  $nBloco_C_E = 0;
				  $nBloco_C_C = 0;
				  $nBloco_B_E = 0;
				  $nBloco_B_C = 0;
				  $nBloco_A_E = 0;
				  $nBloco_A_C = 0;
				  $nBloco_D_E = 0;
				  $nBloco_D_C = 0;
				  $nBloco_V_E = 0;
				  $nBloco_V_C = 0;
				  $nBloco_M_E = 0;
				  $nBloco_M_C = 0;
				  $aBloco_Mpg = ARRAY();
				  //
			   }
			   //
			   If ( $n_Cfe_ModoRel==0 ) {  // Relatório sintético
	              $sTxt_Rel .=
			         //( $aCfe_Dados['FSC_COD_CFE']>0 && $aCfe_Dados['FSC_ESPDOC_']=='NE'  ? 
				     //  "NE " 
				     //: "" ).
				     //( $aCfe_Dados['FSC_COD_CFE']>0 && $aCfe_Dados['FSC_ESPDOC_']<>'NE'  ? 
				     //  "CFE" 
				     //: "" ).
				     //( $aCfe_Dados['FSC_COD_CFE']==0 && $aCfe_Dados['FSC_ESPDOC_']<>'NE'  ? 
				     //  "ECF" 
				     //: "" ).
					 Rel_Fsc_Especie($aCfe_Dados['FSC_ESPDOC_'], $aCfe_Dados['FSC_COD_CFE']).
				     "|".
					 ( $aCfe_Dados['FSC_NUMNOTA']>0 ?
				     Str_Zero($aCfe_Dados['FSC_NUMNOTA'],6)
					 :
				     Str_Zero($aCfe_Dados['FSC_COD_COO'],6)
					 ).
				     "|".
			         ( Rel_Fsc_Emt_Can($aCfe_Dados) ? "E" : "C").
				     "|".
			         AlinhaStr($aCfe_Dados['FSC_ECF_SER'],0,9).
				     "|".
			         SUBSTR($aCfe_Dados['FSC_DT_REAL'],11).
				     "|".
			         AlinhaStr(FormatoMoeda($aCfe_Dados['FSC_TOT_LIQ']),2,8).
			         $sPulaLinha.
			         "";
			   }
			   $n_Total_M_Pag = 0;
			   If ( $n_Cfe_ModoRel==1 ) {  // Relatório analítico
			      //
				  $s_HTML_Pgs = "";
				  $a_Mod_Pags = EXPLODE(";",$aCfe_Dados['FSC_REC_MOD']);
				  ForEach( $a_Mod_Pags As $s_Mod_Pag ) {
					 If ( EMPTY($s_Mod_Pag) ) { CONTINUE; }
					 $a_Mod_Pag = EXPLODE(",",$s_Mod_Pag);
					 If ( (@$a_Mod_Pag[0]+0)==0 Or EMPTY($a_Mod_Pag[1]) Or (@$a_Mod_Pag[2]+0)==0 ) { CONTINUE; }
				     $s_HTML_Pgs .=
					   AlinhaStr($a_Mod_Pag[1],2,25).
					   "  R$ ".
					   AlinhaStr(FormatoMoeda($a_Mod_Pag[2]),2,10).
					   $sPulaLinha.
					   "";
					 //
					 $n_Total_M_Pag += ($a_Mod_Pag[2]+0);
					 $aBloco_Mpg[($a_Mod_Pag[0]+0)][0] = $a_Mod_Pag[1];           // Descrição
					 $aTotal_Mpg[($a_Mod_Pag[0]+0)][0] = $a_Mod_Pag[1];
                     //
			         If ( Rel_Fsc_Emt_Can($aCfe_Dados) ) {
				        @$aBloco_Mpg[($a_Mod_Pag[0]+0)][1] += ($a_Mod_Pag[2]+0);  // Emitido
				        @$aTotal_Mpg[($a_Mod_Pag[0]+0)][1] += ($a_Mod_Pag[2]+0); 
					 } Else {
				        @$aBloco_Mpg[($a_Mod_Pag[0]+0)][2] += ($a_Mod_Pag[2]+0);  // Cancelado
				        @$aTotal_Mpg[($a_Mod_Pag[0]+0)][2] += ($a_Mod_Pag[2]+0); 
					 }
				  }
				  // Calcula Troco
				  If ( $aCfe_Dados['FSC_TOT_LIQ'] < $n_Total_M_Pag ) {
					 $a_Mod_Pag =
					   ARRAY(
					     99999,                                            // Código interno
					     "Troco",                                          // Descrição
						 ( $n_Total_M_Pag - $aCfe_Dados['FSC_TOT_LIQ'] )   // Valor
					   );
					 //
					 $aBloco_Mpg[($a_Mod_Pag[0]+0)][0] = $a_Mod_Pag[1];           // Descrição
					 $aTotal_Mpg[($a_Mod_Pag[0]+0)][0] = $a_Mod_Pag[1];
			         If ( Rel_Fsc_Emt_Can($aCfe_Dados) ) {
				        @$aBloco_Mpg[($a_Mod_Pag[0]+0)][1] += ($a_Mod_Pag[2]+0);  // Emitido
				        @$aTotal_Mpg[($a_Mod_Pag[0]+0)][1] += ($a_Mod_Pag[2]+0); 
					 } Else {
				        @$aBloco_Mpg[($a_Mod_Pag[0]+0)][2] += ($a_Mod_Pag[2]+0);  // Cancelado
				        @$aTotal_Mpg[($a_Mod_Pag[0]+0)][2] += ($a_Mod_Pag[2]+0); 
					 }
				     $s_HTML_Pgs .=
					   AlinhaStr($a_Mod_Pag[1],2,25).
					   "  R$ -".
					   AlinhaStr(FormatoMoeda($a_Mod_Pag[2]),2,9).
					   $sPulaLinha.
					   "";
				  }
			      //
	              $sTxt_Rel .=
			         //( $aCfe_Dados['FSC_COD_CFE']>0 && $aCfe_Dados['FSC_ESPDOC_']=='NE'  ? 
				     //  "NE " 
				     //: "" ).
				     //( $aCfe_Dados['FSC_COD_CFE']>0 && $aCfe_Dados['FSC_ESPDOC_']<>'NE'  ? 
				     //  "CFE" 
				     //: "" ).
				     //( $aCfe_Dados['FSC_COD_CFE']==0 && $aCfe_Dados['FSC_ESPDOC_']<>'NE'  ? 
				     //  "ECF" 
				     //: "" ).
					 Rel_Fsc_Especie($aCfe_Dados['FSC_ESPDOC_'], $aCfe_Dados['FSC_COD_CFE']).
				     "|".
					 ( $aCfe_Dados['FSC_NUMNOTA']>0 ?
				     Str_Zero($aCfe_Dados['FSC_NUMNOTA'],6)
					 :
				     Str_Zero($aCfe_Dados['FSC_COD_COO'],6)
					 ).
				     "|".
			         ( Rel_Fsc_Emt_Can($aCfe_Dados) ? "E" : "C").
				     "|".
			         AlinhaStr( FormatoCPFouCNPJ($aCfe_Dados['FSC_CPF_CLI']) ,2,18).
				     "|".
			         SUBSTR($aCfe_Dados['FSC_DT_REAL'],11).
			         $sPulaLinha.
			         AlinhaStr(FormatoMoeda($aCfe_Dados['FSC_SBTOTAL']),2,12).
				     "|".
			         AlinhaStr(FormatoMoeda($aCfe_Dados['FSC_ACRESCI']),2,9 ).
				     "|".
			         AlinhaStr(FormatoMoeda($aCfe_Dados['FSC_DESCONT']),2,8 ).
				     "|".
			         AlinhaStr(FormatoMoeda($aCfe_Dados['FSC_TOT_LIQ']),2,8 ).
			         $sPulaLinha.
					 $s_HTML_Pgs.
			         $sPulaLinha.
			         "";
			   }
			   // Calculo de totais
	           If ( Rel_Fsc_Emt_Can($aCfe_Dados) ) {
			      $nBloco_C_E++;
			      $nBloco_B_E += $aCfe_Dados['FSC_SBTOTAL'];
			      $nBloco_A_E += $aCfe_Dados['FSC_ACRESCI'];
			      $nBloco_D_E += $aCfe_Dados['FSC_DESCONT'];
			      $nBloco_V_E += $aCfe_Dados['FSC_TOT_LIQ'];
				  $nBloco_M_E += $n_Total_M_Pag;
			      $nTotal_C_E++;
			      $nTotal_B_E += $aCfe_Dados['FSC_SBTOTAL'];
			      $nTotal_A_E += $aCfe_Dados['FSC_ACRESCI'];
			      $nTotal_D_E += $aCfe_Dados['FSC_DESCONT'];
			      $nTotal_V_E += $aCfe_Dados['FSC_TOT_LIQ'];
				  $nTotal_M_E += $n_Total_M_Pag;
			   } Else {
			      $nBloco_C_C++;
			      $nBloco_B_C += $aCfe_Dados['FSC_SBTOTAL'];
			      $nBloco_A_C += $aCfe_Dados['FSC_ACRESCI'];
			      $nBloco_D_C += $aCfe_Dados['FSC_DESCONT'];
			      $nBloco_V_C += $aCfe_Dados['FSC_TOT_LIQ'];
				  $nBloco_M_C += $n_Total_M_Pag;
			      $nTotal_C_C++;
			      $nTotal_B_C += $aCfe_Dados['FSC_SBTOTAL'];
			      $nTotal_A_C += $aCfe_Dados['FSC_ACRESCI'];
			      $nTotal_D_C += $aCfe_Dados['FSC_DESCONT'];
			      $nTotal_V_C += $aCfe_Dados['FSC_TOT_LIQ'];
				  $nTotal_M_C += $n_Total_M_Pag;
			   }
	        }
	        // Totalização
            If ( !EMPTY($s_GrupoData) ) {
	            // Gerar totais do ultima data
	            EVAL($sPhp_Totaliza);
				// Gerar totais de cada modalidade
				$sTotal_Mpg_Txt = "";
				$n_Total_M_Pag_E = 0;
				$n_Total_M_Pag_C = 0;
				KSORT( $aTotal_Mpg );
				ForEach ( $aTotal_Mpg As $nIndice_Item => $aItem_Mpg ) {
					If ( $nIndice_Item == 99999 ) {  // Troco
					   $n_Total_M_Pag_E -= @$aItem_Mpg[1];
					   $n_Total_M_Pag_C -= @$aItem_Mpg[2];
					   $sTotal_Mpg_Txt .=
					      AlinhaStr($aItem_Mpg[0],0,18,'.')."|".
					      AlinhaStr("- ".FormatoMoeda(@$aItem_Mpg[1]),2,10)."|".
					      AlinhaStr(FormatoMoeda(@$aItem_Mpg[2]),2,10).
					      $sPulaLinha.
					      "";
					} Else {
					   $n_Total_M_Pag_E += @$aItem_Mpg[1];
					   $n_Total_M_Pag_C += @$aItem_Mpg[2];
					   $sTotal_Mpg_Txt .=
					      AlinhaStr($aItem_Mpg[0],0,18)."|".
					      AlinhaStr(FormatoMoeda(@$aItem_Mpg[1]),2,10)."|".
					      AlinhaStr(FormatoMoeda(@$aItem_Mpg[2]),2,10).
					      $sPulaLinha.
					      "";
					}
				}
			    // Gerar totais do relatório
			    $nBloco_C_E = $nTotal_C_E;
			    $nBloco_B_E = $nTotal_B_E;
			    $nBloco_A_E = $nTotal_A_E;
			    $nBloco_D_E = $nTotal_D_E;
			    $nBloco_V_E = $nTotal_V_E;
			    $nBloco_M_E = $nTotal_M_E;
			    $nBloco_C_C = $nTotal_C_C;
			    $nBloco_B_C = $nTotal_B_C;
			    $nBloco_A_C = $nTotal_A_C;
			    $nBloco_D_C = $nTotal_D_C;
			    $nBloco_V_C = $nTotal_V_C;
			    $nBloco_M_C = $nTotal_M_C;
			    $sTxt_Rel .=
			       $sPulaLinha.
                   //STR_REPEAT("=",40).$sPulaLinha.
                   AlinhaStr("* TOTAIS DO RELATORIO *",1).$sPulaLinha.
                   'Periodo.: '.$sPeriodo.$sPulaLinha.
                   //STR_REPEAT("=",40).$sPulaLinha.
	               '';
	            EVAL($sPhp_Totaliza);
			    $sTxt_Rel .=
			       ( $n_Cfe_ModoRel==1 ?  // Relatório analítico
				     $sPulaLinha.
                     AlinhaStr("Totais das modalidades de pagamento",1).$sPulaLinha.
			       //          1         2         3         4
			       // 1234567890123456789012345678901234567890
					 'Modalidade        | Val. Emt.| Val. Can.'.
					 $sPulaLinha.
				     $sTotal_Mpg_Txt.
				     STR_REPEAT("-",40).$sPulaLinha.
			         "Total.............:".AlinhaStr(FormatoMoeda($n_Total_M_Pag_E),2,10)."|".AlinhaStr(FormatoMoeda($n_Total_M_Pag_C),2,10).$sPulaLinha.
				     STR_REPEAT("-",40).$sPulaLinha
				   : "").
			       $sPulaLinha.
			       $sPulaLinha.
			       $sPulaLinha.
			       $sPulaLinha.
	               '';
	        }
	     // vendas por cfop 
		 } Else {
            // Cabeçalho do relatório
            $sTxt_Rel =
               $sPulaLinha.
               AlinhaStr($sEmpresaFan,1,55).$sPulaLinha.
               AlinhaStr("** RELATORIO RESUMO DE VENDAS POR CFOP **",1,55).$sPulaLinha.
               'Emissao.: '.DATE('d/m/Y H:i:s').$sPulaLinha.
               'Operador: '.SUBSTR(PegarPorPausa($R_CadFuncionario->FUN_NOMECP,3),0,30).$sPulaLinha.
               'Periodo.: '.$sPeriodo.$sPulaLinha.
               // 0- cupom Fiscal 1- Nota fiscal 2-Todos
		       ( $n_Cfe_Opcao==0  ? ' * Cupons fiscais'.$sPulaLinha : '').   
			   ( $n_Cfe_Opcao==1  ? ' * Nota fiscal'.$sPulaLinha : '').   
			   ( $n_Cfe_Opcao==2  ? ' * Cupons fiscais e Nota fiscal'.$sPulaLinha : '').   
			   ($n_Cfe_EstadoE==0 ? ' * Emitidos e cancelados'.$sPulaLinha : '').
               ($n_Cfe_EstadoE==1 ? ' * Somente os emitidos'.$sPulaLinha : '').
               ($n_Cfe_EstadoE==2 ? ' * Somente os cancelados'.$sPulaLinha : '').
			   '';
            //
			$sPHP_Executa_Fim =
               '$sTxt_Rel .='.
                  'STR_REPEAT("-", 55).'.
                  '$sPulaLinha.'.
                  '"| ".'.
                  '"TOTAL...:".'.
				  'AlinhaStr( FormatoMoeda($nVal_Total),2,12)." | ".'.
                  'AlinhaStr( FormatoMoeda($nVal_TBase),2,12)." | ".'.
               	  'AlinhaStr( FormatoMoeda($nVal_TIcms),2,12)." |".'.
                  '$sPulaLinha.'.
                  'STR_REPEAT("-", 55).'.
                  '$sPulaLinha.'.
                  '"";'.
			   "";
			$nVal_Opera = 0;
            $nVal_TBase = 0;
            $nVal_TIcms = 0;
			$nVal_Total = 0;
			$n_Qtd_Tot  = 0;
			$bCancelados= $n_Cfe_EstadoE<>2;
			//
			// Montagem de relatório 
	        ForEach ( $aCfe_Lista As $aCfe_Dados ) { 
			   If ( $bCancelados <> (! Rel_Fsc_Emt_Can($aCfe_Dados) ) ) {
				  If ( $n_Qtd_Tot>0 ) {
			         EVAL($sPHP_Executa_Fim);
				  }
			      $nVal_Opera = 0;
                  $nVal_TBase = 0;
                  $nVal_TIcms = 0;
			      $nVal_Total = 0;
				  $bCancelados = (! Rel_Fsc_Emt_Can($aCfe_Dados) );
                  $sTxt_Rel .=
                    $sPulaLinha.
					($n_Cfe_EstadoE==0 ?
					   ($bCancelados ? "** CANCELADOS **" : "** EMITIDOS **" ).$sPulaLinha
					: "").
                    STR_REPEAT("-",55).$sPulaLinha.
                    '| CFOP | Total Operacao | Valor Base   |  Valor Icms  |'.$sPulaLinha.
                    STR_REPEAT("-",55).$sPulaLinha.
			        '';
			   }
               $nVal_Opera  = $aCfe_Dados['TOTAL_OPERACAO'];
			   $nVal_Total += $aCfe_Dados['TOTAL_OPERACAO'];
			   $nVal_TBase += $aCfe_Dados['BASICM'];
               $nVal_TIcms += $aCfe_Dados['VALICM'];
			   //
			   $sTmp_Cfop = $aCfe_Dados['TRB_COD_CFO'];
			   if ( $sTmp_Cfop == '' ){
                  $sTmp_Cfop = 'Vazio';
               }  				   
			   
			   
			   $sTxt_Rel .=
			     '| '.
			     AlinhaStr( $sTmp_Cfop  ,0,5).
				 '|   '.
			     AlinhaStr(FormatoMoeda($nVal_Opera),2,12).
				 ' | '.
				 AlinhaStr(FormatoMoeda($aCfe_Dados['BASICM']),2,12).
				 ' | '.
				 AlinhaStr(FormatoMoeda($aCfe_Dados['VALICM']),2,12).
				 ' |'.
				 $sPulaLinha.
				 '';
			   $n_Qtd_Tot++;
			   //
			} 
			If ($nVal_Total>0) {
			   EVAL($sPHP_Executa_Fim);
               $sTxt_Rel .=
                  AlinhaStr('Registros impressos: '.Str_Zero($n_Qtd_Tot,6),0).
                  $sPulaLinha.
				  $sPulaLinha.
				  $sPulaLinha.
                  '';
			}
			//
		 }
		 // Tratamento do texto do relatório
	     $sTxt_Rel = RemoveAcentos($sTxt_Rel);
	     $aV_Sessao['TXT_REL'] = $sTxt_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_RelCfeR_Txt').innerHTML = ".JAVA_CharCode($sHTML_Rel).";".
            "";
	     //
	     $aSessao[$sNomeAcesso.'_S'] = $aV_Sessao;
	     //
	  // Mensagem de erro
	  } Else {
         $sRet_Javs .=
		    Info_Evento($sMsg_Erro,1).
			$oJan->sJavOnClickF.
		    "";
	  }
   //
   // IMPRIMIR Relatório pronto
   } ElseIf ( $sAcao=="IMP" ) {
      $sRet_Javs .= "parent.JanEspera(false); ";
      $aV_Sessao = @$aSessao[$sNomeAcesso.'_S'];
      $sCfg_ClpExp2 = SQLVarConfig('GARCOM_CLIPPER_ARQ_EXPORTA2');
      If ( STRLEN($sCfg_ClpExp2)>3 ) {
         $sTxt_Cupom = @$aV_Sessao['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").'_REL_FISCAL.TMP';
            $sIP_NomeArq = STR_REPLACE(".","_",ObterIPdoCliente());
            $sNomArqExpR = $sCfg_ClpExp2.$R_CadFuncionario->FUN_CODIGO.'_'.DATE("d-m-Y_h-i-s").'_REL_FISCAL_'.$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.').
           '';
      }
   //
   // >> Gerar texto para download
   } ElseIf ( $sAcao=="GERAR_TEXTO" ) {
      $sArquivo = "Relatorio_Cupons_Fiscais_".DATE("d-m-Y_H-i-s").".txt";
      $sTxt_Cupom = @$aV_Sessao['TXT_REL'];
      HEADER("Content-Type: text/plain");
      HEADER("Content-Length: ".STRLEN($sTxt_Cupom));
      HEADER("Content-Disposition: attachment; filename=".$sArquivo);
      ECHO $sTxt_Cupom;
      EXIT;
   //
   // FECHAR Janela
   } ElseIf ( $sAcao=="FECHAR" ) {
	  UNSET( $aSessao[$sNomeAcesso.'_S'] );
      $sRet_Javs .=
	    "if (parent.document.getElementById('".$oJan->sIdObj."') != null) { parent.RmElem('".$oJan->sIdObj."'); }".
		"parent.document.getElementById('".$sNomeIdJPrin."_Travar').style.visibility='hidden';".
		"parent.Disabled_In_Elems('".$sNomeIdJPrin."',false);".
	    "parent.document.getElementById('in_RelCfe_DatIni').focus();".
		"";
   }
   //
}
//
Function Rel_Fsc_Especie($sFsc_EspDoc_='', $nFsc_Cod_Cfe=0) {
   $s_Retorno_Esp = "";
   If       ( EMPTY($sFsc_EspDoc_) && $nFsc_Cod_Cfe==0 ) {
      $s_Retorno_Esp = "ECF";
   } ElseIf ( EMPTY($sFsc_EspDoc_) && $nFsc_Cod_Cfe> 0 ) {
      $s_Retorno_Esp = "CFE";
   } ElseIf ( $sFsc_EspDoc_=="NE" ) {
      $s_Retorno_Esp = "NE ";
   } ElseIf ( $sFsc_EspDoc_=="NC" ) {
      $s_Retorno_Esp = "NC ";
   }
   Return $s_Retorno_Esp;
}
//
Function Rel_Fsc_Emt_Can( $aCfe_Dados=ARRAY() ) {
   Return (EMPTY($aCfe_Dados['FSC_CANCELA']) && ( @$aCfe_Dados['FSC_STATUSNFE']==0 OR @$aCfe_Dados['FSC_STATUSNFE']==1 ) );
}
//
?>