'Nome       : Vnd_Rec.Ipw
'Tipo       : LST
'Data       : 2014/03/12
'Versao     : 1.0
'Descricao  : Recibo - Modo gráfico

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   2014/03/12 --------------------------------------------------
'Versao base


'==============================================================================
#DEF - Definicao global do documento
'==============================================================================
Caracteres invalidos             [CarInv]=#
##


'==============================================================================
#ESP - Campos especificos
'==============================================================================
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Nome                       [DocNom]=Recibo
Vias                       [DocVia]=Original unico
'Vias                       [DocVia]=Original;Duplicado
'Vias                       [DocVia]=Original;Duplicado,2;Triplicado

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=20
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=3


'funcoes de listagem
Funcao do documento         [FxDoc]=Doc
Listar cabecalho            [FxCAB]=DocCab
Listar linhas               [FxLIN]=DocLin; Ajt; Txl; Doc ; Nor ; Dm
Listar fim                  [FxFIM]=DocFim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)

'descricao da empresa 
EmpNome  = Emp_Inf_Nome$
EmpMorada= Emp_Inf_Morada$
EmpLocal = Emp_Inf_Local$
EmpCpost = Emp_Inf_Cpost$
EmpTel   = Emp_Inf_Telef$
EmpFax   = Emp_Inf_Fax$
EmpCtrb  = Emp_Inf_Contrib$
EmpTps   = Emp_Inf_NatJur$
EmpReg   = Emp_Inf_NumReg$

'indicacao do destinatario do documento
Ct       = Cta_Mst_Ct$
Nome     = VarAlt$("ENC_MST","Cta_Mst_Nome$")
Morada   = VarAlt$("Enc_Mst","Cta_Ang_Morada$")
Local    = VarAlt$("ENC_MST","Cta_Ang_Local$")
Cpost    = VarAlt$("ENC_MST","Cta_Ang_Cpost$")
Ctrb     = VarAlt$("ENC_MST","Cta_Mst_Ctrb$")

'documentos parciais
'DocIde   = Enc_Mst_Tdoc$+" "+FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocIde   = Enc_Mst_Descr$
DocTot   = FrmMoe$("",15,Enc_Mst_ValTot)
DocPag   = FrmMoe$("",15,EncValCon("RCB_VREC"))
DocPend  = FrmMoe$("",15,EncValCon("RCB_VPEN"))

CtTot    = EncValCon("RCB_CTOT")
NumChq   = EncValCon("RCB_NCHQ")

MoedaExt = "Valores em Euro :"
EDocTot  = FrmVal$(MoeCnv("N",Enc_Mst_ValTot,Enc_Mst_Moeda,2),21,13.2)
EDocPag  = FrmVal$(MoeCnv("N",EncValCon("RCB_VREC"),Enc_Mst_Moeda,2),21,13.2)
EDocPend = FrmVal$(Moecnv("N",EncValCon("RCB_VPEN"),Enc_Mst_Moeda,2),21,13.2)

Abv1     = EmpTabCon$("MOEDA",Emp_Inf_Moeda,"ABRV")
Abv2     = "Eur"

'totais do documento
TotDoc   = FrmMoe$("",15,Ado_Tot_Val)
TotDesco = FrmMoe$("",15,Ado_Tot_Desco)
TotGer   = FrmMoe$("",15,Ado_Tot_Tot)

ETotDoc   = ETotDoc$
ETotDesco = ETotDesco$
ETotGer   = ETotGer$

'informacoes sobre o documento
DocNome   = Doc_Ide_Nome$
'DocNome   = Doc_Ide_Sdoc$

DocNum    = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)

DocVia    = Doc_Ide_Via$
DocDtl    = FrmVal$(Doc_Ide_Dtl,44,0)
DocDtv    = FrmVal$(Doc_Ide_Dtv,44,0)

DocRcNum  = DocRcNum$
DocRcDtl  = DocRcDtl$
DocRcDtv  = DocRcDtv$

'Linhas texto livre
LinInf1   = LinInf1$
LinInf2   = LinInf2$
LinInf3   = LinInf3$

'recolha por artigo
LinArt2    = Stc_Mst_Art$+" "+EncArtIde$("")
LinOpcCor  = TxIde$(Enc_Mov_Opc$,"COR")   
ArtIde     = EncArtIde$("")
LinNome    = Stc_Mst_Nome1$
LinQu      = StcQuFrm$(Doc_Art_Qu,8,"")
LinUni     = Stc_Mst_Unid$
LinDesco   = Enc_Mov_Desco$
LinMedTx   = Enc_Mov_MedTxt$

LinPrc     = FrmMoe$("",14,Doc_Art_Prc)
LinLiq     = FrmMoe$("",14,Doc_Art_Liq)
LinTxl     = Enc_Mov_Div$


'= Resumo de valores ==========================================================
'preparar variaveis do tipo dos recibos
vaRcbTip     = vuRcbTip$                                    'tipo dos recibos
vaRcbTipOk   = vuRcbTipOk                                   'tipo dos recibos - validade


'variaveis do documento
vaRcbDocTdo  = vuRcbDocTdo$                                 'tipo de documento
vaRcbDocNdo  = vuRcbDocNdo$                                 'numero de documento
vaRcbDocNdv  = FrmNdo$("",vuRcbDocTdo$,vuRcbDocNdo$)        'numero de documento - formatado
vaRcbDocExi  = vuRcbDocExi                                  'validade do documento
vaRcbDocNcp  = vuRcbDocNcp                                  'numero de componentes
vaRcbDocVto  = FrmMoe$("",14,vuRcbDocVto)                   'valor total
vaRcbDocDsv  = FrmMoe$("",14,vuRcbDocDsv)                   'desconto - valor
vaRcbDocDsp  = FrmNum$(3.2,vuRcbDocDsp)+"%"                 'desconto - percentagem


'variaveis do componente
vaRcbCmpTdo  = vuRcbCmpTdo$                                 'tipo de documento
vaRcbCmpNdo  = vuRcbCmpNdo$                                 'numero de documento
vaRcbCmpNdv  = FrmNdo$("",vuRcbCmpTdo$,vuRcbCmpNdo$)        'numero de documento - formatado
vaRcbCmpTpv  = vuRcbCmpTpv$                                 'tipo de valor
vaRcbCmpMre  = vuRcbCmpMre$                                 'modo de recolha
vaRcbCmpVto  = FrmMoe$("",14,vuRcbCmpVto)                   'valor total
vaRcbCmpVre  = FrmMoe$("",14,vuRcbCmpVre)                   'valor recebido
vaRcbCmpPro  = FrmNum$(1.3,vuRcbCmpPro)                     'proporcao
vaRcbCmpPrp  = FrmNum$(4.2,vuRcbCmpPro*100)+"%"             'proporcao em %

vaRcbCmpIsn  = vuRcbCmpIsn                                  'isencoes - numero
vaRcbCmpIse  = vuRcbCmpIse$                                 'isencoes - identificadores

'variaveis do resumo do IVA
vaRcbResTip  = vuRcbResTip$                                 'tipo de resumo
vaRcbResNrg  = vuRcbResNrg                                  'numero de registos

'variaveis dos valores de IVA
vaRcbIvaIdx  = vuRcbIvaIdx                                  'indice
vaRcbIvaIde  = vuRcbIvaIde$                                 'identificador
vaRcbIvaTip  = vuRcbIvaTip$                                 'tipo de IVA
vaRcbIvaCod  = vuRcbIvaCod$                                 'codigo de IVA
vaRcbIvaTax  = FrmNum$(2.0,vuRcbIvaTax)                     'taxa de IVA
vaRcbIvaPro  = FrmMoe$("",14,vuRcbIvaPro)                   'proporcao
vaRcbIvaPrp  = FrmNum$(4.2,vuRcbIvaPro*100)+"%"             'proporcao em %

vaRcbIvaBasT = FrmMoe$("",14,vuRcbIvaBasT)                  'valor base - total
vaRcbIvaBasP = FrmMoe$("",14,vuRcbIvaBasP)                  'valor base - proporcional

vaRcbIvaIncT = FrmMoe$("",14,vuRcbIvaIncT)                  'valor de incidencia - total
vaRcbIvaIncP = FrmMoe$("",14,vuRcbIvaIncP)                  'valor de incidencia - proporcional

vaRcbIvaIvaT = FrmMoe$("",14,vuRcbIvaIvaT)                  'valor de IVA - total
vaRcbIvaIvaP = FrmMoe$("",14,vuRcbIvaIvaP)                  'valor de IVA - proporcional

vaRcbIvaTotT = FrmMoe$("",14,vuRcbIvaTotT)                  'valor total - total
vaRcbIvaTotP = FrmMoe$("",14,vuRcbIvaTotP)                  'valor total - proporcional

vaRcbIvaIse  = vuRcbIvaIse$                                 'isencoes - identificadores
vaRcbIvaIsn  = vuRcbIvaIsn                                  'isencoes - numero de repeticaoes


'variaveis para listar
RcTdo    = vuRcbCmpTdo$                                     'tipo de documento
RcNdv    = FrmNdo$("",vuRcbCmpTdo$,vuRcbCmpNdo$)            'numero de documento - formatado
RcCpVto  = FrmMoe$("",14,vuRcbCmpVto)                       'valor total
RcCpVre  = FrmMoe$("",14,vuRcbCmpVre)                       'valor recebido

RcIse    = vuRcbIvaIse$                                     'isencoes - identificadores
RcTax    = FrmNum$(2.0,vuRcbIvaTax)+" %"                    'taxa de IVA
RcIvBas  = FrmMoe$("",14,vuRcbIvaBasP)                      'valor base
RcIvInc  = FrmMoe$("",14,vuRcbIvaIncP)                      'valor incidencia
RcIvIva  = FrmMoe$("",14,vuRcbIvaIvaP)                      'valor de IVA

usaDisIva = 0
##


'==============================================================================
#INC - Inclusao de funcionalidades
'==============================================================================
Variaveis para certificacao       =[SIG_DOC_DIR.ENC],EncDocCer_Var.inc
##


'==============================================================================
#SEQ - Sequencias para recolha de artigos
'==============================================================================
'------------------------------------------------------------------------------
'#NOR - Tipo Normal
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=NOR
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA

'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
'Campo opcional              [E]=OPC Var$,Descricao,Tipo(A/N)+Dig
Quantidade                   [E]=QU; ESC:LPL
'Quantidade 2                [E]=QU2
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA

'Funcao e Mensagem (MsgBox)   [E]=FxExe UtzMsgBox
'Funcao e Mensagem (Sbar)     [E]=FxExe UtzMsgSbar
'Mensagem em MsgBox           [E]=MsgBox "",Titulo,Linha1|Linha2
'Mensagem em Status Bar       [E]=MsgSbar 1,Msg painel 1
'Esperar (segundos)           [E]=EspSeg 2

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#COR - Linha com campos opcionais 
'------------------------------------------------------------------------------
' Deficinao de Campos opcionais  ex:Cor

' linha para sequencia                     [E]=OPC Var$,Descricao,Tipo(A/N)+Dig
'               Campo opcional Cor         [E]=OPC COR,Cor escolhida,A15

' definir a linha no cabecalho do documento e no documento com o nome "COR"
'
' Indicar no artigo o tipo de linha da identificacao de sequencia 
' neste caso "COR"
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=COR
Codigos validos            [ID1]=*
Codigos invalidos          [ID0]=PORTE,MOBRA
'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha aautomatica          [E]=RAUTO
Campo opcional 1             [E]=OPC COR,Cor,A15
Campo opcional 2             [E]=OPC XYZ,Opcao XYZ,A5
Quantidade                   [E]=QU; ESC:LPL
Quantidade 2                 [E]=QU2
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
'Campo opcional 1            [E]=OPC 1
Quantidade                   [E]=QU
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#PMO - Tipo Valor total (portes e Mao de obra)
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=PMO
Codigos validos            [ID1]=PORTE,MOBRA
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA
Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

Inicio de alteracao    [E,ALT  ]=ALT
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#MED - Tipo Medidas
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=MED
Codigos validos            [ID1]=MED
Codigos invalidos          [ID0]=

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha automatica           [E]=RAUTO
Quantidade                   [E]=QU
Medidas (altera se nulo)     [E]=MED
'Medidas (forca alteracao)    [E]=MED ALT
'Esperar (segundos)           [E]=EspSeg 2
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA
Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

Inicio de alteracao    [E,ALT  ]=ALT
Medidas (forca alteracao)    [E]=MED ALT
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#TXL - Tipo Texto livre
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=TXL
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec:RTX; Alt:RTX; Cor:RTX

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Texto                  [E,RTX  ]=TXL
Recolha automatica           [E]=RAUTO
Confirmar linha              [E]=CFL; CF2:RTX, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#IDE - Linha artigo com nome livre 
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=IDE
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha aautomatica          [E]=RAUTO
Campo opcional 1             [E]=OPC OPCIDE,Nome,A30
Quantidade                   [E]=QU; ESC:LPL
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM


'------------------------------------------------------------------------------
'#DM - Linha artigo tipo documento manual
'------------------------------------------------------------------------------
Identificacao de sequencia [IDS]=DM
Codigos validos            [ID1]=
Codigos invalidos          [ID0]=
'Modos de uso               [IDM]=Rec,Cor

Funcao : Recolha       [FX,REC ]=REC; EXE
Funcao : Corrigir      [FX,COR ]=COR; EXE
Funcao : Executar      [FX,EXE ]=*
Recolha aautomatica          [E]=RAUTO
Campo opcional 1             [E]=OPC OPCIDE,Documento,A25
'Quantidade                   [E]=QU; ESC:LPL
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA

Total                  [E,TOT  ]=TOT
Confirmar linha              [E]=CFL; CF2:ALT, ESC:LPL
Registar                     [E]=REG
Fim de sequencia             [E]=FIM

'alterar dados
Inicio de alteracao    [E,ALT  ]=ALT
Quantidade                   [E]=QU
Preco                        [E]=PRC
Desconto                     [E]=DES
Iva                          [E]=IVA; TOT

'anulacao
Limpar linha           [E,LPL  ]=LPL
Fim de sequencia             [E]=FIM
##


'==============================================================================
'- Recolha do Cabecalho do documento ------------------------------------------
'==============================================================================
'==============================================================================
#PAGDEF - Definicao de paginas
'==============================================================================
Pagina inicial      [PagIni]=1
Campo inicial       [CmpIni]=2
##


'==============================================================================
#PAG  Dados para Documento    'Definicao da pagina 
'==============================================================================
'mo asp x   y  identificacao      di  variavel                            frm   dv ope
30,-10, 20, 50,"Conta          " ,100,Cta_Mst_Ct$                         ,30.0,250
31, 10, 20, 80,"Nome           " ,100,VarAlt$("ENC_MST","Cta_Mst_Nome$")  ,30.0,250
31, 10, 20,110,"Morada         " ,100,VarAlt$("ENC_MST","Cta_Ang_Morada$"),30.0,250
31, 10, 20,140,"Localidade     " ,100,VarAlt$("ENC_MST","Cta_Ang_Local$") ,30.0,250
31, 10, 20,170,"Codigo Postal  " ,100,VarAlt$("ENC_MST","Cta_Ang_Cpost$") ,30.0,250
31, 10, 20,200,"Informação Livre",100,TxIde$(Enc_Mst_Opc$,"INF1")         ,30.0,250
31, 10, 20,230,"Informação Livre",100,TxIde$(Enc_Mst_Opc$,"INF2")         ,30.0,250
31, 10, 20,260,"Informação Livre",100,TxIde$(Enc_Mst_Opc$,"INF3")         ,30.0,250
##

'30, 10,430,100,100,  8.0,"Texto   : ",150,Variavel,Ope
' |   |  |   |   |    |      |          |    |       |
' |   |  |   |   |    |      |          |    |       +--> Opcao especial
' |   |  |   |   |    |      |          |    +----------> Variavel
' |   |  |   |   |    |      |          +---------------> Dimensao da identificacao
' |   |  |   |   |    |      +--------------------------> Texto Informativo
' |   |  |   |   |    +--------------> Formato do valor
' |   |  |   |   +-------------------> Dimensao
' |   |  |   +-----------------------> Coluna
' |   |  +---------------------------> Linha
' |   +------------------------------> Tipo de valor/Aspecto
' +----------------------------------> Controlo de recolha
'
'1o parametro - modo/controlo de recolha (<0 nao pode alterar)
'2o parametro - tipo dos dados/aspecto
'3o parametro - linha
'4o parametro - coluna
'5o parametro - dimensao da identificacao
'6o parametro - formato do valor (inteiros.decimais)
'7o parametro - texto informativo
'8o parametro - variavel
'
'Controlo de recolha : 1x - Pode modificar para registo novo
'                      2x - Pode modificar para alteracao de registo
'                      3x - Igual a 1x+2x
'                      ?0 - Nao cria variavel
'                      ?1 - Cria variavel
'
'Notas : O campo 'Opcao especial' e opcional


'==============================================================================
#PGM - Funcoes para impressao do documento
'==============================================================================
'------------------------------------------------------------------------------
'Inicializacao do documento
'------------------------------------------------------------------------------
SUB FxIni 'funcao de inicializacao
'modo WIN
PrWIN AJT_F, 56.7,  56.7                                'ajuste para milimetros
PrWIN AJT_D,-280.0,-280.0                               'deslocamento de ajuste 
PrWIN IMG_F, 1, VarTx$("[SIG_DIR.DIV],DocLogo.bmp","R") 'imagem (logotipo)
PrWIN ET,  2                                            'espessura de traco 
end sub


SUB FxFim 'funcao de finalizacao
PrWIN FON, "REG"                                        'limpar registo de fontes
end sub


'-----------------------------------------------------------------------------
' Funcoes para impressao do documento
'-----------------------------------------------------------------------------
SUB DocCabIni
DocRcNum$ = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)
DocRcDtl$ = FrmVal$(Doc_Ide_Dtl,44,0)
DocRcDtv$ = FrmVal$(Doc_Ide_Dtv,44,0)

LinInf1$  = TxIde$(Enc_Mst_Opc$,"INF1")
LinInf2$  = TxIde$(Enc_Mst_Opc$,"INF2")
LinInf3$  = TxIde$(Enc_Mst_Opc$,"INF3")

'ListarMoeda2=1

'definicao de moedas
Moeda1 = Enc_Mst_Moeda            'moeda principal
Moeda2 = 98                       'moeda secundaria - EURO
Moeda2 = Moeda1                   'nao faz contravalor

MargemD    = 190 
Margem    = 8
Fimdoc    = 230
FimAjtExt = 0

if moeda2=moeda1 then
  FimDoc=250
  FimAjtExt = 15
end if

call NatRec                       'natureza recibo
if usaDisIva = 1 then             'usar IVA discriminado ?
   call DisIva_Prp                'preparar discriminacao de IVA
end if
end sub


SUB NatRec 'determinar natureza recibo
'RC - recibo caixa
'RG - recibo geral

CerNatChv$ = EncDocCer$("TDO.TSA.COD",Enc_Mst_Tdoc$)    'natureza - codigo
if CerNatChv$="RC" then                                 'codigo natureza
   usaDisIva = 1                                        'discrimina IVA
else
   usaDisIva = 0                                        'nao discrimina IVA
end if
end sub


'-----------------------------------------------------------------------------
' Cabecalho do documento
'-----------------------------------------------------------------------------
SUB DocCab 'cabecalho do documento

if Doc_CntPag = 1 then                          'primeira pagina da via ?
   cmpIdx = 0                                   'inicializar indice de componentes
end if

CerDocAnuAsp = 1                                'aspecto para documento anulado
call DocCerVarPrp                               'preparar variaveis referentes a certificacao

'listar
PrWin PAG_PRP                                   'preparar pagina
call DocCerLisAnu                               'listar informacao de anulado

'PrWIN COR_F, 15                                 'cor de fundo 
PrWIN AJT_B,  Margem, 10.0                      'posicao base

PrWIN IMG_V,1, 2, 2, 50, 20                     'imagem (logotipo)
PrWIN FON, 18, 1                             	'activar fonte
PrWin FON, "BOLD+"                              'activar bold
PrWIN TX_N, 55, 10,@EmpNome                     'nome da empresa  
PrWin FON, "BOLD-"                              'desactivar bold

'PrWIN GR_CX,  2, 25, 80, 75, 2                  'caixa da morada da empresa
PrWIN FON, 10, 1                                'activar fonte
PrWIN TX_N, 10, 28,@EmpNome                     'nome 
PrWIN TX_N, 10, 33,@EmpMorada                   'morada
PrWIN TX_N, 10, 38,@EmpLocal                    'localidade
PrWIN TX_N, 10, 43,@EmpCpost                    'codigo postal
PrWIN TX_N, 10, 48,"Telefone:"                  'telefone - titulo
PrWIN TX_N, 31, 48,@EmpTel                      'telefone 
PrWIN TX_N, 10, 53,"Telefax:"                   'fax - titulo 
PrWIN TX_N, 31, 53,@EmpFax                      'fax

'PrWIN GR_CX,  2, 65, 80, 80, 2                  'caixa dos dados da empresa
PrWIN TX_N, 10, 58,"Contribuinte:"              'contribuinte - titulo 
PrWIN TX_N, 31, 58,@EmpCtrb                     'contribuinte
PrWIN TX_N, 10, 63,@EmpTps                      'tipo de sociedade
PrWIN TX_N, 10, 68,@EmpReg                      'registo conservatoria

'PrWIN AJT_B, 95, 25                             'posicao base
PrWIN GR_CX, 85, 25, 190, 70, 2                 'caixa da morada do cliente
PrWIN TX_N, 100, 35,"Exmo(s). Snr(s).:"         'titulo
PrWIN TX_N, 100, 45,@Nome                       'nome
PrWIN TX_N, 100, 50,@Morada                     'morada
PrWIN TX_N, 100, 55,@Local                      'localidade
PrWIN TX_N, 100, 60,@Cpost                      'codigo postal 

PrWIN AJT_B, Margem, 85                         'posicao base
'PrWIN GR_CX,  2,  5, 80, 25, 2                  'caixa dos dados do cliente
PrWIN TX_N, 10,  08,"Data :"                    'data do documento - titulo
PrWIN TX_N, 30,  08,@DocRcDtl                   'data do documento
PrWIN TX_N, 10,  13,"Conta :"                   'conta - titulo
PrWIN TX_N, 30,  13,@Ct                         'conta
PrWIN TX_N, 10,  18,"V/ Ctrb. :"                'contribuinte . titulo
PrWIN TX_N, 30,  18,@Ctrb                       'contribuinte 

PrWIN FON, 20, 1                             	'activar fonte
PrWIN TX_N, 100,   0,@DocNome                   'nome do documento 

PrWIN FON, 10, 1                             	'activar fonte
PrWIN TX_N, 100,  10,"NUMERO :"                 'numero documento - titulo
PrWIN TX_N, 130,  10,@DocRcNum                  'numero documento 
PrWIN TX_N, 100,  15,"VIA :"                    'via - titulo
PrWIN TX_N, 130,  15,@DocVia                    'via

if UsaDisIva = 1 then
   PrWIN TX_N, 100,  20,"TIPO :"                'tipo - titulo
   PrWIN TX_N, 130,  20,"IC - Regime de Caixa"  'tipo 
end if


'=================================================================== titulos das linhas da factura
PosIdeLin=115
PrWIN AJT_B, Margem, PosIdeLin                           'posicao base
PrWIN COR_E, 200, 200, 200                               'Cor de enchimento RGB
PrWIN GR_ME, 0                                           'modo de enchimento

PrWIN GR_CE,  2,  0, MargemD,  08, 2           	         'caixa do cabecalho

'posicao das colunas
espVl=35                                                 'espaco para valor
AltQ=8                                                   'altura da caixa

Col1=3                                                   'documento
Col2=  40+espVl                                          'valor
Col3=Col2+espVl                                          'valor pago
Col4=Col3+espVl                                          'valor pendente
Col5=Col4+espVl                                          'coluna maxima
Col6=25                                                  'documento

PrWIN GR_CE,  0,  0, MargemD,  Altq, 2        	         'caixa do cabecalho

PrWIN FON, 10, 1                             	         'activar fonte

if usaDisIva = 1 then
   PrWin FON, "BOLD+"                                    'desactivar bold
   PrWIN TX_CTR, Col1,-3, Col6, Altq,"Documento"         'texto centrado
   PrWIN TX_CTR, Col2,-3, Col3, Altq,"Valor"             'texto centrado
   PrWIN TX_CTR, Col3,-3, Col4, Altq,"Valor Pago"        'texto centrado
   PrWIN TX_CTR, Col4,-3, Col5, Altq,"Valor Pendente"    'texto centrado

   PrWin FON, "BOLD-"                                          'desactivar bold
   PrWIN FON,  8, 1                           	               'activar fonte
   PrWIN TX_CTR, Col1+4,4.5, Col6  ,Altq,"Motivo Isenção/Taxa" 'texto centrado
   PrWIN TX_CTR, Col2  ,4.5, Col3-2,Altq,"Base/Incidência"     'texto centrado
   PrWIN TX_CTR, Col3  ,4.5, Col4+4,Altq,"IC"                  'texto centrado
   PrWIN FON, 10, 1                            	               'activar fonte
else
   PrWin FON, "BOLD+"                                    'activar bold
   PrWIN TX_CTR, Col1, 0, Col2, Altq,"Documento"         'texto centrado
   PrWIN TX_CTR, Col2, 0, Col3, Altq,"Valor"             'texto centrado
   PrWIN TX_CTR, Col3, 0, Col4, Altq,"Valor Pago"        'texto centrado
   PrWIN TX_CTR, Col4, 0, Col5, Altq,"Valor Pendente"    'texto centrado
   PrWin FON, "BOLD-"                                    'desactivar bold
end if

PrWIN FON, 10, 1                             	         'activar fonte
'PrWin FON, "BOLD-"                                       'desactivar bold

PrWIN GR_CX,  0,  0, MargemD ,Fimdoc-PosIdeLin-5,2       'caixa do corpo da factura
end sub


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
Sub DocLinPos 'posicionar em linha
PrWIN AJT_B,   Margem, 120+Doc_CntLin*5         'posicao base
End Sub


SUB DocLinDoc 'linha de documento
Call DocLinPos

if usaDisIva = 1 then                           'usar IVA discriminado ?
   PrWin FON, "BOLD+"                           'activar bold
   PrWIN TX_N,   Col1,  0,@DocIde
   PrWIN TX_NP,  Col2,  0,"N",@DocTot
   PrWIN TX_NP,  Col3,  0,"N",@DocPag
   PrWIN TX_NP,  Col4,  0,"N",@DocPend
   PrWin FON, "BOLD-"                           'desactivar bold
else
   PrWIN TX_N,   Col1,  0,@DocIde
   PrWIN TX_NP,  Col2,  0,"N",@DocTot
   PrWIN TX_NP,  Col3,  0,"N",@DocPag
   PrWIN TX_NP,  Col4,  0,"N",@DocPend
end if

call DocLinDocMoeda2

if usaDisIva = 1 then                           'usar IVA discriminado ?
   PrWIN AJT_B,   Margem, 125+Doc_CntLin*5      'posicao base
   call DisIva_Cmp                              'discriminar IVA do componente
end if
end sub


SUB DocLinNor 'linha de documento
Call DocLinPos
PrWIN TX_N,   Col1-5,  0,@LinArt2
PrWIN TX_NP,  Col2,  0,"N",@LinLiq
PrWIN TX_NP,  Col3,  0,"N",@LinLiq
call DocLinDocMoeda2
end sub


SUB DocLinDm 'linha de documento
Call DocLinPos
PrWIN TX_N,   Col1,  0,@ArtIde
PrWIN TX_NP,  Col2,  0,"N",@LinLiq
PrWIN TX_NP,  Col3,  0,"N",@LinLiq
call DocLinDocMoeda2
end sub


SUB DocLinDocMoeda2 'valores na moeda 2
if ListarMoeda2=1 then
   PrWIN COR_T,   CorTit                           'cor azul

   tmp=CntLin("INC",1)                             'incrementar contador linhas
   Call DocLinPos                                  'posicionar linha
   PrWIN  TX_N, Col1+10,  0,    @MoedaExt
   PrWIN TX_NP,  Col2,  0,"N",@EDocTot
   PrWIN TX_NP,  Col3,  0,"N",@EDocPag
   PrWIN TX_NP,  Col4,  0,"N",@EDocPend
   PrWIN COR_T,   0                                'cor preta
end if
End sub


SUB DocLinTxl 'artigos tipo texto livre
Call DocLinPos
PrWIN TX_N,    4,  0,@LinTxl
end sub


SUB DocLinAjt 'ajuste de linhas
 
end sub


'-----------------------------------------------------------------------------
' Final do Documento
'-----------------------------------------------------------------------------
SUB DocFimAjt  'ajuste de fim de pagina
PrWIN FP                                           'fim de pagina
end sub


SUB DocFim     'final do documento
PrWIN AJT_B,   Margem, FimDoc                      'posicao base
cmax=MargemD                                       'maximo colunas

PrWIN GR_CX,   0,   0, MargemD,  47-FimAjtExt, 2   'caixa de totais
ln=32

'============================================ Linhas de informacao livre ====
PrWIN AJT_B,  15, FimDoc+5
PrWIN  TX_N,  0, 0, @LinInf1
PrWIN  TX_N,  0, 5, @LinInf2
PrWIN  TX_N,  0,10, @LinInf3

'================================================ Totais do documento =======
cl=115
PrWIN AJT_B,  Cl, FimDoc+3
L1=0
L2=5
L3=9
L4=16
PrWin FON, "BOLD+"                                    'activar bold
PrWIN TX_N, 5, 0,EmpTabCon$("MOEDA", Moeda1, "ABRV")
PrWIN TX_N, 20, L1,"Iliquido"
PrWIN TX_N, 20, L2,"Desconto"
PrWIN TX_N, 20, L3,"Total"
PrWin FON, "BOLD-"                                    'desactivar bold
PrWIN TX_NP, 50, L1,"N",@TotDoc
PrWIN TX_NP, 50, L2,"N",@TotDesco
PrWIN TX_NP, 50, L3,"N",@TotGer

'Valores Euro
if moeda2<>moeda1 then
   ETotDoc$   = FrmVal$(MoeCnv("N",Ado_Tot_Val,Moeda1,Moeda2),21,13.2)
   ETotDesco$ = FrmVal$(MoeCnv("N",Ado_Tot_Desco,Moeda1,Moeda2),21,13.2)
   ETotGer$   = FrmVal$(MoeCnv("N",Ado_Tot_Tot,Moeda1,Moeda2),21,13.2)

   PrWIN GR_LI,   0,  L4, 83,  l4, 2           	     'separador horizontal dos valores
   PrWIN AJT_B,  cl, FimDoc+20
   PrWin FON, "BOLD+"                                'activar bold
   PrWIN TX_N, 5, 0,EmpTabCon$("MOEDA", Moeda2, "ABRV")
   PrWIN TX_N, 20, L1,"Iliquido"
   PrWIN TX_N, 20, L2,"Desconto"
   PrWIN TX_N, 20, L3,"Total"
   PrWin FON, "BOLD-"                                'desactivar bold
   PrWIN TX_NP, 50, L1,"N",@ETotDoc
   PrWIN TX_NP, 50, L2,"N",@ETotDesco
   PrWIN TX_NP, 50, L3,"N",@ETotGer
end if

' ================================================== Extensos ==============
PrWIN AJT_B,  Margem, FimDoc+35-FimAjtExt            'posicao base
PrWIN GR_LI,   0,  0, MargemD,  0, 2           	     'separador horizontal dos valores
Lin1=1
Lin2=6
Lin3=13

PrWin FON, "BOLD+"                                                                  'activar bold
PrWIN TX_N,  2, Lin1,"Extenso :"
PrWin FON, "BOLD-"                                                                  'desactivar bold
ExtNl=NumExtPrp("85,100","=")                                                       'preparar extenso escudos
PrWIN TX_N,  18, Lin1,NumExt$(1,Ado_Tot_Tot,EmpTabCon$("MOEDA", Moeda1, "ABRV"),3)  'linha extenso
PrWIN TX_N,  18, Lin2,NumExt$(2)                                                    'linha extenso

PrWIN FON, 7, 1                                                                     'activar fonte
PrWIN TX_N,  0, Lin3,SigLstInf$("PERSON")
PrWin FON, 8, 1
PrWIN TX_N, 140, Lin3,"PROCESSADO POR COMPUTADOR

PrWIN FP                                             'fim de pagina
end sub


SUB DocIvaLinFimDis   'linha final com IVA discriminado
call DocLinPos                                           'posicionar 
tmp = CntLin("INC", 1)                                   'contar linhas

AltQ=8                                                   'altura
   
PrWIN COR_E, 200, 200, 200                               'cor de enchimento RGB
PrWIN GR_ME, 0                                           'modo de enchimento

PrWIN GR_CE,  0,  0, MargemD-0.2,  5, 2                  'caixa do sub-titulo
PrWIN GR_CE,  0,  5, MargemD-0.2, 10, 2       	         'caixa do sub-titulo

'PrWIN GR_CX,   0,   0, MargemD,  40-FimAjtExt, 2       	 'caixa de totais
'PrWIN GR_CX,   0,   5, MargemD,  40-FimAjtExt, 2       	 'caixa de totais

PrWin FON, "BOLD+"                                       'desactivar bold
PrWIN TX_CTR, Col1, -3, Col5,Altq,"Resumo do IC"         'texto centrado
PrWin FON, "BOLD-"                                       'desactivar bold
  
PrWIN GR_CX , 0,10,MargemD,  55-FimAjtExt, 1             'caixa de totais
PrWIN TX_CTR,Col1-25,6,Col2-8,Altq+1.5,"Taxa"            'texto centrado
PrWIN TX_CTR,Col2-1 ,6,Col3  ,Altq+1.5,"Base/Incidência" 'texto centrado
PrWIN TX_CTR,Col3+12,6,Col4  ,Altq+1.5,"IC"              'texto centrado
PrWin FON, "BOLD-"                                       'desactivar bold

call DisIva_Tot                                          'discriminar IVA do total
end sub


Sub DisIva_Tot 'discriminar IVA do total
nrt = EncRcbIvaRes("TOT")                         'preparar tipo de valores do IVA (resumo total, devolve numero de registos de resumo)
call PrpIvaVar_Res                                'preparar variaveis do resumo do IVA

for rgt = 1 to nrt
   res = EncRcbIvaCon(rgt)                        'preparar/consultar valores a usar (devolve validade do indice)
   call PrpIvaVar_Iva                             'preparar variaveis dos valores de IVA

   tmp=CntLin("INC",1)                            'incrementar contador linhas
   call DocLinPos                                 'posicionar linha

   PrWIN TX_N, Col1  , ps1,@RcIse                 'motivo isencao
   PrWIN TX_N, Col1+9, ps1,@RcTax                 'taxa
   PrWIN TX_NP,Col2  , ps1,"N",@RcIvInc           'incidencia
   PrWIN TX_NP,Col3  , ps1,"N",@RcIvIva           'iva
next
end sub


'-----------------------------------------------------------------------------
'- Discriminar resumo de valores de IVA --------------------------------------
'-----------------------------------------------------------------------------
Sub DisIva_Prp 'preparar discriminacao de IVA
tdo$ = ENC_Mst_Tdoc$                               'diario dos recibos
ndo$ = ENC_Mst_Ndoc$                               'numero de documento do recibo

ncp  = EncRcbPrpDoc(tdo$, ndo$)                    'preparar documento (devolve numero de componentes)
call PrpIvaVar_Doc                                 'preparar variaveis do documento
cmpIdx = 0                                         'inicializar indice de componentes

res = EncDocLer(tdo$, ndo$)                        'repor documento
end sub


Sub DisIva_Cmp 'discriminar IVA do componente
cmpIdx = cmpIdx + 1                                'actualizar indice do componente
res = EncRcbPrpCmp(cmpIdx)                         'preparar valores do componente devolve validade do indice)

call PrpIvaVar_Cmp                                 'preparar variaveis do componente

'IVA do componente do documento
'tpv$ = "DOC"                                      'resumo do documento (componente)
'tpv$ = "ISE"                                      'resumo do documento + isencoes discriminadas (componente)

nrg = EncRcbIvaRes("ISE", cmpIdx)                  'preparar tipo de valores do IVA (devolve numero de registos de resumo)
call PrpIvaVar_Res                                 'preparar variaveis do resumo do IVA

for rgi = 1 to nrg
res = EncRcbIvaCon(rgi)                            'preparar/consultar valores a usar (devolve validade do indice)
call PrpIvaVar_Iva                                 'preparar variaveis dos valores de IVA

tmp=CntLin("INC",1)                                'incrementar contador linhas
Call DocLinPos                                     'posicionar linha

PrWIN TX_N,   Col1,    0,@RcIse                    'motivo isencao
PrWIN TX_N,   Col1+9,  0,@RcTax                    'taxa  
PrWIN TX_NP,  Col2+1,  0,"N",@RcIvInc              'incidencia
PrWIN TX_NP,  Col3+1,  0,"N",@RcIvIva              'iva
next

tmp=CntLin("INC",1)                                'incrementar contador linhas
end sub


'= exemplo de funcionalidades =========================================================================
Sub IvaDis 'discriminar 
tip$ = "ENC"                                       'tipo dos recibos
res = EncRcbPrpTip(tip$)                           'preparar tipo dos recibos (devolve validade, so e necessario para EMD)
call PrpIvaVar_Tip                                 'preparar variaveis do tipo dos recibos

tdo$ = ENC_Mst_Tdoc$                               'diario dos recibos
ndo$ = ENC_Mst_Ndoc$                               'numero de documento do recibo
ncp = EncRcbPrpDoc(tdo$, ndo$)                     'preparar documento (devolve numero de componentes)
'NOTA: Apos a chamada desta funcao os valores do recibo sao alterados

call PrpIvaVar_Doc                                 'preparar variaveis do documento

for cmp = 1 to ncp
res = EncRcbPrpCmp(cmp)                            'preparar valores do componente (devolve validade do indice)
call PrpIvaVar_Cmp                                 'preparar variaveis do componente
'call ListarCmp                                     'listar componente do documento
next

'IVA do componente do documento
'tpv$ = "DOC"                                      'resumo do documento (componente)
'tpv$ = "ISE"                                      'resumo do documento + isencoes discriminadas (componente)
'tpv$ = "TOT"                                      'resumo do total (recibo)
idx = 1                                            'indice para componente (nao e necessario para tipo TOT)

nrg = EncRcbIvaRes("ISE", idx)                     'preparar tipo de valores do IVA (devolve numero de registos de resumo)
call PrpIvaVar_Res                                 'preparar variaveis do resumo do IVA

for rgi = 1 to nrg
res = EncRcbIvaCon(rgi)                            'preparar/consultar valores a usar (devolve validade do indice)
call PrpIvaVar_Iva                                 'preparar variaveis dos valores de IVA

call ListarIvaCmp                                  'listar IVA do componente do documento
next

'totais de IVA
'nrt = EncRcbIvaRes("TOT")                          'preparar tipo de valores do IVA (resumo total, devolve numero de registos de resumo)
'call PrpIvaVar_Res                                 'preparar variaveis do resumo do IVA

'for rgt = 1 to nrt
'res = EncRcbIvaCon(rgt)                            'preparar/consultar valores a usar (devolve validade do indice)
'call PrpIvaVar_Iva                                 'preparar variaveis dos valores de IVA

'call ListarIvaTot                                  'listar IVA do recibo
'next
end sub


Sub PrpIvaVar_Tip 'preparar variaveis do tipo dos recibos
vuRcbTip$  = VarCom$("RCB_TIP")                    'tipo dos recibos
vuRcbTipOk = VarCom("RCB_TIP_OK")                  'tipo dos recibos - validade
end sub


Sub PrpIvaVar_Doc 'preparar variaveis do documento
vuRcbDocTdo$ = VarCom$("RCB_DOC_TDO")              'tipo de documento
vuRcbDocNdo$ = VarCom$("RCB_DOC_NDO")              'numero de documento
vuRcbDocExi  = VarCom("RCB_DOC_EXI")               'validade do documento
vuRcbDocNcp  = VarCom("RCB_DOC_NCP")               'numero de componentes
vuRcbDocVto  = VarCom("RCB_DOC_VTO")               'valor total
vuRcbDocDsv  = VarCom("RCB_DOC_DSV")               'desconto - valor
vuRcbDocDsp  = VarCom("RCB_DOC_DSP")               'desconto - percentagem
end sub


Sub PrpIvaVar_Cmp 'preparar variaveis do componente
vuRcbCmpTdo$ = VarCom$("RCB_CMP_TDO")              'tipo de documento
vuRcbCmpNdo$ = VarCom$("RCB_CMP_NDO")              'numero de documento
vuRcbCmpTpv$ = VarCom$("RCB_CMP_TPV")              'tipo de valor
vuRcbCmpMre$ = VarCom$("RCB_CMP_MRE")              'modo de recolha
vuRcbCmpVto  = VarCom("RCB_CMP_VTO")               'valor total
vuRcbCmpVre  = VarCom("RCB_CMP_VRE")               'valor recebido
vuRcbCmpPro  = VarCom("RCB_CMP_PRO")               'proporcao

vuRcbCmpIsn  = VarCom("RCB_CMP_ISN")               'isencoes - numero
vuRcbCmpIse$ = VarCom$("RCB_CMP_ISE")              'isencoes - identificadores
end sub


Sub PrpIvaVar_Res 'preparar variaveis do resumo do IVA
vuRcbResTip$ = VarCom$("RCB_IVA_RES)               'tipo de resumo
vuRcbResNrg  = VarCom$("RCB_IVA_RES.N")            'numero de registos
end sub


Sub PrpIvaVar_Iva 'preparar variaveis dos valores de IVA
vuRcbIvaIdx  = VarCom("RCB_IVA_IDX")               'indice
vuRcbIvaIde$ = VarCom$("RCB_IVA_IDE")              'identificador
vuRcbIvaTip$ = VarCom$("RCB_IVA_TIP")              'tipo de IVA
vuRcbIvaCod$ = VarCom$("RCB_IVA_COD")              'codigo de IVA
vuRcbIvaTax  = VarCom("RCB_IVA_TAX")               'taxa de IVA
vuRcbIvaPro  = VarCom("RCB_IVA_PRO")               'valor proporcional

vuRcbIvaBasT = VarCom("RCB_IVA_BAST")              'valor base - total
vuRcbIvaBasP = VarCom("RCB_IVA_BASP")              'valor base - proporcional

vuRcbIvaIncT = VarCom("RCB_IVA_INCT")              'valor de incidencia - total
vuRcbIvaIncP = VarCom("RCB_IVA_INCP")              'valor de incidencia - proporcional

vuRcbIvaIvaT = VarCom("RCB_IVA_IVAT")              'valor de IVA - total
vuRcbIvaIvaP = VarCom("RCB_IVA_IVAP")              'valor de IVA - proporcional

vuRcbIvaTotT = VarCom("RCB_IVA_TOTT")              'valor total - total
vuRcbIvaTotP = VarCom("RCB_IVA_TOTP")              'valor total - proporcional

vuRcbIvaIse$ = VarCom$("RCB_IVA_ISE")              'isencoes - identificadores
vuRcbIvaIsn  = VarCom("RCB_IVA_ISN")               'isencoes - numero de repeticaoes
end sub


Sub Doc_LinIni 'inicio de linhas
'for i = 1 to 10
'tmp = CntLin("INC", 1)                          'contar linhas
'print tab(05) "Linha previa: ";
'print i
'next
end sub


Sub Doc_LinFim 'fim de linhas
tmp=CntLin("MIN",10)                            'minimo de linhas

tmp = CntLin("INC", 2)                          'contar linhas

if usaDisIva = 1 then
   call DocIvaLinFimDis
end if
end sub
##


'==============================================================================
#INC - Inclusao de funcionalidades
'==============================================================================
Funcoes para certificacao         =[SIG_DOC_DIR.ENC],EncDocCer_Pgm.inc
##
