;** ImpRE80 ********************************************************************
;*  Impressao Livro de Registro de Entrada 80  Colunas  Modelo I               *
;*******************************************************************************
;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: 25/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Layout PadrÇo AF
;Ultima Alteracao: 28/01/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Sem Movimentacao
;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: 03/12/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes ImpOBS()                              
;Ultima Alteracao: 07/01/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes nĈo alterar serie informada
;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: 10/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Numero da nota 7 digitos
;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: 08/11/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes detalhe() nf c/ valores zerados               
;Ultima Alteracao: 12/01/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes total vrcontabil=vrnf                         
;Ultima Alteracao: 27/02/2014 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes impressao obs               
;Ultima Alteracao: 12/12/2015 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes impressao tipodetalhe=1 e valores zerados
;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

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

Array TOTBASE_ICMS[03]
Array TOTCRED_ICMS[03]
Array TOTBASE_IPI[03]
Array TOTCRED_IPI[03]

Array CDOP_ICMS[03]
Array BASE_ICMS[03]
Array ALIQ_ICMS[03]
Array CRED_ICMS[03]
Array CDOP_IPI[03]
Array BASE_IPI[03]
Array CRED_IPI[03]

Zera_ArrayTOT()
Zera_Array()

VRNF           =0
SUMVALOR_CONTAB=0        

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

DOCTO_CANC_INUT=""

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()

          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=[Codigo                ]
          UF  =[estado fornecedor     ]

          WY=0
          DOCTO_CANC_INUT=[Cancelada] 

          If DOCTO_CANC_INUT="N"
             Then VRC =[Valor Documento       ]
             Else VRC=BlankNum()
          EndIf        

          TOTVALOR_CONTAB=TOTVALOR_CONTAB+VRC

          VRNF           =VRC
          SUMVALOR_CONTAB=0        
          
          TipoDetalhe=1

     Else 
          TipoDetalhe=3
  EndIf


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

  OBS=[Observacao       ]

  SUMVALOR_CONTAB=SUMVALOR_CONTAB+[Valor Contabil]

  Zera_Array()

  If DOCTO_CANC_INUT="S" 
     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("d10",DTN)+"| "
               Print File ARQIMP Format("W6,AL",ESP)  +"| "
               Print File ARQIMP Format("W3,AL",SER)  +" |"
               Print File ARQIMP Format("W7,AR",NUM)  +" |"
               Print File ARQIMP Format("d10",DTE) +"| "
               Print File ARQIMP Format("W11,AL",FORN)+"| "
               Print File ARQIMP Format("W3,AL",UF)+"| "
               If DOCTO_CANC_INUT="S" Then Print File ARQIMP "* CANCELADA  *"  EndIf
               If DOCTO_CANC_INUT="4" Then Print File ARQIMP "* INUTILIZADA*"  EndIf
               Print File ARQIMP Spaces(05)+"| "
               Print File ARQIMP Spaces(02)+"|"
               Print File ARQIMP Spaces(14)+"|"
               Print File ARQIMP Spaces(05)+"|"
               Print File ARQIMP Spaces(14)+"| "
               Print File ARQIMP Spaces(02)+"|"
               Print File ARQIMP Spaces(14)+"|"
               Print File ARQIMP Spaces(14)+"|"+ASP2+"\n"
              
               Quitloop
              EndWhile
              LINHA=LINHA+1
          EndIf

     Else

          If [ICMS Debitado]>0
             Then CONT_ICMS=CONT_ICMS+1
                  CDOP_ICMS[CONT_ICMS]=1
                  BASE_ICMS[CONT_ICMS]=[Base Calculo ICMS      ]
                  ALIQ_ICMS[CONT_ICMS]=[Aliquota de ICMS       ]
                  CRED_ICMS[CONT_ICMS]=[ICMS Debitado          ]
          EndIf
          If [ICMS Isento]>0
             Then CONT_ICMS=CONT_ICMS+1
                  CDOP_ICMS[CONT_ICMS]=2
                  BASE_ICMS[CONT_ICMS]=[ICMS Isento            ]
                  ALIQ_ICMS[CONT_ICMS]=BlankNum()
                  CRED_ICMS[CONT_ICMS]=BlankNum()
          EndIf  
          If [ICMS Outros]>0
             Then CONT_ICMS=CONT_ICMS+1
                  CDOP_ICMS[CONT_ICMS]=3
                  BASE_ICMS[CONT_ICMS]=[ICMS Outros            ]
                  ALIQ_ICMS[CONT_ICMS]=BlankNum()
                  CRED_ICMS[CONT_ICMS]=BlankNum()
          EndIf         
        
        
        
          If [IPI Debitado]>0
             Then CONT_IPI=CONT_IPI+1
                  CDOP_IPI[CONT_IPI]=1
                  BASE_IPI[CONT_IPI]=[Base Calculo IPI      ]
                  CRED_IPI[CONT_IPI]=[IPI Debitado          ]
          EndIf
          If [IPI Isento]>0
             Then CONT_IPI=CONT_IPI+1
                  CDOP_IPI[CONT_IPI]=2
                  BASE_IPI[CONT_IPI]=[IPI Isento            ]
                  CRED_IPI[CONT_IPI]=BlankNum()
          EndIf  
          If [IPI Outros]>0
             Then CONT_IPI=CONT_IPI+1
                  CDOP_IPI[CONT_IPI]=3
                  BASE_IPI[CONT_IPI]=[IPI Outros            ]
                  CRED_IPI[CONT_IPI]=BlankNum()
          EndIf         
        
          BASE_ST=BASE_ST+[BCSubstituicao ICMS]
          CRED_ST=CRED_ST+[Substituicao ICMS  ]
        
          wwcTipoDetalhe=0
        
          For wwi From 1 To 3
        
            TRIICMS=StrVal(CDOP_ICMS[wwi])
            BASICMS=BASE_ICMS[wwi]
            ALIICMS=ALIQ_ICMS[wwi]
            CREICMS=CRED_ICMS[wwi]
            If CDOP_ICMS[wwi]>0
               Then TOTBASE_ICMS[CDOP_ICMS[wwi]]=TOTBASE_ICMS[CDOP_ICMS[wwi]]+BASICMS
                    TOTCRED_ICMS[CDOP_ICMS[wwi]]=TOTCRED_ICMS[CDOP_ICMS[wwi]]+CREICMS
            EndIf        
                    
            TRIIPI=StrVal(CDOP_IPI[wwi])
            BASIPI=BASE_IPI[wwi]
            CREIPI=CRED_IPI[wwi]
            If CDOP_IPI[wwi]>0
               Then TOTBASE_IPI[CDOP_IPI[wwi]]=TOTBASE_IPI[CDOP_IPI[wwi]]+BASIPI
                    TOTCRED_IPI[CDOP_IPI[wwi]]=TOTCRED_IPI[CDOP_IPI[wwi]]+CREIPI
            EndIf        
        
            If (CDOP_ICMS[wwi]>0 Or CDOP_IPI[wwi]>0)
              Then Detalhe()
                   VRC=BlankNum()
                   
                   wwcTipoDetalhe=wwcTipoDetalhe+1
            EndIf
            
          EndFor
          if TipoDetalhe=1 and wwcTipoDetalhe=0
             Then Detalhe()
                  VRC=BlankNum()
          EndIf
          
          ImpObs()
     
  EndIf   

EndScan

Tot_ST()
Totaliza()

Printer Off
Close Printer
EndProc


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

If DOCTO_CANC_INUT="N" And NNF<>"" And CRED_ST>0
   Then 
        TRIICMS="ST"
        BASICMS=BASE_ST
        ALIICMS=BlankNum()
        CREICMS=CRED_ST
        
        TRIIPI=""
        BASIPI=BlankNum()
        CREIPI=BlankNum()
        
        TOTBASE_ST=TOTBASE_ST+BASE_ST
        TOTCRED_ST=TOTCRED_ST+CRED_ST
                
        TipoDetalhe=2
        Detalhe()
EndIf   


if 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+CI_20CPP+" DATA EMISSAO: "+Format("D13",Today())+" - "+Time()+ASP2+"\n"
 Print File ARQIMP ASP1+CI_20CPP+ASP2+"\n"
 Print File ARQIMP ASP1+
 "================================================================================================================================================================"+ASP2+"\n"                                           
 Print File ARQIMP ASP1+
 "|                                            LIVRO REGISTRO DE ENTRADAS - RE - MODELO P1                      |       (a) CODIGO DE VALORES FISCAIS            |"+ASP2+"\n"     
 Print File ARQIMP ASP1+"|"+format("W109,AL",titulo)+                                                          "|------------------------------------------------|"+ASP2+"\n"     
 
 Print File ARQIMP ASP1+
 "|                                                                                                             | 1 - OPERACOES COM CREDITO DO IMPOSTO           |"+ASP2+"\n"     
 Print File ARQIMP ASP1+
 "| FIRMA : "+Format("W40,AL",RS)+" - Cod.: "+CE+spaces(47)+                                                   "| 2 - OPER. SEM CREDITO DO IMPOSTO - ISENTAS     |"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "| INSC. EST.: "+Format("W14,AL",IE) +spaces(11)+"CNPJ : "+Format("W18,AL",CGC)+spaces(46)+                   "|     OU NAO TRIBUTADAS.                         |"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "| FOLHA: "+Format("W4",FOLHA)       +spaces(26)+"MES OU PERIODO/ANO : "+Format("D13",VSDGDTINI)+
                                                                                           " A "+Format("D13",VSDGDTFIM)+Spaces(27)+
                                                                                                               "| 3 - OPER. SEM CREDITO DO IMPOSTO - OUTRAS.     |"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "----------------------------------------------------------------------------------------------------------------------------------------------------------------"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "|        |            DOCUMENTOS FISCAIS                   |               | CODIFIC.|         ICMS VALORES FISCAIS          |      IPI VALORES FISCAIS        |"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "|DATA DE |_________________________________________________|     VALOR     |_________|_______________________________________|_________________________________|"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "|        |       |SERIE|        |DATA DO |  CODIGO    |    |               |CON|     |   |              |     |   IMPOSTO    |   |              |   IMPOSTO    |"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "|ENTRADA |ESPECIE|SUB- | NUMERO |        |            | UF |    CONTABIL   |TA |FISC.|COD|BASE CALC.OU  |ALIQ.|  CREDITADO   |COD|BASE CALC.OU  |  CREDITADO   |"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "|        |       |SERIE|        | DOCTO. | EMITENTE   |ORIG|               |BIL|     |(a)|VALOR OPERACAO|     |              |(a)|VALOR OPERACAO|              |"+ASP2+"\n"
 Print File ARQIMP ASP1+
 "================================================================================================================================================================"+ASP2+"\n"
 ;|99/99/99|  XXX  |     | 999999 |99/99/99| 9999999999 | XX | 999.999.999,99|   |9.999| 9 |999.999.999,99|99,99|999.999.999,99| 9 |999.999.999,99|999.999.999,99|

 QuitLoop
EndWhile
LINHA=15
EndProc

;*******************************************************************************
;* Rotina de Detalhe                                                           *
;*******************************************************************************
Proc DETALHE()

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

 Switch
   Case TipoDetalhe=1: 
     Print File ARQIMP ASP1+"|"+Format("d10",DTN)+"| "
     Print File ARQIMP Format("W6,AL",ESP)  +"| "
     Print File ARQIMP Format("W3,AL",SER)  +" |"
     Print File ARQIMP Format("W7,AR",NUM)  +" |"
     Print File ARQIMP Format("d10",DTE) +"| "
     Print File ARQIMP Format("W11,AL",FORN)+"| "
     Print File ARQIMP Format("W3,AL",UF)+"| "
     Print File ARQIMP Format("W14.2, EIC",VRC)+"|   |"
     Print File ARQIMP Substr(CFO,1,1)+"."+Completa(substr(CFO,2,3),3," ")+"| "
     
     TipoDetalhe=2
     
   Case TipoDetalhe=2:
     Print File ARQIMP ASP1+"|        |       |     |        |        |            |    |               |   |     | "
   Case TipoDetalhe=3:
     Print File ARQIMP ASP1+"|        |       |     |        |        |            |    | "
     Print File ARQIMP Format("W14.2, EIC",VRC)+"|   |"
     Print File ARQIMP Substr(CFO,1,1)+"."+Completa(substr(CFO,2,3),3," ")+"| "
   Case TipoDetalhe=4:
     Print File ARQIMP ASP1+"|                                                            "
     Print File ARQIMP Format("W14.2, EIC",VRC)+" "+tot_titulo
     Print File ARQIMP Format("W2,AL",TRIICMS)    +" "
     Print File ARQIMP Format("W14.2,EIC",BASICMS)+" "
     Print File ARQIMP "      "
     Print File ARQIMP Format("W14.2,EIC",CREICMS)+"  "
     Print File ARQIMP Format("W2,AL",TRIIPI)     +" "
     Print File ARQIMP Format("W14.2,EIC",BASIPI) +" "
     Print File ARQIMP Format("W14.2,EIC",CREIPI) +"|"+ASP2+"\n"
     QuitLoop

 EndSwitch
 Print File ARQIMP Format("W2,AL",TRIICMS)    +"|"
 Print File ARQIMP Format("W14.2,EIC",BASICMS)+"|"
 Print File ARQIMP Format("W5,AR",LTrim(Format("W6.2, EI",ALIICMS))) +"|"
 Print File ARQIMP Format("W14.2,EIC",CREICMS)+"| "
 Print File ARQIMP Format("W2,AL",TRIIPI)     +"|"
 Print File ARQIMP Format("W14.2,EIC",BASIPI) +"|"
 Print File ARQIMP Format("W14.2,EIC",CREIPI) +"|"+ASP2+"\n"

 Quitloop
EndWhile
LINHA=LINHA+1
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,posobs,57),57," ")+
  "|               |   |     |   |              |     |              |   |              |              |"+ASP2+"\n"

 posobs=posobs+57
 If RTrim(Substr(OBS,posobs,57))="" 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("-",160)+Chr(12)+ASP2+"\n"
 Print File ARQIMP ASP1+CI_10CPP+ASP2+"\n"
 QuitLoop
EndWhile
EndProc

;*******************************************************************************
;* Rotina Totaliza                                                             *
;*******************************************************************************
Proc Totaliza()

Checa_Linha()
While True
 If OPCAOPAG<>"Todas"
    Then If FOLHA<OPCAOPAGINI Or
            FOLHA>OPCAOPAGFIM
            Then QuitLoop
         EndIf
 EndIf
 
 Print File ARQIMP ASP1+Fill("-",160)+ASP2+"\n"
 QuitLoop
EndWhile

If TOTVALOR_CONTAB=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

VRC    =TOTVALOR_CONTAB
ALIICMS=BlankNum()
tot_titulo="     TOTAL "
For i From 1 to 3

  TRIICMS=StrVAl(I)
  BASICMS=TOTBASE_ICMS[I]
  CREICMS=TOTCRED_ICMS[I]
  
  TRIIPI =StrVAl(I)
  BASIPI =TOTBASE_IPI[I]
  CREIPI =TOTCRED_IPI[I]
  
  TipoDetalhe=4
  Detalhe()

  VRC=BlankNum()
  tot_titulo="           "
EndFor

;** Substituicao Tributaria **
TRIICMS="ST"
BASICMS=TOTBASE_ST
CREICMS=TOTCRED_ST

TRIIPI =""
BASIPI =BlankNum()
CREIPI =BlankNum()
  
TipoDetalhe=4
Detalhe()

VRC=BlankNum()
tot_titulo="           "
;-----------------------


Rodape()

EndProc

;*******************************************************************************
;* Rotina P/ Zerar Arrays Totais                                               *
;*******************************************************************************
Proc Zera_ArrayTOT()

TOTVALOR_CONTAB=0
For i From 1 to 3
  TOTBASE_ICMS[I]=0
  TOTCRED_ICMS[I]=0

  TOTBASE_IPI[I] =0
  TOTCRED_IPI[I] =0
EndFor
TOTBASE_ST=0
TOTCRED_ST=0
EndProc

;*******************************************************************************
;* Rotina P/ Zerar Arrays                                                      *
;*******************************************************************************
Proc Zera_Array()

CONT_ICMS=0
CONT_IPI =0
For i From 1 to 3
  CDOP_ICMS[I]=BlankNum() 
  ALIQ_ICMS[I]=BlankNum()
  BASE_ICMS[I]=BlankNum()
  CRED_ICMS[I]=BlankNum()

  CDOP_IPI[I] =BlankNum() 
  BASE_IPI[I] =BlankNum()
  CRED_IPI[I] =BlankNum()
EndFor
EndProc

;*******************************************************************************
;* Rotina Checa Linha                                                          *
;*******************************************************************************
Proc Checa_Linha()
If LINHA>60
   Then Rodape()
        TopoRel()
EndIf   
EndProc


IMPRIME()

Release Procs IMPRIME, Tot_ST, TOPOREL, DETALHE, RODAPE, Totaliza, Zera_ArrayTOT,
              Zera_Array, Checa_Linha, ImpObs

