'Nome       : Amo_Com.std
'Tipo       : LST WIN
'Data       : 2003/11/21
'Versao     : 1.2
'Descricao  : Dados comuns para Mapas de Amortizacoes

'Notas      : Ficheiro para incluir nos documentos

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0   2000/10/24 --------------------------------------------------
'Versao base

'- Versao : 1.0a  2000/11/29 --------------------------------------------------
'Reducao da largura maxima

'- Versao : 1.0b  2000/12/26 --------------------------------------------------
'Valores para reavaliacoes

'- Versao : 1.0c  2001/01/22 --------------------------------------------------
'Valor para Amortizacoes nao aceites

'- Versao : 1.0d  2001/02/05 --------------------------------------------------
'Valor de acumulacao REX

'- Versao : 1.0e  2001/02/17 --------------------------------------------------
'Permitir listar firma e actividade em 2 linhas

'- Versao : 1.0f  2001/03/16 --------------------------------------------------
'Correccao da listagem em varias linhas para permitir texto com virgulas

'- Versao : 1.1   2003/02/23 --------------------------------------------------
'Correccao da listagem em varias linhas para permitir texto com virgulas

'- Versao : 1.1a  2003/05/21 --------------------------------------------------
'Campo 76 para Valor de aquisicao x Taxa de amortizacao

'- Versao : 1.2   2003/11/21 --------------------------------------------------
'Nao listar valor zero para anos de uso esperado (bens novos)
'Nao listar mes de inicio para grupos de bens

'- Versao : 1.2a  2005/10/20 --------------------------------------------------
'correcção ortográfica


'==============================================================================
#DEF - Definicao global do documento
'==============================================================================
Subtotalizadores                 [SbtNiv]=3
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
'MemTxt$(00)   - Informacoes diversas

'MemTxt$(11)   - Periodo de tributacao - Inicio
'MemTxt$(12)   - Periodo de tributacao - Fim

'MemTxt$(15)   - Grupo de bens dos mapa (base)
'MemTxt$(16)   - Grupo de bens dos mapa (complementar)
'MemTxt$(17)   - Grupo de bens dos mapa (sub-grupo-codigo)
'MemTxt$(18)   - Grupo de bens dos mapa (sub-grupo-descricao)

'MemTxt$(21)   - codigo do bem
'MemTxt$(22)   - nome do bem

'MemTxt$(30)   - enquadramento legal - codigo
'MemTxt$(31)   - enquadramento legal - descricao
'MemTxt$(32)   - enquadramento legal - tabela
'MemTxt$(33)   - enquadramento legal - divisao
'MemTxt$(34)   - enquadramento legal - grupo
'MemTxt$(35)   - enquadramento legal - alinea
'MemTxt$(36)   - enquadramento legal - paragrafo
'MemTxt$(41)   - enquadramento legal - percentagem
'MemTxt$(42)   - enquadramento legal - anos

'MemTxt$(51)   - opcao REX

'MemNum(01)    - utilma pagina (0 nao, 1 sim)
'MemNum(05)    - agrupado      (0 nao, 1 sim)

'MemNum(10)    - numero de bens no grupo
'MemNum(11)    - valor de aquisicao
'MemNum(12)    - anos de uso
'MemNum(13)    - taxa normal
'MemNum(14)    - taxa amortizada total
'MemNum(15)    - (nao usado)
'MemNum(16)    - valor passivel de amortizacao

'MemNum(21)    - amortizacao anterior
'MemNum(22)    - taxa de amortizacao
'MemNum(23)    - valor de amortizacao
'MemNum(24)    - amortizacao acumulada
'MemNum(25)    - taxas perdidas
'MemNum(26)    - valor de amortizacao s/ valor de aquisicao

'MemNum(31)    - valor liquido - actual
'MemNum(32)    - valor liquido - anterior

'MemNum(41)    - data de amortizacao
'MemNum(42)    - data de aquisicao
'MemNum(43)    - inicio de uso
'MemNum(44)    - ano de inicio de uso
'MemNum(45)    - mes de inicio de uso

'MemNum(51)    - amortizacao  - Taxa
'MemNum(52)    - amortizacao  - Valor

'MemNum(61)    - taxa perdida - Taxa
'MemNum(62)    - taxa perdida - Valor

'MemNum(71)    - mais valias - ano
'MemNum(72)    - mais valias - valor

'MemNum(75)    - reintegracoes nao aceites
'MemNum(76)    - Aquisicao*Taxa de amortizacao

'MemNum(80)    - reavaliacao - data da ultima
'MemNum(81)    - reavaliacao - valor do bem (aquisicao)
'MemNum(82)    - reavaliacao - valor da reavaliacao
'MemNum(83)    - reavaliacao - anos de uso ate reavaliacao
'MemNum(84)    - reavaliacao - anos de uso apos reavaliacao
'MemNum(85)    - reavaliacao - anos de uso total
'MemNum(86)    - reavaliacao anterior - aquisicao+reavalicoes (zero se nao reavaliado)
'MemNum(87)    - reavaliacao actual   - aquisicao+reavalicoes (zero se nao reavaliado)
'MemNum(88)    - reavaliacao actual   - aquisicao+reavalicoes (mapa mais valias)

'MemNum(90)    - coeficiente de desvalorizacao da moeda
'MemNum(91)    - mais valia contabilistica
'MemNum(92)    - mais valia fiscal
'MemNum(93)    - mais valia nao tributada
'MemNum(94)    - valor de alienacao
'MemNum(95)    - valor liquido actualizado


'cabecalho
Pag       =Doc_CntPag
DataExt   =FrmVal$(Sig_DtHoje,45,0)

TpMap     =MemTxt$(1)

EmpIde    =Emp_Inf_Nome$
EmpActiv  =Emp_Inf_Activ$
EmpCtrb   =left$(TxCarEli$(0,Emp_Inf_Contrib$," "),9)
EmpCae    =Emp_Inf_Cae$

ExerAno   =FrmDt$("A4",Sig_DtHoje)
PtribIni  =MemTxt$(11)
PtribFim  =MemTxt$(12)
Ptrib     ="De  "+MemTxt$(11)+"  a  "+MemTxt$(12)

GrpBem    =MemTxt$(15)

'variaveis a listar
Data      =FrmVal$(MemNum(41),44,0)
AqiAno    =FrmDt$("A4",MemNum(42))
UsoAno    =FrmDt$("A4",MemNum(43))
'UsoMes    =FrmDt$("M",MemNum(43))
UsoMes    =FrmVal$(MemNum(45),20, 2.0)

vAqi      =FrmMoe$("",11,MemNum(11),MapMoe)
aUso      =FrmVal$(MemNum(12),20, 2.0)
txNor     =FrmNum$(3.2,MemNum(13))
vLiq      =FrmMoe$("",11,MemNum(31),MapMoe)
vLiqA     =FrmMoe$("",11,MemNum(32),MapMoe)

antAmoVl  =FrmMoe$("",11,MemNum(21),MapMoe)
anoAmoTx  =FrmVal$(MemNum(22),21, 3.2)
anoAmoVl  =FrmMoe$("",11,MemNum(23),MapMoe)
acmAmoVl  =FrmMoe$("",11,MemNum(24),MapMoe)
acmTxpTx  =FrmVal$(MemNum(25),21, 3.2)
vAmoAqi   =FrmMoe$("",11,MemNum(26),MapMoe)

mvaAno    =FrmVal$(MemNum(71),20,4)
mvaVl     =FrmMoe$("",11,MemNum(72),MapMoe)

reiNac    =FrmMoe$("",11,MemNum(75),MapMoe)
'reiVarEx  =FrmMoe$("",11,MemNum(51)*MemNum(11)/100,MapMoe)
reiVarEx  =FrmMoe$("",11,MemNum(76),MapMoe)

vReaVbem  =FrmMoe$("",11,MemNum(81),MapMoe)
vReaVrea  =FrmMoe$("",11,MemNum(82),MapMoe)
vReaAuAnt =FrmNum$(3.0,MemNum(83))
vReaAuEsp =FrmNum$(3.0,MemNum(84))
vReaAuTot =FrmNum$(3.0,MemNum(85))
vReaTxMed =FrmNum$(2.2,100/MemNum(85))
vReaAqiAnt=FrmMoe$("",11,MemNum(86),MapMoe)
vReaAqiAct=FrmMoe$("",11,MemNum(87),MapMoe)
vReaAqiMva=FrmMoe$("",11,MemNum(88),MapMoe)
vReaZero  =""

vCoeDvm   =FrmNum$(2.2,MemNum(90))
vMvaCtb   =FrmMoe$("",11,MemNum(91),MapMoe)
vMvaFis   =FrmMoe$("",11,MemNum(92),MapMoe)
vMvaNtrb  =FrmMoe$("",11,MemNum(93),MapMoe)
vAli      =FrmMoe$("",11,MemNum(94),MapMoe)
vLiqAct   =FrmMoe$("",11,MemNum(95),MapMoe)


'totais
tAqi      =FrmMoe$("",11,Total(vAqi,1),MapMoe)
tAntAmoVl =FrmMoe$("",11,Total(antAmoVl,1),MapMoe)
tAnoAmoVl =FrmMoe$("",11,Total(anoAmoVl,1),MapMoe)
tAcmAmoVl =FrmMoe$("",11,Total(acmAmoVl,1),MapMoe)
tLiq      =FrmMoe$("",11,Total(vLiq,1),MapMoe)
tLiqA     =FrmMoe$("",11,Total(vLiqA,1),MapMoe)
tAmoAqi   =FrmMoe$("",11,Total(vAmoAqi,1),MapMoe)

tMvaVl    =FrmMoe$("",11,total(mvaVl,1),MapMoe)
tReiNac   =FrmMoe$("",11,total(reiNac,1),MapMoe)
tReiVarEx =FrmMoe$("",11,total(reiVarEx,1),MapMoe)

tReaVbem  =FrmMoe$("",11,total(vReaVbem,1),MapMoe)
tReaVrea  =FrmMoe$("",11,total(vReaVrea,1),MapMoe)
tReaAqiAnt=FrmMoe$("",11,total(vReaAqiAnt,1),MapMoe)
tReaAqiAct=FrmMoe$("",11,total(vReaAqiAct,1),MapMoe)
tReaAqiMva=FrmMoe$("",11,total(vReaAqiMva,1),MapMoe)
tReaZero  =""

tMvaCtb   =FrmMoe$("",11,total(vMvaCtb,1),MapMoe)
tMvaFis   =FrmMoe$("",11,total(vMvaFis,1),MapMoe)
tMvaNtrb  =FrmMoe$("",11,total(vMvaNtrb,1),MapMoe)
tAli      =FrmMoe$("",11,total(vAli,1),MapMoe)
tLiqAct   =FrmMoe$("",11,total(vLiqAct,1),MapMoe)


'total de grupo
gAqi      =FrmMoe$("",11,Total(vAqi,2),MapMoe)
gAntAmoVl =FrmMoe$("",11,Total(antAmoVl,2),MapMoe)
gAnoAmoVl =FrmMoe$("",11,Total(anoAmoVl,2),MapMoe)
gAcmAmoVl =FrmMoe$("",11,Total(acmAmoVl,2),MapMoe)
gLiq      =FrmMoe$("",11,Total(vLiq,2),MapMoe)
gLiqA     =FrmMoe$("",11,Total(vLiqA,2),MapMoe)
gAmoAqi   =FrmMoe$("",11,Total(vAmoAqi,2),MapMoe)

gMvaVl    =FrmMoe$("",11,total(mvaVl,2),MapMoe)
gReiNac   =FrmMoe$("",11,total(reiNac,2),MapMoe)
gReiVarEx =FrmMoe$("",11,total(reiVarEx,2),MapMoe)

gReaVbem  =FrmMoe$("",11,total(vReaVbem,2),MapMoe)
gReaVrea  =FrmMoe$("",11,total(vReaVrea,2),MapMoe)
gReaAqiAnt=FrmMoe$("",11,total(vReaAqiAnt,2),MapMoe)
gReaAqiAct=FrmMoe$("",11,total(vReaAqiAct,2),MapMoe)
gReaAqiMva=FrmMoe$("",11,total(vReaAqiMva,2),MapMoe)
gReaZero  =""

gMvaCtb   =FrmMoe$("",11,total(vMvaCtb,2),MapMoe)
gMvaFis   =FrmMoe$("",11,total(vMvaFis,2),MapMoe)
gMvaNtrb  =FrmMoe$("",11,total(vMvaNtrb,2),MapMoe)
gAli      =FrmMoe$("",11,total(vAli,2),MapMoe)
gLiqAct   =FrmMoe$("",11,total(vLiqAct,2),MapMoe)

##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'---------------------------------------------------------->'Comentario (61)
'------------------------------------------------->'Comentario (52)
'------------------------------------->'Comentario (40)

'- Funcoes de inicializacao ---------------------------------------------------
'fontes automaticas:
' 1 - Arial
' 2 - Ms Sans Serif
' 3 - Courier New


SUB FxIni 'funcao de inicializacao
'modo WIN
PrWIN AJT_F, 56.7,  56.7                                    'ajuste para milimetros
PrWIN AJT_D,  10.0,   10.0                                  'deslocamento de ajuste 
'PrWIN IMG_F, 1, VarTx$("[SIG_DIR.DIV],OliLogo.bmp","R")    'imagem (logotipo)
PrWIN ET,  2                                                'espessura de traco 

PrWIN ORI,  "L"                                             'landscape 
end sub


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


SUB Mapa_CabIni 'inicializacao do documento
MapMoe=91                              'moeda para mapas
vRexAcm=0                              'limpar valor REX
end sub


SUB Mapa_CabFim 'finalizar documento
'
end sub


'- Funcoes diversas -----------------------------------------------------------
SUB Mapa_CabCom 'cabecalho comum
xPosInf=10                                         'posicao para informacao

PrWIN AJT_D,  -280.0,   -280.0                     'deslocamento de ajuste 

PrWIN AJT_B, 0.0, 0.0                              'posicao base
PrWIN COR_F, 15                                    'cor de fundo 
'PrWIN GR_CX,    5,    5, 291, 203, 1              'caixa de moldura - Maximo

'caixa de titulo 1
PrWIN FON,  8, 1                                               'activar fonte
PrWIN TX_N,    7, 5.5,"(Artigos 94º, nº 2, do CIRC e 57º, nº 3, do CIRS)"     'titulo
PrWIN GR_CX,   7,   9,  79,  32, 2                             'caixa envolvente
txEmp$="Firma " +Emp_Inf_Nome$                                 'empresa

'PrWIN TX_DMX,  9, 10, 70,txEmp$                           'empresa
PrWIN TXS_SEP," ","70",txEmp$                             'separar empresa
PrWIN TXS_N,  9, 10, 1                                    'empresa - linha 1
PrWIN TXS_N,  9, 14, 2                                    'empresa - linha 2


PrWIN GR_LI, 16, 13.5, 77, 13.5, 2                        'linha
PrWIN GR_LI,  9, 17.5, 77, 17.5, 2                        'linha

PrWIN TX_N,   38, 21, "Exercicio de"                      'titulo
PrWIN TX_CO,  60, 21, 4,@ExerAno                          'exercicio
PrWIN FON,  6, 1                                          'activar fonte
PrWin FON, "BOLD+"                                        'activar bold
PrWIN TX_N,   10, 27,"PERIODO DE TRIBUTAÇÃO"              'titulo
PrWin FON, "BOLD-"                                        'desactivar bold
PrWIN GR_CX,   9, 26.5, 39, 30, 2                         'caixa envolvente
PrWIN TX_N,   41, 27, @Ptrib                              'periodo de tributacao

'caixa de titulo 2
PrWIN FON,  8, 1                                          'activar fonte
PrWIN GR_CX, 175,   9, 254,  32, 2                        'caixa envolvente
PrWIN TX_N,  177, 11,"Número de identificação fiscal"     'titulo
PrWIN FON, 8, 3                                           'activar fonte
PrWIN TX_CO, 219,  11, 9,@EmpCtrb                         'contribuinte
PrWIN FON,  8, 1                                          'activar fonte

PrWIN TX_N,  177, 16,"Actividade principal"               'titulo
'PrWIN TX_DMX,205, 16, 48,@EmpActiv                        'actividade

PrWIN TXS_SEP," ","48+75",@EmpActiv                       'separar actividade
PrWIN TXS_N,205, 16, 1                                    'actividade - linha 1
PrWIN TXS_N,178, 20, 2                                    'actividade - linha 2


PrWIN GR_LI, 204, 19, 252, 19, 2                          'linha
PrWIN GR_LI, 177, 24, 252, 24, 2                          'linha
PrWIN FON,  8, 3                                          'activar fonte
PrWIN TX_N,  208, 26,"Código CAE"                         'titulo
PrWIN TX_CO, 230,  26, 6,@EmpCae                          'codigo CAE
PrWIN FON,  8, 1                                          'activar fonte

'diversos
PrWIN TX_N,  89, 31,@GrpBem                               'grupo de bens
end sub


SUB Mapa_TipMap 'tipo do mapa
PrWIN FON, 16, 1                                          'activar fonte
PrWIN TX_N,  275,  15,@Pag                                'numero da pagina

PrWIN GR_CX, 257,   9, xMax,  24, 3                       'caixa envolvente
PrWIN FON, 30, 1                                          'activar fonte
PrWin FON, "BOLD+"                                        'activar bold
PrWIN TX_N,  260,   25,@TpMap                             'tipo do mapa
PrWin FON, "BOLD-"                                        'desactivar bold
end sub


SUB Mapa_DefLin 'definicao de linhas
'posicao de linhas do corpo
xMin=7
'xMax=287
xMax=285
yMin=37
yMax=192

plc01=yMin
plc02=43
plc03=52
plc04=68
plc05=72
plc06=180
plc07=yMax
plc08=0+(plc06+plc07)/2

PrWIN GR_CX,  xMin, plc01, xMax, plc07, 2         'caixa envolvente
PrWIN GR_CX,  xMin, plc04, xMax, plc05, 2         'caixa envolvente
for i=1 to 24
py=plc05+i*4.5                                    'posicao Y da linha
PrWIN GR_LI,  xMin, py, xMax, py, 2               'linha
next
end sub


SUB Mapa_LinPco 'posicao de listagem dascoluna nas linhas
sep=0.5                                'separacao
lpc01=sep01+sep
lpc02=sep02+sep
lpc03=sep03+sep
lpc04=sep04+sep
lpc05=sep05+sep
lpc06=sep06+sep
lpc07=sep07+sep
lpc08=sep08+sep
lpc09=sep09+sep
lpc10=sep10+sep
lpc11=sep11+sep
lpc12=sep12+sep
lpc13=sep13+sep
lpc14=sep14+sep
lpc15=sep15+sep
lpc16=sep16+sep
lpc17=sep17+sep
lpc18=sep18+sep
lpc19=sep19+sep
lpc20=sep20+sep
end sub


SUB Mapa_LinSep 'linha de separacao
end sub


SUB Mapa_LinInf 'linha de informacao
'pxi=MemNum(00)                                    'posicao da informacao
PrWIN AJT_B,  0, 67.5+Doc_CntLin*4.5               'posicao base
PrWIN TX_N, xPosInf,  0,MemTxt$(00)                'listar informacao
end sub


SUB Mapa_vRexAcm 'acumular valor REX
tmp$=left$(MemTxt$(51),3)                          'separar texto de validacao
if tmp$="REX" then                                 'validar
   vRexAcm=vRexAcm+MemNum(23)                      'acumular
end if
end sub


SUB Mapa_vRexLst 'listar valor REX
if vRexAcm>0 then                                  'ha valor a listar ?
   txRex$ =FrmMoe$("",11,vRexAcm,MapMoe)
   PrWIN TX_N,  rexPxT, rexPy,"Aumento de reintegrações resultante de bens reavaliados extraordináriamente:"
   PrWIN TX_NP, rexPxV, rexPy,"N",txRex$           'listar valor
end if
end sub
##

