'Nome       : Vnd_Rec.ipw
'Tipo       : LST
'Data       : 2014/02/27
'Versao     : 1.0
'Descricao  : Recibo - Modo gráfico

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   2014/02/27 --------------------------------------------------
'nova versao


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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Nome                       [DocNom]=Recibo
Vias                       [DocVia]=Original
'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

Separacao para resumo      [DocEsp]=ResSep=3
Valor XXX                  [DocEsp]=ValXxx=AAA

'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$                                                'nome empresa
EmpMorada = Emp_Inf_Morada$                                              'morada empresa 
EmpLocal  = Emp_Inf_Local$                                               'localidade empresa
EmpCpost  = Emp_Inf_Cpost$                                               'codigo postal
EmpTel    = Emp_Inf_Telef$                                               'telefone
EmpFax    = Emp_Inf_Fax$                                                 'fax
EmpCtrb   = Emp_Inf_Contrib$                                             'contribuinte
EmpTps    = Emp_Inf_NatJur$                                              'natureza juridica
EmpReg    = Emp_Inf_NumReg$                                              'numero registo conservatoria
EmpMail   = Emp_Inf_Email$                                               'mail 
EmpCapS   = FrmVal$(Emp_Inf_CapSoc,21,18.2)                              'capital social

'indicacao do destinatario do documento
Ct        = Cta_Mst_Ct$                                                  'conta
Nome      = VarAlt$("ENC_MST","Cta_Mst_Nome$")                           'nome
Morada    = VarAlt$("Enc_Mst","Cta_Ang_Morada$")                         'morada
Local     = VarAlt$("ENC_MST","Cta_Ang_Local$")                          'localidade
Cpost     = VarAlt$("ENC_MST","Cta_Ang_Cpost$")                          'codigo postal
Ctrb      = VarAlt$("ENC_MST","Cta_Mst_Ctrb$")                           'contribuinte 

'vendedor
Vend      = "("+Enc_Mst_Vend+") "+EmpTabCon$("Vend",Enc_Mst_Vend,"Nome") 'vendedor - codigo+nome

'documentos parciais
'DocIde   = Enc_Mst_Tdoc$+" "+FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)     'descricao
DocIde    = Enc_Mst_Descr$                                               'descricao
DocTot    = FrmMoe$("",15,Enc_Mst_ValTot)                                'total

DocPag    = FrmMoe$("",15,EncValCon("RCB_VREC"))                         'valor pago 
DocPend   = FrmMoe$("",15,EncValCon("RCB_VPEN"))                         'valor pendente 
CtTot     = EncValCon("RCB_CTOT")                                        'conta caixa

'NumChq    = EncValCon("RCB_NCHQ")                                        'numero cheque
'NumChq    = TxIde$(Enc_Mst_Opc$,"NCHQ")                                  'numero cheque


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

Abv1      = EmpTabCon$("MOEDA",Emp_Inf_Moeda,"ABRV")                           'moeda - abreviatura
Abv2      = "Eur"                                                              'moeda - texto

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

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

'informacoes sobre o documento
DocNome   = Doc_Ide_Nome$                                          'nome documento
'DocNome   = Doc_Ide_Sdoc$                                         'nome documento
DocNum    = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)                'numero documento

DocVia    = Doc_Ide_Via$                                           'via
DocDtl    = FrmVal$(Doc_Ide_Dtl,44,0)                              'data lancamento
DocDtv    = FrmVal$(Doc_Ide_Dtv,44,0)                              'data vencimento 

DocRcNum  = DocRcNum$                                              'numero documento incluido
DocRcDtl  = DocRcDtl$                                              'data documento incluido
DocRcDtv  = DocRcDtv$                                              'data vencimento doc. incluido

'Linhas texto livre
LinInf1   = LinInf1$                                               'texto livre 1
LinInf2   = LinInf2$                                               'texto livre 2
LinInf3   = LinInf3$                                               'texto livre 3 

'recolha por artigo
LinArt2    = Stc_Mst_Art$+" "+EncArtIde$("")                       'artigo
LinOpcCor  = TxIde$(Enc_Mov_Opc$,"COR")                            'cor 
ArtIde     = EncArtIde$("")                                        'identificacao artigo
LinNome    = Stc_Mst_Nome1$                                        'nome
LinQu      = StcQuFrm$(Doc_Art_Qu,8,"")                            'quantidade
LinUni     = Stc_Mst_Unid$                                         'unidade
LinDesco   = Enc_Mov_Desco$                                        'desconto 
LinMedTx   = Enc_Mov_MedTxt$                                       'medidas - texto 
LinPrc     = FrmMoe$("",14,Doc_Art_Prc)                            'preco
LinLiq     = FrmMoe$("",14,Doc_Art_Liq)                            'liquido
LinTxl     = Enc_Mov_Div$                                          'texto livre


'= Resumo de valores - Regime de Caixa ====================================================
'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

CerNatChv$ = ""                                             'natureza documento

'----------------------------------------------------------------------------------------------
'retencao de IRS
'----------------------------------------------------------------------------------------------
vaRetIrsIde = vuRetIrsIde$                                  'identificacao
vaRetIrsVal = vuRetIrsVal$                                  'valor
vaRetIrsRecI= vuRetIrsRecI$                                 'total a receber - identificacao
vaRetIrsRecV= vuRetIrsRecV$                                 'total a receber - valor

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
Margem = 13

'modo WIN
PrWIN AJT_F, 56.7,  56.7                   'ajuste para milimetros
PrWIN AJT_D,-280.0,-280.0                  'deslocamento de ajuste 
PrWIN ET,  2                               'espessura de traco 

'diversos
call PrpVar_Com                            'preparar variaveis comuns
end sub


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


'-----------------------------------------------------------------------------
' Funcoes para impressao do documento
'-----------------------------------------------------------------------------
SUB DocCabIni
DocRcDtSai$ = TxIde$(Enc_Mst_Opc$,"DTSAI")                                'data de saida
DocRcNum$   = FrmNdo$("",Enc_Mst_Tdoc$,Enc_Mst_Ndoc$)                     'numero documento
DocRcDtl$   = FrmVal$(Doc_Ide_Dtl,44,0)                                   'data lancamento 
DocRcDtv$   = FrmVal$(Doc_Ide_Dtv,44,0)                                   'data vencimento
DocRcDest$  = VarAlt$("ENC_MST","Cta_Ang_Local$,LocEnt$")                 'local de destino
DocRcOrg$   = VarAlt$("ENC_MST","Emp_Inf_Local$")                         'local de partida 
DocRcHrSai$ = FrmVal$(Enc_Mst_HrSai,53,0)                                 'hora de saida
DocRcViat$  = TxIde$(Enc_Mst_Opc$,"MAT")                                  'matricula

LinInf1$    = TxIde$(Enc_Mst_Opc$,"INF1")                                 'linha informacao 1
LinInf2$    = TxIde$(Enc_Mst_Opc$,"INF2")                                 'linha informacao 2
LinInf3$    = TxIde$(Enc_Mst_Opc$,"INF3")                                 'linha informacao 3

NumChq$     = TxIde$(Enc_Mst_Opc$,"NCHQ")                                 'numero do cheque

'variaveis para totais
MoedaAbv1$ = EmpTabCon$("MOEDA",Enc_Mst_Moeda,"ABRV")                     'abreviatura moeda documento
TotalAbv1$ = "Total "+EmpTabCon$("MOEDA",Moeda1,"ABRV")                   'abreviatura total moeda  
DocEurCmb$ = FrmVal$(EmpTabCon$("MOEDA",Enc_Mst_Moeda,"CMBEUR"),21,3.3)   'cambio

'Definicao de posicoes de linhas
PosIdeLin    = 110                                                        'titulos das linhas
InicioLinhas = PosIdeLin                                                  'escrita das linhas documento
FimDoc       = 230                                                        'fim do documento

dimLinY      = 3.5                                                        'dimensao das linhas (altura)

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

EcoValor   = 0                                                            'azerar variavel ecovalor
UsaPortes  = 0                                                            'azerar variavel portes

TipoRegIva = 0                                                            'usa regime de caixa ?
call UsaIvaCx                                                             'regime de iva

'definicao das moedas para valores
Moeda1    = Enc_Mst_Moeda                                                 'moeda do documento
Moeda2    = 98                                                            'moeda secundaria - EURO
Moeda2    = Moeda1                                                        'nao faz contravalor

'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$="RG" then                                 'codigo natureza
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
call DocCabFac                                         'escreve cabecalho (include)
end sub


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
Sub DocLinPos 'posicionar em linha
if usaDisIva = 1 then
   PrWIN AJT_B,   Margem, 113+Doc_CntLin*4      'posicao base
else
   PrWIN AJT_B,   Margem, 108+Doc_CntLin*4      'posicao base
end if
end sub


Sub DocLinIncPos 'posicionar em linha + contagem linha
tmp=CntLin("INC",1)                          'incrementar contador linhas
call DocLinPos                               'posicionar na linha
end sub


SUB DocLinDoc 'linha de documento
Call DocLinPos

PrWin FON, "BOLD+"                           'activar bold
PrWIN TX_N,   Co01Px+1,  0,@DocIde           'documento
PrWIN TX_NP,  Co02Px+9,  0,"N",@DocTot       'total 
PrWIN TX_NP,  Co03Px+9,  0,"N",@DocPag       'total pago
PrWIN TX_NP,  Co04Px+9,  0,"N",@DocPend      'total pendente
PrWin FON, "BOLD-"                           'desactivar bold

call DocLinDocMoeda2

if usaDisIva = 1 then                        'usar IVA discriminado ?
   call DocLinPos                            'posicao base
   call DisIva_Cmp                           'discriminar IVA do componente
end if
end sub


SUB DocLinNor 'linha de documento
Call DocLinPos
PrWIN TX_N,  Co01Px,  0,@LinArt2
PrWIN TX_NP, Co02Px,  0,"N",@LinLiq
PrWIN TX_NP, Co03Px,  0,"N",@LinLiq
call DocLinDocMoeda2
end sub


SUB DocLinDm 'linha de documento
Call DocLinPos
PrWIN TX_N,  Co01Px,  0,@ArtIde
PrWIN TX_NP, Co02Px,  0,"N",@LinLiq
PrWIN TX_NP, Co03Px,  0,"N",@LinLiq
call DocLinDocMoeda2
end sub


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

   Call DocLinIncPos                               'posicionar linha + contar 
   PrWIN TX_N, Co01Px+10,  0,    @MoedaExt         'extenso - moeda
   PrWIN TX_NP,Co02Px   ,  0,"N",@EDocTot          'extenso - Total
   PrWIN TX_NP,Co03Px   ,  0,"N",@EDocPag          'extenso - Total pago
   PrWIN TX_NP,Co04Px   ,  0,"N",@EDocPend         'extenso - total pendente
   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
call RetIrsPrp                                       'preparar dados para retencao de IRS

PrWIN AJT_B,   Margem, 190                           'posicao base
PrWIN GR_CX, 0,0, MargemD, 30, 2                     'caixa de totais
ln=32

PrWIN COR_E, 200, 200, 200                           'cor de enchimento RGB
PrWIN GR_ME, 0                                       'modo de enchimento
PrWIN GR_CE, 0, 0,MargemD,5 , 2                      'caixa do fim
PrWin FON, "BOLD+"                                   'activar bold
PrWIN FON, 8, 1                             	     'fonte para titulos da linha

PrWIN GR_CX, 0,0, 140, 30, 2                         'caixa de totais

Abv$ = EmpTabCon$("MOEDA", Moeda1, "ABRV")           'abreviatura

PrWIN  TX_CTR,  0,0,135,5,"Informações Diversas"     'titulo 
PrWIN  TX_CTR,135,0,MargemD,5,"Totais"+" ("+Abv$+")" 'titulo 
PrWIN GR_CX, 0,0,140,20                              'titulo 


'============================================ 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 =======
PrWIN AJT_B,  116, FimDoc+4.5
L1=6
L2=10
L3=14
L4=18
L5=22

if vuRetIrsVal <> 0 then
   PrWin FON, "BOLD+"                                 'activar bold
   PrWIN TX_N, 38, L1,"Iliquido"                      'titulo
   PrWIN TX_N, 38, L2,"Desconto"                      'titulo
   PrWIN TX_N, 38, L3,"Retenção"                      'titulo
   PrWIN TX_N, 38, L4,"Total"                         'titulo
   PrWIN TX_N, 38, L5,"Total a Receber"               'titulo
   PrWin FON, "BOLD-"                                 'desactivar bold
else
   PrWin FON, "BOLD+"                                 'activar bold
   PrWIN TX_N, 38, L1,"Iliquido"                      'titulo
   PrWIN TX_N, 38, L2,"Desconto"                      'titulo
   PrWIN TX_N, 38, L4,"Total"                         'titulo
   PrWin FON, "BOLD-"                                 'desactivar bold
end if

if NumChq$ <> "" then                                  'pago com cheque ?
   PrWIN TX_N,-102, L1,"Nº Cheque :"                  'titulo
   PrWIN TX_N, -86, L1,NumChq$                        'numero de cheque
end if


if vuRetIrsVal<>0 then
   PrWIN TX_NP, 55, L1,"N",@TotDoc                    'total iliquido
   PrWIN TX_NP, 55, L2,"N",@TotDesco                  'total desconto
   PrWIN TX_NP, 55, L3,"N",@vaRetIrsVal               'total retencao 
   PrWIN TX_NP, 55, L4,"N",@TotGer                    'total
   PrWIN TX_NP, 55, L5,@vaRetIrsRecI                  'total a receber
else
   PrWIN TX_NP, 55, L1,"N",@TotDoc                    'total iliquido
   PrWIN TX_NP, 55, L2,"N",@TotDesco                  'total desconto
   PrWIN TX_NP, 55, L4,"N",@TotGer                    'total
end if


'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+20-FimAjtExt            'posicao base

Lin1=1
Lin2=6
Lin3=11

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

PrWIN FON, 7, 1                                                    'activar fonte
PrWIN TX_N,   0, Lin3,SigLstInf$("PERSON")                         'personalizacao
PrWIN TX_N, 141, Lin3,"PROCESSADO POR COMPUTADOR"                  'informacao

PrWIN FP                                                           'fim de pagina
end sub


'=========================================================================
' Linhas discriminadas para Iva - Regime de Caixa
'=========================================================================
SUB DocIvaLinFimDis   'linha final com IVA discriminado
call DocLinPos                                                     'posicionar
tmp = CntLin("INC", 2)                                             'contar linhas por causa do titulo
AltQ=8                                                             'altura
   
PrWIN COR_E, 200, 200, 200                                         'cor de enchimento RGB
PrWIN GR_ME, 0                                                     'modo de enchimento

if usaDisIva = 1 then
   PrWIN GR_CE,  0,  0, MargemD, 10, 2                             'caixa do sub-titulo
end if

PrWIN GR_CX,  0,  5, MargemD,  5, 1     	                   'caixa de totais - linha de separacao

PrWin FON, "BOLD+"                                                 'desactivar bold
PrWIN TX_CTR, Co01px, -3, Co05Px,Altq,"Resumo do IVA"              'texto centrado
PrWin FON, "BOLD-"                                                 'desactivar bold

PrWIN TX_CTR,co01Px,liCabDy,co02Px,liCabDy*2,"Motivo Isenção/Taxa" 'texto centrado
PrWIN TX_CTR,co02Px,liCabDy,co03Px,liCabDy*2,"Base/Incidência"     'texto centrado
PrWIN TX_CTR,co03Px,liCabDy,co04Px,liCabDy*2,"IVA"                 '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

   call DocLinIncPos                              'posicionar+incrementar linha

   PrWIN TX_N, Co01Px   , ps1,@RcIse              'motivo isencao
   PrWIN TX_N, Co01Px+9 , ps1,@RcTax              'taxa
   PrWIN TX_NP,Co02Px+11, ps1,"N",@RcIvInc        'incidencia
   PrWIN TX_NP,Co03Px+11, ps1,"N",@RcIvIva        'iva
next
end sub


'------------------------------------------------------------------------------
'Logotipo
'------------------------------------------------------------------------------
Sub DocCabLogo 'cabecalho do documento - logotipo
call LogoDoc                                    'logotipo do documento
end sub

Sub LogoPrp 'logotipo - preparar
logoUsaEmp = val(CfgDocTipLogo$)                'tipo de logo a usar

'activar logotipo a usar
if logoUsaEmp = 1 then                          'usar logotipo especifico da empresa ?
   logoNom$ = CfgDocNomLogo$                    'nome do logotipo
   logoDba$ = EmpFic$("EMP","Img")              'directorio de imagens na empresa
   logoUsa$ = logoDba$ +"\" + logoNom$          'logotipo a usar - empresa
   logoFic$ = VarTx$(logoUsa$,"R")              'ficheiro do logotipo
   PrWIN IMG_F, 1, logoFic$                     'imagem (logotipo)
end if

if logoUsaEmp = 2 then                          'usar logotipo neutro ?
   logoNom$ = "DocLogo.bmp"                     'nome do logotipo
   logoUsa$ = "[SIG_DIR.DIV]," + logoNom$       'logotipo a usar - comum
   logoFic$ = VarTx$(logoUsa$,"R")              'ficheiro do logotipo
   PrWIN IMG_F, 1, logoFic$                     'imagem (logotipo)
end if
end sub


Sub LogoDoc 'logotipo do documento
'validar uso de logotipo
usaLogo$ = "N"                                  'assume nao usar logotipo
prtLogo$ = PrtCmd$("[USALOGO]")                 'opcao de usar logotipo da impressora

if prtLogo$ = "S" then                          'usarlogotipo em funcao da impressora ?
   usaLogo$ = "S"                               'usar logotipo
else
   if logoUsaEmp <> 0 then                      'empresa usa logotipo ?
      usaLogo$ = "S"                            'usar logotipo
   end if

   if usaPapTim = 1 then                        'usa papel timbrado ? 
      usaLogo$ = "N"                            'nao usar logotipo
   end if
end if

'executar
if usaLogo$ = "S" then                          'usar ?
   call LogoExe                                 'logotipo - executar
end if
end sub


Sub LogoExe 'logotipo - executar
PrWIN AJT_B,  Margem, 10.0                      'posicao base
PrWIN IMG_V,1, 2, 2, 50, 20                     'imagem (logotipo)
PrWIN GR_CX,   2, 2, "+50", "+20", 2            'caixa envolvente
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

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
Call DocLinIncPos                                  'posicionar linha

PrWIN TX_N, Co01Px+1,  0,@RcIse                    'motivo isencao
PrWIN TX_N, Co01Px+9,  0,@RcTax                    'taxa  
PrWIN TX_NP,Co02Px+11, 0,"N",@RcIvInc              'incidencia
PrWIN TX_NP,Co03Px+11, 0,"N",@RcIvIva              'iva
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 RetIrsPrp 'preparar dados para retencao de IRS
usaRetIrsVal = CtpVl(81,"T")                            'valor de retencao a usar

if usaRetIrsVal <> 0 then                               'ha retencao de IRS ?
   vuRetIrsIde$ = "Retenção IRS"                        'identificacao
   vuRetIrsVal$ = FrmNum$(12.2,usaRetIrsVal)            'valor

   usaRetIrsRecV = Ado_Tot_Tot - usaRetIrsVal           'valor a receber (total - retencao)
   vuRetIrsRecI$ = "Total a Receber"                    'total a receber - identificacao
   vuRetIrsRecV$ = FrmNum$(12.2,usaRetIrsRecV)          'total a receber - valor
else
   vuRetIrsIde$ = ""                                    'identificacao
   vuRetIrsVal$ = ""                                    'valor

   vuRetIrsRecI$ = ""                                   'total a receber - identificacao
   vuRetIrsRecV$ = ""                                   'total a receber - valor
end if
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 LinDspResIva
   call DocIvaLinFimDis
end if
end sub


SUB UsaIvaCx 'regime de iva
IvaCx$ = TxIde$(Emp_Inf_Opc$,"IVACX")                   'usa regime Iva caixa ?

if IvaCx$="S" then
   TipoRegIva = 1                                       'usa regime iva caixa
else
   TipoRegIva = 0                                       'usa regime iva geral
end if
end sub


SUB LinDspResIva 'linhas disponiveis para resumo iva caixa
LinDoc = 0                                              'azerar numero linhas documento
LinEsc = 0                                              'azerar numero linhas escritas
LinRes = 0						'azerar numero linhas resumo	

LinSep = VBS_DocConOpcEsp("ResSep")                     'linhas de separacao para resumo
LinDoc = VBS_DocConOpc("DocLpg")                        'numero linhas documento

LinEsc  = Doc_CntLin                                    'numero linhas escritas
LinRes  = EncRcbIvaRes("TOT")                           'numero linhas resumo
LinCabR = 5                                             'numero de linhas cabecalho resumo

LinDsp  = LinDoc - LinEsc - LinSep                      'numero de linhas disponiveis
LinNec  = LinCabR + LinRes                              'numero de linhas necessarias para resumo  
LinPrt  = LinDsp-LinNec                                 'posicao para linha de escrita

'msgbox "","LinDsp",LinDsp
'msgbox "","LinNec",LinNec
'msgbox "","LinPrt",LinPrt

if LinDsp >= LinNec then
   tmp = CntLin("INC",LinPrt)                           'minimo de linhas
   call DisIva_Cmp                                      'escrever resumo
else
   'call DocFimAjt
   'call DisIva_Cmp                                      'escrever resumo
end if
end sub
##


'==============================================================================
#VBS - VbScript
'==============================================================================
'= Variaveis ==================================================================
Dim VarXxx                             'variavel XXX


'= Consultar opcoes do documento ==============================================
Function DocIde(arg) 'identificacao do documento
'arg        - argumento (nao usado)

with FxPre
res = .DocConOpc("T", "DocIde")        'consultar
end with

DocIde = res                           'devolver resultado
end function


Function DocConEsp(ide) 'consultar opcao especifica de documento
'ide        - identificador 

with FxPre
res = .DocConEsp("T", ide)             'consultar
end with

DocConEsp = res                        'devolver valor
end function


Function DocConOpc(ide) 'consultar opcao de documento
'ide        - identificador 

with FxPre
res = .DocConOpc("T", ide)             'consultar
end with

DocConOpc = res                        'devolver valor
end function


Function DocConOpcEsp(ide) 'consultar opcao especifica do documento
'ide        - identificador 

with FxPre
res = .DocConOpcEsp("T", ide)          'consultar
end with

DocConOpcEsp = res                     'devolver valor
end function


Function DocConVar(ide) 'consultar variavel do documento
'ide        - identificador 

with FxPre
res = .DocConVar("T", ide)             'consultar
end with

DocConVar = res                        'devolver valor
end function
##


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