'Nome       : EmdRec.ipw
'Tipo       : LST
'Data       : 2016/03/24
'Versao     : 3.2
'Descricao  : Formato de documento tipo Recibo para impressoras windows

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 3.3  2016/03/24 ---------------------------------------------------
'Escrever Anulado na diagonal 

'- Versao : 3.2  2015/12/04 ---------------------------------------------------
'Colocacao da personalizacao no rodape do documento

'- Versao : 3.1  2014/06/23 ---------------------------------------------------
'Correcao da posicao de escrita da desricao final (Sub Fim)

'- Versao : 3.0  2013/11/26 ---------------------------------------------------
'nova versao

'- Versao : 2.5  2011/09/28 ---------------------------------------------------
'Adaptacao para SNC

'- Versao : 2.4  2002/05/16 ---------------------------------------------------
'ajustes graficos

'- Versao : 2.3  2002/02/21 ---------------------------------------------------
'Informar continuacao de documento no final

'- Versao : 2.2  2001/11/08 ---------------------------------------------------
'imprimir retencao de IRS

'- Versao : 2.1b 2001/06/22 ---------------------------------------------------
'gerar extenso com valor absoluto

'- Versao : 2.1a 2000/09/20 ---------------------------------------------------
'definicao da variavel da moeda para extenso

'- Versao : 2.1  2000/09/08 ---------------------------------------------------
'extenso em escudos ou euros

'- Versao : 2.0  2000/05/11 ---------------------------------------------------
'saltos de pagina

'- Versao : 1.0  1999/12/29 ---------------------------------------------------
'versao base


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
Zoom para preview                [PrvZoom]=1
Opcoes para impressora WIN      [PrWinOpc]=[ORI=P]
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Nome                       [DocNom]=RCPG
Vias                       [DocVia]=Original
'Vias                       [DocVia]=Original;Duplicado,2;Triplicado
Tipo                       [DocTip]=
Personalizacao             [DocPer]=
Dados especificos          [DocEsp]=ESP1

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

'funcoes de listagem
Funcao do documento         [FxDoc]=Doc
Listar cabecalho            [FxCAB]=Cab
Listar linhas               [FxLIN]=Lin; Ajt; Doc
'Listar linhas               [FxLIN]=Lin
Listar fim                  [FxFIM]=Fim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
Pag      = Doc_CntPag
DataExt  = FrmVal$(Sig_DtHoje,45,0)
PerSon   = SigLstInf$("PERSON")                 'personalizacao

'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     = Cta_Mst_Nome$
Morada   = Cta_Ang_Morada$
Local    = Cta_Ang_Local$
Cpost    = Cta_Ang_Cpost$
Ctrb     = Cta_Mst_Ctrb$

'totais do documento
TotVal   = FrmVal$(abs(Emd_Tot_Val),21,13.2)
TotDesco = FrmVal$(abs(Emd_Tot_Desco),21,13.2)
TotIva   = FrmVal$(abs(Emd_Tot_Iva),21,13.2)
TotIrs   = FrmVal$(abs(Emd_Tot_Irs),21,13.2)
TotDoc   = FrmVal$(abs(Emd_Tot_Doc),21,13.2)
TotEur   = FrmVal$(MoeCnv("N",Emd_Tot_Doc,Emd_Ide_Moeda,2),21,18.2)

'informacoes sobre o documento
DocNome  = Emd_Ide_Nome$
DocNum   = FrmNdo$("",Emd_Ide_Tdoc$,Emd_Ide_Ndoc$)
DocVia   = Emd_Ide_Via$
DocDtl   = FrmVal$(Emd_Ide_Dtl,45,0)
DocMoeda = Emd_Ide_Moeda

'linhas do documento
LinTdo   = Emd_Lin_Tdoc$
LinNdo   = FrmNdo$("",Emd_Lin_Tdoc$,Emd_Lin_Ndoc$)
LinCt    = Emd_Lin_Ct$
LinDt    = FrmVal$(Emd_Lin_Dt,44,0)
LinVl    = FrmVal$(Emd_Lin_Vl,21,13.2)
LinTv    = Emd_Lin_Tv$
LinInf   = Emd_Lin_Inf$

LinVDoc  = FrmMoe$("",13,EmdValcon("RCB_VDOC"))
LinVPen  = FrmMoe$("",13,EmdValcon("RCB_VPEN"))
LinVpag  = FrmMoe$("",13,Emd_Lin_Vl)


'= 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
##


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


'==============================================================================
#PGM - Funcoes para impressao do documento
'==============================================================================
'-----------------------------------------------------------------------------
' Funcoes para inicializacao
'-----------------------------------------------------------------------------
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 
PrWIN GR_ME, 0                                              'modo de enchimento

MargemD    = 190 
end sub


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


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

CerNatChv$ = EncDocCer$("TDO.TSA.COD",Emd_Ide_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 Cab 'cabecalho


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

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

PrWin PAG_PRP                                               'preparar pagina

if Emd_DOC_RecVal = 255 then                                'anulado ?
   call DocAnuIde                                           'listar informacao de anulado
end if

PrWIN AJT_B, 8.0, 10.0                                      'posicao base
PrWIN COR_F, 15                                             'cor de fundo 
PrWIN GR_CX,   2,   2, 190, 110, 2                          'caixa de moldura

PrWIN IMG_V,1, 5, 5, 50, 20                                 'imagem (logotipo)
PrWIN GR_CX,  5,  5, "+50", "+20", 2                        'caixa envolvente

'dados da empresa
PrWIN FON, 10, 1                                            'activar fonte
PrWIN TX_N, 10, 30,@EmpNome                                 'nome
PrWIN TX_N, 10, 35,@EmpMorada                               'morada
PrWIN TX_N, 10, 40,@EmpLocal                                'localidade
PrWIN TX_N, 10, 45,@EmpCpost                                'codigo postal
PrWIN TX_N, 10, 50,"Telefone:"                              'telefone - titulo 
PrWIN TX_N, 31, 50,@EmpTel                                  'telefone
PrWIN TX_N, 10, 55,"Telefax:"                               'fax - titulo 
PrWIN TX_N, 31, 55,@EmpFax                                  'fax
PrWIN TX_N, 10, 60,"Contribuinte:"                          'contribuinte - titulo
PrWIN TX_N, 31, 60,@EmpCtrb                                 'contribuinte
PrWIN TX_N, 10, 65,@EmpTps                                  'tipo de sociedade
PrWIN TX_N, 10, 70,@EmpReg                                  'registo da conservatoria

PrWIN TX_N, 100, 35,"Exmo(s). Snr(s).:"

'dados do cliente
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, 8.0, 90                                        'posicao base
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,"NÚMERO :"                             'numero - titulo
PrWIN TX_N, 130,  10,@DocNum                                'numero documento 

PrWIN TX_N, 100,  15,"VIA :"                                'via - titulo
PrWIN TX_N, 130,  15,@DocVia                                'via

PrWIN TX_N, 10,  10,"Data :"                                'data - titulo
PrWIN TX_N, 30,  10,@DocDtl                                 'data do documento

PrWIN TX_N, 10,  15,"Conta :"                               'conta - titulo
PrWIN TX_N, 30,  15,@Ct                                     'conta

PrWIN TX_N, 10,  20,"V/ Ctrb. :"                            'contribuinte - titulo
PrWIN TX_N, 30,  20,@Ctrb                                   'contribuinte

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


'-----------------------------------------------------------------------------
' Corpo do documento
'-----------------------------------------------------------------------------
PrWIN AJT_B, 8.0, 125                                       'posicao base
PrWIN COR_E, 200, 200, 200                                  'cor de enchimento RGB

PrWIN GR_CE,  2,  0, 190,  10, 2           	            'caixa do cabecalho
PrWIN GR_CX,  2, 10, 190, 108, 2           	            'caixa de corpo
'PrWIN GR_CX,100,  0, 130,  80, 2           	             'separadores verticais

PrWin FON, "BOLD+"                                          'activar bold
PrWIN FON, 12, 1                             	            'activar fonte

EspValor=30                                                 'largura campo valor
Col1=10                                                     'coluna 1
Col2=Col1+85                                                'coluna 2
Col3=Col2+Espvalor                                          'coluna 3
Col4=Col3+EspValor                                          'coluna 4
Col5=Col4+EspValor                                          'coluna 5
Col6=25                                                     'documento

if usaDisIva = 1 then
   PrWIN TX_CTR,Col1,  0, Col1,   5,"Documento"             'texto centrado
   PrWIN TX_CTR,Col2,  0, Col3,   5,"Valor"                 'texto centrado
   PrWIN TX_CTR,Col3,  0, Col4,   5,"Valor pago"            'texto centrado
   PrWIN TX_CTR,Col4,  0, Col5,   5,"Valor pendente"        'texto centrado

   PrWin FON, "BOLD-"                                       'desactivar bold
   PrWIN FON,  9, 1                           	            'activar fonte
   PrWIN TX_CTR, Col1, 5, Col1  , 9,"Motivo Isenção/Taxa"   'texto centrado
   PrWIN TX_CTR, Col2, 5, Col3-2, 9,"Base/Incidência"       'texto centrado
   PrWIN TX_CTR, Col3, 5, Col4+4, 9,"IVA"                   'texto centrado
else
   PrWIN TX_CTR,  Col1,  0, Col2,  10,"Documento"           'texto centrado
   PrWIN TX_CTR,Col2,  0, Col3,  10,"Valor"                 'texto centrado
   PrWIN TX_CTR,Col3,  0, Col4,  10,"Valor pago"            'texto centrado
   PrWIN TX_CTR,Col4,  0, Col5,  10,"Valor pendente"        'texto centrado
end if

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

'zona de impressao
'PrWIN AJT_B, 0.0, 0.0                                       'posicao base
'PrWIN GR_CX,   5,   5, 201, 290, 1                          'caixa de moldura limite
end sub


'-----------------------------------------------------------------------------
' Linhas do Documento
'-----------------------------------------------------------------------------
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",2)                             'minimo de linhas

'msgbox "","LinFin",usaDisIva

if usaDisIva = 1 then                           'discriminar IVA ?
   'tmp = CntLin("INC", 2)                       'contar linhas - forcar separacao

   call DocIvaLinFimDis                         'discriminar linhas de IVA
end if
end sub


SUB LinAjt 'ajuste de linhas
'?
end sub


Sub LinPos 'posicionar linha
PrWIN AJT_B, 8,122+Doc_CntLin*5                             'posicao base
end sub


Sub LinIncPos 'incrementar + posicionar linha
tmp = CntLin("INC", 1)                                      'contar linha
PrWIN AJT_B, 8,131+Doc_CntLin*5                             'posicao base

'call LinPos                                                 'posicionar linha
end sub


SUB Lin 'linha normal
call LinPos                                                 'posicionar linha

PrWIN  TX_N,Col1    ,10    ,@LinInf                         'informacao
PrWIN  TX_N,Col1+25 ,10    ,@LinDt                          'data
PrWIN TX_NP,Col2    ,10,"N",@LinVDoc                        'valor documento
PrWIN TX_NP,Col3    ,10,"N",@LinVpag                        'valor pago 
PrWIN TX_NP,Col4    ,10,"N",@LinVpen                        'valor pendente

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


SUB LinDoc 'linha de documento
Call LinPos

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


'-----------------------------------------------------------------------------
' Final do Documento
'-----------------------------------------------------------------------------
SUB FimAJt 'ajuste de total do documento
PrWIN AJT_B,  8, 230                                        'posicao base
PrWIN TX_N,  10, 5  ,"Continua ..." 
PrWIN FP                                                    'fim de pagina
end sub


SUB Fim 'total do documento
PrWIN AJT_B,   8, 190                                       'posicao base
max=TxtSepLin(Emd_Ide_Descr$,100," ")                       'separar descricao

For cnt=1 to max
   PrWIN AJT_B,  8, 190+1+cnt*5                             'posicao base
   PrWIN TX_N,  10,  5,ConTx$(cnt)
Next

PrWIN AJT_B,   8, 240                                       'posicao base
PrWIN GR_CX,   2,   0, 190,  30, 2         	            'caixa de moldura
PrWIN GR_CX, 100,   0, 130,  30, 2         	            'caixa
PrWIN GR_LI, 130,  21, 190,  21, 2           	            'separador horizontal

PrWIN TX_N,  12,  5,"Emitido por programa certificado Numero 93/AT"             'informacao 
PrWIN TX_N, 106,  5,"Iliquido"                              'iliquido
PrWIN TX_N, 106, 10,"Desconto"                              'desconto
'PrWIN TX_N, 106, 15,"Reg. do IVA"                           'regime de IVA

PrWIN TX_NP, 150,  5,"N",@TotVal                            'total iliquido
PrWIN TX_NP, 150, 10,"N",@TotDesco                          'total desconto
'PrWIN TX_NP, 150, 15,"N",@TotIva                            'total do iva

'PrWIN TX_N,  10, 23,"Total em Euro:"                        'total em euros
'PrWIN TX_NP,  50, 23,"N",@TotEur                            'total documento euros

PrWIN TX_N, 106, 23,"Total"                                 'total
PrWIN TX_NP, 150, 23,"N",@TotDoc                            'total documento 

Tmp=NumExtPrp("80,80","=")                                  'preparar extenso
PrWIN TX_N, 10, 32,"São: "
PrWIN TX_N, 20, 32,NumExt$(1,abs(Emd_Tot_Doc),EmpTabCon$("MOEDA", MemNum(31), "ABRV"),3) 'linha 1 de extenso
PrWIN TX_N, 10, 37,NumExt$(2)                               'linha 2 de extenso
PrWIN TX_N, 10, 42,@Person                                  'personalizacao
PrWIN FP                                                    'fim de pagina
end sub


'-----------------------------------------------------------------------------
' Discriminar IVA
'-----------------------------------------------------------------------------
SUB DocIvaLinFimDis 'linha final com IVA discriminado (titulos da zona)
tmp = CntLin("MIN", 2)                                   'minimo de linhas
tmp = CntLin("INC", 3)                                   'contar linhas - forcar separacao
call LinIncPos                                           'posicionar linha

'listar
PrWIN COR_E, 200, 200, 200                               'cor de enchimento RGB
PrWIN GR_ME, 0                                           'modo de enchimento

PrWIN GR_CE,  2,  0, MargemD, 10, 2                      'caixa do sub-titulo
PrWIN GR_CX,  2,  5, MargemD,  5, 1     	         'caixa de totais - linha de separacao
PrWIN GR_CX , 2,10,MargemD,  43-FimAjtExt, 2             'caixa de totais

PrWin FON, "BOLD+"                                       'desactivar bold
PrWIN TX_CTR, Col1, -3, Col5,8,"Resumo do IVA"           'texto centrado
PrWin FON, "BOLD-"                                       'desactivar bold
  
PrWIN TX_CTR,Col1,6,Col1+20, 10,"Taxa"                   'texto centrado
PrWIN TX_CTR,Col2-25 ,6,Col3  , 9,"Base/Incidência"      'texto centrado
PrWIN TX_CTR,Col3+5,6,Col4  , 10,"IVA"                   'texto centrado
PrWin FON, "BOLD-"                                       'desactivar bold

tmp = CntLin("INC",1)                                    'contar linha 2 dos titulos
call LinIncPos
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 LinIncPos                                  'incrementar + posicionar linha
  
   PrWIN TX_N, Col1  , 0,@RcIse                    'motivo isencao
   PrWIN TX_N, Col1+7, 0,@RcTax                    'taxa
   PrWIN TX_NP,Col2-2, 0,"N",@RcIvInc              'incidencia
   PrWIN TX_NP,Col3-2, 0,"N",@RcIvIva              'iva
next
end sub


Sub DisIva_Prp 'preparar discriminacao de IVA
tip$ = "EMD"                                       '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$ = Emd_Ide_Tdoc$                               'diario dos recibos
ndo$ = Emd_Ide_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 = EmdDocLer(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

tmp=CntLin("INC",1)                                'incrementar contador linhas
call LinPos                                        'posicao base

PrWIN TX_N,   Col1,   10,@RcIse                    'motivo isencao
PrWIN TX_N,   Col1+7, 10,@RcTax                    'taxa  
PrWIN TX_NP,  Col2-2, 10,"N",@RcIvInc              'incidencia
PrWIN TX_NP,  Col3-2, 10,"N",@RcIvIva              'iva
next

tmp=CntLin("INC",1)                                'incrementar contador linhas
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

'msgbox "","IVA",vuRcbIvaIncP
end sub


Sub DocAnuIde 'listar informacao de anulado
anuAsp = 1                                                  'aspecto a usar

if anuAsp = 1 then                                          'aspecto 1 ?
   anuTx$ = "Documento anulado"                             'texto a listar
   anuPx  =  60                                             'posicao X
   anuPy  = 220                                             'posicao Y

   PrWIN AJT_B, 0, 0                                        'activar posicao nase
   PrWIN COR_T, 240, 170, 130                               'cor de texto RGB

   PrWIN FON, 40, 1                                         'activar fonte

   PrWIN TX_N,   -100, -100,"."                             'inicializar impressao
   PrWIN TX_RO, anuPx,anuPy,45,anuTx$                       'registar informacao

   PrWIN COR_T, 0, 0, 0                                     'activar cor de texto RGB
end if


if anuAsp = 2 then                                          'aspecto 2 ?
   anuTx$ = "Documento anulado"                             'texto a listar
   anuPx  =  20                                             'posicao X
   anuPy  = 240                                             'posicao Y

   PrWIN AJT_B, 0, 0                                        'activar posicao nase
   PrWIN COR_T, 240, 170, 130                               'cor de texto RGB

   PrWIN FON, 75, 1                                         'activar fonte

   PrWIN TX_RO, anuPx,anuPy,45,anuTx$                       'registar informacao

   PrWIN COR_T, 0, 0, 0                                     'activar cor de texto RGB
end if
end sub
##

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