;** ImpRE80A********************************************************************
;*  Impressao Livro de Registro de Entrada 80  Colunas Modelo II               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 22/09/1999 por Douglas Rodrigues
;Ultima Alteracao: 17/09/2003 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 11/04/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Imprimir Razao Social
;Ultima Alteracao: 17/04/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Serie
;Ultima Alteracao: 18/05/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Serie
;Ultima Alteracao: 10/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes vrc
;Ultima Alteracao: 28/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Sem Movimentacao
;Ultima Alteracao: 04/03/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Detalhe1/Detalhe2
;Ultima Alteracao: 17/03/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Detalhe1/Detalhe2
;Ultima Alteracao: 01/04/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Serie/Docto Cemig/Telefone
;Ultima Alteracao: 25/08/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Serie S-2 -> 2
;Ultima Alteracao: 06/01/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao ST             
;Ultima Alteracao: 24/03/2010 por Cleber Alves
;Motivo Alteracao: Exclusao Data de Emissao e Hora
;Ultima Alteracao: 08/04/2010 por Cleber Alves
;Motivo Alteracao: Ajustes Especie Docto CEM/TEL 
;Ultima Alteracao: 24/11/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao ImpOBS()                              
;Ultima Alteracao: 07/01/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nĈo alterar serie informada
;Ultima Alteracao: 28/02/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Novo Layout NotaEC/NotaEI           
;Ultima Alteracao: 09/03/2011 por Karina Andrade
;Motivo Alteracao: Ajustes TOTVALOR_CONTAB
;Ultima Alteracao: 10/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Numero da nota 7 digitos
;Ultima Alteracao: 22/06/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes vrc
;Ultima Alteracao: 16/12/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Checa_Linha()
;Ultima Alteracao: 09/03/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Docto Cancelado           
;Ultima Alteracao: 19/03/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Soma valor contabil Docto Cancelado           
;Ultima Alteracao: 13/06/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Soma ST Cotta                                 
;Ultima Alteracao: 28/08/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes salto de linha antes dos totais               
;Ultima Alteracao: 12/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes total vrcontabil=vrnf                         
;Ultima Alteracao: 05/06/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes aliquota c/ 2 casas decimais                  
;Ultima Alteracao: 08/01/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes detalhe() nf c/ valores zerados               
;Ultima Alteracao: 27/02/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes impressao obs               
;Ultima Alteracao: 12/04/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes titulo grupo de itens     
;Ultima Alteracao: 05/10/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes checar difernca vrnf vrcontabil
;Ultima Alteracao: 10/06/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nota cancelada denegada

;*******************************************************************************
;*  Rotina Principal  Emissao 80 Colunas                                       *
;*******************************************************************************
Proc IMPRIME()
Open Printer
Printer On

WT=0

Array TOTBASEICMSP[03]
Array TOTBASEICMST[03]

Array TOTCREDICMSP[03]
Array TOTCREDICMST[03]

Array TOTBASEIPIP[03]
Array TOTBASEIPIT[03]

Array TOTCREDIPIP[03]
Array TOTCREDIPIT[03]

Zera_Array("Todas")

VRNF           =0
SUMVALOR_CONTAB=0        

DNF=BlankDate()
ENF=""
FNF=""
NNF=""
NL =0

DOCTO_CANC_INUT=""

Print File ARQIMP ASP1+CI_20CPP+ASP2+"\n"
TOPOREL()
View "Temp"
Scan

   If [Data de Entrada       ]<>DNF or
      [Especie da Nota Fiscal]<>ENF or
      [Codigo                ]<>FNF or
      [Numero da nota fiscal ]<>NNF
      Then 
           Tot_ST()
           
           CopyToArray REGE

           DNF =[Data de Entrada       ]
           ENF =[especie da nota fiscal]
           FNF =[Codigo                ]
           NNF =[numero da nota fiscal ]

           DTN =[data de entrada       ]
           ESP =[especie da nota fiscal]
           SER =[serie da nota fiscal  ]

           NUM =[numero da nota fiscal ]
           DTE =[data de emissao       ]
           FORN=[Razao Social          ]
           IEF =[IE                    ]
           CGCF=[CGC                   ]
           UF  =[estado fornecedor     ]
           CP  =[condicao de pagamento ]

           VRC =[Valor Documento       ]
          
           VRNF           =VRC
           SUMVALOR_CONTAB=0        
          
           NL=NL+1
           WY=0
           WT=0

           DOCTO_CANC_INUT=[Cancelada]
   EndIf
   If Len([CFO])<=3
      Then CFO=AlinhM([CFO],3)
      Else CFO=AlinhM([CFO],4)
   EndIf
   OBS=[Observacao       ]

   SUMVALOR_CONTAB=SUMVALOR_CONTAB+[Valor Contabil]

   If DOCTO_CANC_INUT="S" Or DOCTO_CANC_INUT="4" 
      Or DOCTO_CANC_INUT="2" 
      Then
            If WY=0 Then
                WY=1 
                Checa_Linha()
                While True
                 If OPCAOPAG<>"Todas"
                    Then If FOLHA<OPCAOPAGINI Or
                            FOLHA>OPCAOPAGFIM
                            Then QuitLoop
                         EndIf
                 EndIf
                
                 Print File ARQIMP ASP1+ " "+Format("d13",DTN)+"  "
                 Print File ARQIMP Format("W4",ESP)+" "
                 Print File ARQIMP Format("W3",SER)
                 Print File ARQIMP Format("W7",NUM)+" "
                 Print File ARQIMP Format("d13",DTE)+" "
                 Print File ARQIMP Format("W30",FORN)+" "
                 Print File ARQIMP Format("W18",CGCF)+" "
                 Print File ARQIMP Format("W2",UF)+" "
                 If DOCTO_CANC_INUT="S" Then Print File ARQIMP "* CANCELADA  *"  EndIf
                 If DOCTO_CANC_INUT="2" Then Print File ARQIMP "* DENEGADA *"    EndIf
                 If DOCTO_CANC_INUT="4" Then Print File ARQIMP "* INUTILIZADA*"  EndIf
                 Print File ARQIMP ASP2+"\n"
                
                 Quitloop
                EndWhile
                LINHA=LINHA+1
            EndIf
    
       Else
             For wwh From 1 to 2
               If wwh=1
                  Then IMP="ICMS"
                  Else IMP="IPI "
               EndIf
          
               For wwi From 1 To 3
                Checa_Linha()
          
                Switch
                  Case wwh=1:
                       Switch
                        Case wwi=1 And [ICMS Debitado]>0:
                             TRI="1"
                             BAS=[Base Calculo ICMS      ]
                             ALI=[Aliquota de ICMS       ]
                             CRE=[ICMS Debitado          ]
          
                             TOTBASEICMSP[1]=TOTBASEICMSP[1]+BAS
                             TOTBASEICMST[1]=TOTBASEICMST[1]+BAS
          
                             TOTCREDICMSP[1]=TOTCREDICMSP[1]+CRE
                             TOTCREDICMST[1]=TOTCREDICMST[1]+CRE
                        Case wwi=2 And [ICMS Isento]>0:
                             TRI="2"
                             BAS=[ICMS Isento            ]
                             ALI=BlankNum()
                             CRE=BlankNum()
                             TOTBASEICMSP[2]=TOTBASEICMSP[2]+BAS
                             TOTBASEICMST[2]=TOTBASEICMST[2]+BAS
                        Case wwi=3 And [ICMS Outros]>0:
                             TRI="3"
                             BAS=[ICMS Outros            ]
                             ALI=BlankNum()
                             CRE=BlankNum()
                             TOTBASEICMSP[3]=TOTBASEICMSP[3]+BAS
                             TOTBASEICMST[3]=TOTBASEICMST[3]+BAS
                        Case wwi=3 And [ICMS Debitado]<=0 And [ICMS Isento]<=0 And [ICMS Outros]<=0:
                             TRI="3"
                             BAS=BlankNum()
                             ALI=BlankNum()
                             CRE=BlankNum()
                        OtherWise: Loop
                       EndSwitch
                  Case wwh=2:
                       Switch
                        Case wwi=1 And [IPI Debitado]>0:
                             TRI="1"
                             BAS=[Base Calculo IPI       ]
                             ALI=[Aliquota de IPI        ]
                             CRE=[IPI Debitado           ]
          
                             TOTBASEIPIP[1]=TOTBASEIPIP[1]+BAS
                             TOTBASEIPIT[1]=TOTBASEIPIT[1]+BAS
          
                             TOTCREDIPIP[1]=TOTCREDIPIP[1]+CRE
                             TOTCREDIPIT[1]=TOTCREDIPIT[1]+CRE
                        Case wwi=2 And [IPI Isento]>0:
                             TRI="2"
                             BAS=[IPI Isento            ]
                             ALI=BlankNum()
                             CRE=BlankNum()
                             TOTBASEIPIP[2]=TOTBASEIPIP[2]+BAS
                             TOTBASEIPIT[2]=TOTBASEIPIT[2]+BAS
                        Case wwi=3 And [IPI Outros]>0:
                             TRI="3"
                             BAS=[IPI Outros            ]
                             ALI=BlankNum()
                             CRE=BlankNum()
                             TOTBASEIPIP[3]=TOTBASEIPIP[3]+BAS
                             TOTBASEIPIT[3]=TOTBASEIPIT[3]+BAS
                        OtherWise: Loop
                       EndSwitch
                EndSwitch
                If WY=0
                   Then DETALHE1()
                        WY=1
                        WT=0
                   Else DETALHE2()
                        WT=0
                EndIf
          
                TOTVLRCP=TOTVLRCP+VRC
                TOTVLRCT=TOTVLRCT+VRC
                VRC=BlankNum()
                
               EndFor
             EndFor
             ImpObs()
             
             BASE_ST=BASE_ST+[BCSubstituicao ICMS]
             CRED_ST=CRED_ST+[Substituicao ICMS  ]

  EndIf

  WT=1
EndScan
Tot_ST()

Checa_Linha()
SOMAT()

While LINHA<63
  Print File ARQIMP ASP1+" "+Fill(" ",157)+ASP2+"  \n"
  LINHA=LINHA+1
EndWhile
RODAPE()
Print File ARQIMP ASP1+CI_10CPP+ASP2+"\n"

Printer Off
Close Printer
EndProc

;*******************************************************************************
;* Rotina total st nf                                                          *
;*******************************************************************************
Proc Tot_ST()

If DOCTO_CANC_INUT="N" And NNF<>"" And CRED_ST>0
   Then 
        IMP="ST"
        TRI=""
        BAS=BASE_ST
        ALI=BlankNum()
        CRE=CRED_ST
        
        TOTBASE_STP=TOTBASE_STP+BASE_ST
        TOTCRED_STP=TOTCRED_STP+CRED_ST
                
        TOTBASE_STT=TOTBASE_STT+BASE_ST
        TOTCRED_STT=TOTCRED_STT+CRED_ST
                
        WT=0
        Detalhe2()
EndIf   

if DOCTO_CANC_INUT="N" And format("W13.2,EIC",VRNF)<>format("W13.2,EIC",SUMVALOR_CONTAB)
   then
        Checa_Linha()
        s=  "** DETECTADO DIFERENCA NO VALOR DO DOCUMENTO ACIMA "+ltrim(Format("W13.2,EIC",VRNF))
        s=s+" COM A SOMA VALOR CONTABIL "+ltrim(format("W13.2,EIC",SUMVALOR_CONTAB))
        s=s+" VERIFICAR LANCAMENTO !"

        Print File ARQIMP ASP1+"  "+Completa(s,157," ")+" "+ASP2+"\n"
        LINHA=LINHA+1
endif

BASE_ST=BlankNum()
CRED_ST=BlankNum()

Endproc

;*******************************************************************************
;* Rotina Topo de Formulario                                                   *
;*******************************************************************************
Proc TOPOREL()
private titulo

if not isblank(VSDGGRP)
   then titulo="GRUPO: "+VSDGNOMGRP
   else titulo=""
endif

FOLHA=FOLHA+1
While True
 If OPCAOPAG<>"Todas"
    Then If FOLHA<OPCAOPAGINI Or
            FOLHA>OPCAOPAGFIM
            Then QuitLoop
         EndIf
 EndIf

 Print File ARQIMP ASP1+ASP2+ " \n"
 Print File ARQIMP ASP1+spaces(44)+"R E G I S T R O   D E   E N T R A D A S "+Spaces(28)+"|        CODIGO DE VALORES FISCAIS "+ASP2+"\n"
 Print File ARQIMP ASP1+format("W112,AL",titulo)+"|"+ASP2+" \n"
 Print File ARQIMP ASP1+"      EMPRESA: "+Format("W40",RS)+" - Cod.: "+CE+spaces(44)+"| 1 - OPERACOES COM CREDITO DO IMPOSTO "+ASP2+"\n"
 Print File ARQIMP ASP1+"   INSC. EST.: "+Format("W14",IE)+spaces(27)+"C.G.C.: "+Format("W18",CGC)+spaces(30)+
                   "| 2 - OPERACOES S/ CREDITO-ISENTO/NAO TRIBUTADO"+ASP2+"\n"
 Print File ARQIMP ASP1+"        FOLHA: "+Format("W4",FOLHA)+spaces(57)+;" DATA EMISSAO: "+Format("D13",Today())+spaces(02)+
                   "PERIODO: "+Format("D13",VSDGDTINI)+" ate "+Format("D13",VSDGDTFIM)+
                   Spaces(02)+"| 3 - OPERACOES SEM CREDITO-OUTROS "+ASP2+"\n"
 Print File ARQIMP ASP1+Fill("-",158)+ASP2+"\n"
 Print File ARQIMP ASP1+"           |                          DOCUMENTOS FISCAIS                                    |             |CODIFICAC|"+
                   "             VALORES  FISCAIS              "+ASP2+"\n"
 Print File ARQIMP ASP1+"   DATA    |--------------------------------------------------------------------------------|-------------|---------|"+
                   "-----------------------------------------  "+ASP2+"\n"
 Print File ARQIMP ASP1+"    DE     |     |SE-|      |   DATA   |                              |                  |  |    VALOR    |    |    |"+
                   "ICMS|   |    BASE DE  |     |  IMPOSTO     "+ASP2+"\n"
 Print File ARQIMP ASP1+"  ENTRADA  |ESPEC|RIE|NUMERO|  DOCTO   | EMITENTE                     | CGC/MF-CPF       |UF|   CONTABIL  |FISC|CONT|"+
                   "IPI |COD|    CALCULO  |ALIQ.|  CREDITADO   "+ASP2+"\n"
 Print File ARQIMP ASP1+Fill("-",158)+ASP2+"\n"
 QuitLoop
EndWhile
LINHA=12
EndProc

;*******************************************************************************
;* Rotina de Detalhe 1                                                         *
;*******************************************************************************
Proc DETALHE1()
While True
 If OPCAOPAG<>"Todas"
    Then If FOLHA<OPCAOPAGINI Or
            FOLHA>OPCAOPAGFIM
            Then QuitLoop
         EndIf
 EndIf

 If IMP="IPI " And ATIVIDADE="COMERCIO" And (CRE)=0 And (BAS)=0
    Then Return
 EndIf

 Print File ARQIMP ASP1+ " "+Format("d13",DTN)+"  "
 Print File ARQIMP Format("W4",ESP)+" "
 Print File ARQIMP Format("W3",SER)
 Print File ARQIMP Format("W7",NUM)+" "
 Print File ARQIMP Format("d13",DTE)+" "
 Print File ARQIMP Format("W30",FORN)+" "
 Print File ARQIMP Format("W18",CGCF)+" "
 Print File ARQIMP Format("W2",UF)+" "
 Print File ARQIMP Format("W13.2, EIC",VRC)+" "
 Print File ARQIMP Substr(CFO,1,1)+"."+Completa(substr(CFO,2,3),4," ")
 Print File ARQIMP Spaces(03)+" "
 Print File ARQIMP Format("W4",IMP)+"  "
 Print File ARQIMP Format("W2",TRI)+" "
 Print File ARQIMP Format("W13.2, EIC",BAS)
 Print File ARQIMP Format("W6.2, EI",ALI)+" "
 Print File ARQIMP Format("W12.2, eic",CRE)+" "
 Print File ARQIMP ASP2+ " \n"
 Quitloop
EndWhile
LINHA=LINHA+1

EndProc

;*******************************************************************************
;* Rotina de Detalhe 2                                                         *
;*******************************************************************************
Proc DETALHE2()
While True
 If OPCAOPAG<>"Todas"
    Then If FOLHA<OPCAOPAGINI Or
            FOLHA>OPCAOPAGFIM
            Then QuitLoop
         EndIf
 EndIf

 If IMP="IPI " And ATIVIDADE="COMERCIO" And (CRE)=0 And (BAS)=0
    Then Return
 EndIf

 Switch
   Case WT=0: Print File ARQIMP ASP1+ Spaces(117)
   Case WT=1: Print File ARQIMP ASP1+ " "
              Print File ARQIMP Spaces(92)
              Print File ARQIMP Format("W13.2, EIC",VRC)+" "
              Print File ARQIMP Substr(CFO,1,1)+"."+Completa(substr(CFO,2,3),4," ")
              Print File ARQIMP Spaces(03)+" "
 EndSwitch
 Print File ARQIMP Format("W6",IMP)
 Print File ARQIMP Format("W3",TRI)
 Print File ARQIMP Format("W13.2, eic",BAS)
 If WT=0 or WT=1
    Then Print File ARQIMP Format("W6.2, ei",ALI)+" "
    Else Print File ARQIMP Spaces(7)
 EndIf
 Print File ARQIMP Format("W12.2, eic",CRE)+ASP2+"\n"
 Quitloop
EndWhile
LINHA=LINHA+1
EndProc

;*******************************************************************************
;* Rotina Somatorias                                                           *
;*******************************************************************************
Proc DETALHET(Tipo)

While True
 If OPCAOPAG<>"Todas"
    Then If FOLHA<OPCAOPAGINI Or
            FOLHA>OPCAOPAGFIM
            Then QuitLoop
         EndIf
 EndIf

 Switch
   Case Tipo=1: Print File ARQIMP ASP1+" "+ASP2+"\n" 
                
                Print File ARQIMP ASP1+ " "
                Print File ARQIMP MSGSOMA
                Print File ARQIMP Format("W14.2, eic",SVRC)+" "
                Print File ARQIMP Spaces(10)
   Case Tipo=2: Print File ARQIMP ASP1+Spaces(117)
 EndSwitch
 Print File ARQIMP Format("W6",SIMP)
 Print File ARQIMP Format("W3",STRI)
 Print File ARQIMP Format("W13.2, eic",SBAS)+" "
 Print File ARQIMP Spaces(6)
 Print File ARQIMP Format("W12.2, eic",SCRE)+ASP2+"\n"
 Quitloop
EndWhile
LINHA=LINHA+1
If Tipo=1
   Then LINHA=LINHA+1
EndIf   
EndProc

;*******************************************************************************
;* Rotina de Soma Parcial                                                      *
;*******************************************************************************
Proc SOMAP()
Print File ARQIMP ASP1+ASP2+"\n"

If TOTVLRCT=0 Then
 Print File ARQIMP ASP1+"  "+ASP2+"\n"
 Print File ARQIMP ASP1+"  ** NAO HOUVE MOVIMENTACAO NO PERIDODO **"+ASP2+"\n"
 Print File ARQIMP ASP1+"  "+ASP2+"\n"
EndIf

MSGSOMA= Spaces(78)+"SOMA PARCIAL:"
SIMP="ICMS"
SVRC=TOTVLRCP
For I From 1 To 3
    STRI=StrVal(I)
    SBAS=TOTBASEICMSP[I]
    SCRE=TOTCREDICMSP[I]
    If I=1
       Then DETALHET(1)
       Else DETALHET(2)
    EndIf
EndFor

SIMP="IPI "
For I From 1 To 3
    STRI=StrVal(I)
    SBAS=TOTBASEIPIP[I]
    SCRE=TOTCREDIPIP[I]
    DETALHET(2)
EndFor

If TOTCRED_STP>0
   Then SIMP="ST  "
        STRI=""
        SALI=BlankNum()
        SBAS=TOTBASE_STP
        SCRE=TOTCRED_STP
        DETALHET(2)
EndIf

Print File ARQIMP ASP1+ASP2+"\n"
LINHA=LINHA+3
Zera_Array("Parcial")

EndProc

;*******************************************************************************
;* Rotina de Soma Total                                                        *
;*******************************************************************************
Proc SOMAT()

MSGSOMA=Spaces(78)+"SOMA TOTAL..:"
SIMP="ICMS"
SVRC=TOTVLRCT
For I From 1 To 3
    STRI=StrVal(I)
    SBAS=TOTBASEICMST[I]
    SCRE=TOTCREDICMST[I]
    If I=1
       Then DETALHET(1)
       Else DETALHET(2)
    EndIf
EndFor

SIMP="IPI "
For I From 1 To 3
    STRI=StrVal(I)
    SBAS=TOTBASEIPIT[I]
    SCRE=TOTCREDIPIT[I]
    DETALHET(2)
EndFor

If TOTCRED_STT>0
   Then SIMP="ST  "
        STRI=""
        SBAS=TOTBASE_STT
        SCRE=TOTCRED_STT
        DETALHET(2)
EndIf
Zera_Array("Todas")

EndProc

;*******************************************************************************
;* Rotina Observacao                                                           *
;*******************************************************************************
Proc ImpObs()
Private posobs

If IsBlank(OBS) Or
   Search("CANCELAD",OBS)>0 Or
   Search("INUTILIZ",OBS)>0
   Then Return
EndIf

OBS="* Obs: "+OBS+" *"
posobs=1

While True
 Checa_Linha()
 If OPCAOPAG<>"Todas"
    Then If FOLHA<OPCAOPAGINI Or
            FOLHA>OPCAOPAGFIM
            Then QuitLoop
         EndIf
 EndIf

 Print File ARQIMP ASP1+"  "+Completa(SubStr(OBS,1,156),156," ")+ASP2+"\n"

 posobs=posobs+156
 If RTrim(Substr(OBS,posobs,156))="" Then QuitLoop EndIf 
 LINHA=LINHA+1

EndWhile
LINHA=LINHA+1
EndProc   ; (ImpObs)

;*******************************************************************************
;* Rotina Topo de Rodape do Formulario                                         *
;*******************************************************************************
Proc RODAPE()
While True
 If OPCAOPAG<>"Todas"
    Then If FOLHA<OPCAOPAGINI Or
            FOLHA>OPCAOPAGFIM
            Then QuitLoop
         EndIf
 EndIf

 Print File ARQIMP ASP1+Fill("-",158)
 Print File ARQIMP Chr(12)+ASP2+"\n"
 QuitLoop
EndWhile
EndProc


;*******************************************************************************
;* Rotina Checa Linha                                                          *
;*******************************************************************************
Proc Checa_Linha()
If LINHA>53
  Then SOMAP()
       RODAPE()
       TOPOREL()
EndIf
EndProc

;*******************************************************************************
;* Rotina P/ Zerar Arrays                                                      *
;*******************************************************************************
Proc Zera_Array(Acao)
Switch
   Case Acao="Todas":
        For I From 1 To 3
              TOTVLRCP=0
              TOTVLRCT=0

              TOTBASEICMSP[I]=0
              TOTBASEICMST[I]=0

              TOTCREDICMSP[I]=0
              TOTCREDICMST[I]=0

              TOTBASEIPIP[I]=0
              TOTBASEIPIT[I]=0

              TOTCREDIPIP[I]=0
              TOTCREDIPIT[I]=0
        EndFor
        TOTBASE_STP=0
        TOTCRED_STP=0
        TOTBASE_STT=0
        TOTCRED_STT=0
        
   Case Acao="Parcial":
        For I From 1 To 3
              TOTVLRCP=0

              TOTBASEICMSP[I]=0

              TOTCREDICMSP[I]=0

              TOTBASEIPIP[I]=0

              TOTCREDIPIP[I]=0
        EndFor
        TOTBASE_STP=0
        TOTCRED_STP=0
EndSwitch
EndProc

IMPRIME()

Release Procs IMPRIME, Tot_ST, TOPOREL, DETALHE1, DETALHE2, DETALHET, 
              SOMAP, SOMAT, RODAPE, Zera_Array, ImpObs, Checa_Linha

