'Nome       : SncAmo_Com.std
'Tipo       : LST WIN
'Data       : 2011/10/14
'Versao     : 1.0b
'Descricao  : Dados comuns para Mapas de Amortizacoes - SNC
'Notas      : Ficheiro para incluir nos documentos

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0b  ____/__/__ --------------------------------------------------
'Definir valor para listar anos de uso

'- Versao : 1.0a  2011/05/03 --------------------------------------------------
'Usar 1 decimal para Taxa normal

'- Versao : 1.0   2011/03/11 --------------------------------------------------
'Versao base


'==============================================================================
#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
'- (61) --------------------------------------------------->'Comentario
Pag       = Doc_CntPag                                      'pagina
DataExt   = FrmVal$(Sig_DtHoje,45,0)                        'data por extenso

'dados da empresa
EmpIde    = Emp_Inf_Nome$                                   'empresa
EmpActiv  = Emp_Inf_Activ$                                  'actividade
EmpCtrb   = left$(TxCarEli$(0,Emp_Inf_Contrib$," "),9)      'contribuinte
EmpCae    = Emp_Inf_Cae$                                    'CAE

'diversos
TpMap     = MemTxt$(1)                                      'tipo de mapa

ExerAno   = FrmDt$("A4",Sig_DtHoje)                         'execrcicio
PtribIni  = MemTxt$(11)                                     'periodo de tributacao - Inicio
PtribFim  = MemTxt$(12)                                     'periodo de tributacao - Fim
Ptrib     = "De "+MemTxt$(11)+" a "+MemTxt$(12)             'periodo de tributacao

'variaveis a listar
Data      = FrmVal$(MemNum(41),44,0)                        'data de amortizacao
AqiAno    = FrmDt$("A4",MemNum(42))                         'data de aquisicao
UsoAno    = FrmDt$("A4",MemNum(43))                         'inicio de uso - ANO
'UsoMes   = FrmDt$("M",MemNum(43))                          'inicio de uso - Mes
UsoMes    = FrmVal$(MemNum(45),20, 2.0)                     'mes de inicio de uso
aUso      = FrmVal$(MemNum(12),20, 2.0)                     'anos de uso

'- Valores SNC ----------------------------------------------------------------
vSncCtbReg = FrmMoe$("",12,uSncCtbReg,MapMoe)               '( 5) valor contabilistico registado
vSncAqiFis = FrmMoe$("",12,uSncAqiFis,MapMoe)               '( 6) valor de aquisicao para efeitos fiscais
vSncAmoPer = FrmMoe$("",12,uSncAmoPer,MapMoe)               '( 8) amortizacaoes contabilizadas no periodo
vSncAmoPea = FrmMoe$("",12,uSncAmoPea,MapMoe)               '( 9) amortizacaoes em periodos anteriores

'vSncTaxNor = FrmNum$(3.0,uSncTaxNor)                        '(10) taxa normal
vSncTaxNor = FrmNum$(3.1,uSncTaxNor)                        '(10) taxa normal

vSncTaxCor = FrmNum$(3.0,uSncTaxCor)                        '(11) taxa corrigida
vSncLfiPer = FrmMoe$("",12,uSncLfiPer,MapMoe)               '(12) limite fiscal do periodo
vSncPeiPer = FrmMoe$("",12,uSncPeiPer,MapMoe)               '(13) perdas por imparidades aceites no periodo
vSncTaxPer = FrmNum$(3.0,uSncTaxPer)                        '(14) taxas perdidas acumuladas
vSncNacGas = FrmMoe$("",12,uSncNacGas,MapMoe)               '(15) amortizacoes e imparidades nao aceites como gasto
vSncPeiRpe = FrmMoe$("",12,uSncPeiRpe,MapMoe)               '(16) imparidades recuperadas no periodo

'grupo
gSncCtbReg = FrmMoe$("",12,Total(vSncCtbReg,2),MapMoe)      '( 5) valor contabilistico registado
gSncAqiFis = FrmMoe$("",12,Total(vSncAqiFis,2),MapMoe)      '( 6) valor de aquisicao para efeitos fiscais
gSncAmoPer = FrmMoe$("",12,Total(vSncAmoPer,2),MapMoe)      '( 8) amortizacaoes contabilizadas no periodo
gSncAmoPea = FrmMoe$("",12,Total(vSncAmoPea,2),MapMoe)      '( 9) amortizacaoes em periodos anteriores
gSncLfiPer = FrmMoe$("",12,Total(vSncLfiPer,2),MapMoe)      '(12) limite fiscal do periodo
gSncPeiPer = FrmMoe$("",12,Total(vSncPeiPer,2),MapMoe)      '(13) perdas por imparidades aceites no periodo
gSncNacGas = FrmMoe$("",12,Total(vSncNacGas,2),MapMoe)      '(15) amortizacoes e imparidades nao aceites como gasto
gSncPeiRpe = FrmMoe$("",12,Total(vSncPeiRpe,2),MapMoe)      '(16) imparidades recuperadas no periodo

'totais
tSncCtbReg = FrmMoe$("",12,Total(vSncCtbReg,1),MapMoe)      '( 5) valor contabilistico registado
tSncAqiFis = FrmMoe$("",12,Total(vSncAqiFis,1),MapMoe)      '( 6) valor de aquisicao para efeitos fiscais
tSncAmoPer = FrmMoe$("",12,Total(vSncAmoPer,1),MapMoe)      '( 8) amortizacaoes contabilizadas no periodo
tSncAmoPea = FrmMoe$("",12,Total(vSncAmoPea,1),MapMoe)      '( 9) amortizacaoes em periodos anteriores
tSncLfiPer = FrmMoe$("",12,Total(vSncLfiPer,1),MapMoe)      '(12) limite fiscal do periodo
tSncPeiPer = FrmMoe$("",12,Total(vSncPeiPer,1),MapMoe)      '(13) perdas por imparidades aceites no periodo
tSncNacGas = FrmMoe$("",12,Total(vSncNacGas,1),MapMoe)      '(15) amortizacoes e imparidades nao aceites como gasto
tSncPeiRpe = FrmMoe$("",12,Total(vSncPeiRpe,1),MapMoe)      '(16) imparidades recuperadas no periodo

'- Natureza dos activos -------------------------------------------------------
'- (61) --------------------------------------------------->'Comentario
vNat_AFI   = VarCom$("Nat_AFI")                             'activos fixos tangiveis
vNat_AIN   = VarCom$("Nat_AIN")                             'activos intangiveis
vNat_PIN   = VarCom$("Nat_PIN")                             'propriedades de investimento

'- Metodo utilizado -----------------------------------------------------------
vMet_QUC   = VarCom$("Met_QUC")                             'quotas constantes
vMet_QUD   = VarCom$("Met_QUD")                             'quotas decrescentes
vMet_OUT   = VarCom$("Met_OUT")                             'outro

##


'==============================================================================
#PGM - Programa/Funcoes
'==============================================================================
'- +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
'- (13) --->'Comentario
'- (25) --------------->'Comentario
'- (28) ------------------>'Comentario
'- (40) ------------------------------>'Comentario
'- (43) --------------------------------->'Comentario
'- (46) ------------------------------------>'Comentario
'- (49) --------------------------------------->'Comentario
'- (52) ------------------------------------------>'Comentario
'- (55) --------------------------------------------->'Comentario
'- (58) ------------------------------------------------>'Comentario
'- (61) --------------------------------------------------->'Comentario
'- (64) ------------------------------------------------------>'Comentario
'- (67) --------------------------------------------------------->'Comentario
'- (70) ------------------------------------------------------------>'Comentario

'-----------------------------------------------------------------------------
'- 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 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
'nada a executar
end sub


'-----------------------------------------------------------------------------
'- Funcoes diversas ----------------------------------------------------------
'-----------------------------------------------------------------------------
Sub Mapa_PrpVar 'preparar variaveis
xMin =  18.0                                                'X minimo
xMax = 278.0                                                'X maximo
yMin =  46.0                                                'Y minimo
yLin =  79.0                                                'Y inicio de linhas
yMax = 195.0                                                'Y maximo

linSep =  4.5                                               'separacao de linhas
linNum = 24                                                 'numero de linhas

'posicao de linhas
plc01 = yMin                                                'linha 1 - inicio de titulo
plc02 = 51                                                  'linha 2 - fim de titulo de grupo de colunas
plc03 = 59                                                  'linha 3 - fim de sub-titulo (gastos fiscais)
plc04 = 62                                                  'linha 4 - data
plc05 = 71                                                  'linha 5 - numero de coluna
plc06 = yLin                                                'linha 6 - fim de zona de titulos
plc07 = yLin + linNum * linSep                              'linha 7 - inicio de totais
plc08 = plc07 + 5.0                                         'linha 8 - fim de totais
plc09 = 0 + (plc07 + plc08) / 2                             'posicao de identificacao de totais
end sub


Sub Mapa_CabCom 'cabecalho comum
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 

py1 =  16.0                                                 'posicao Y1
py2 =  45.0                                                 'posicao Y2

'zona de titulo 1
px1 = xMin                                                  'posicao X1
px2 =  76.0                                                 'posicao X2
PrWIN GR_CX, px1, py1, px2, py2, 2                          'caixa envolvente

PrWIN FON,  8, 1                                            'activar fonte
PrWin FON, "BOLD+"                                          'activar bold
PrWIN TX_N,  27.0, 20.0,"Nº DE IDENTIFICAÇÃO FISCAL"        'titulo
PrWin FON, "BOLD-"                                          'desactivar bold
PrWIN FON,  8, 3                                            'activar fonte
PrWIN TX_CO, 31.0, 25.0, 9,@EmpCtrb                         'contribuinte
PrWIN FON,  8, 1                                            'activar fonte

PrWin FON, "BOLD+"                                          'activar bold
PrWIN TX_N, 30.0, 32.0,"PERIODO DE TRIBUTAÇÃO"              'titulo
PrWin FON, "BOLD-"                                          'desactivar bold
PrWIN FON,  8, 3                                            'activar fonte
PrWIN TX_CO,41.0, 37.0, 4,@ExerAno                          'exercicio
PrWIN FON,  8, 1                                            'activar fonte

'zona de titulo 2
px1 =  77.0                                                 'posicao X1
px2 = 237.0                                                 'posicao X2

uy1 = py1                                                   'Y1 a usar
uy2 = 26.0                                                  'Y2 a usar
PrWIN GR_CX, px1, uy1, px2, uy2, 2                          'caixa envolvente
PrWIN FON,  8, 1                                            'activar fonte

ide$ = "MAPA DE DEPRECIAÇÕES E AMORTIZAÇÕES"                'identificacao
PrWin FON, "BOLD+"                                          'activar bold
PrWIN FON, 16, 1                                            'activar fonte
PrWIN TX_CTR,px1, uy1, px2, uy2,ide$                        'listar identificacao
PrWIN FON,  8, 1                                            'activar fonte
PrWin FON, "BOLD-"                                          'desactivar bold

uy1 = 27.0                                                  'Y1 a usar
uy2 = py2                                                   'Y2 a usar
pxs = 157.0                                                 'X do separador
PrWIN GR_CX, px1, uy1, px2, uy2, 2                          'caixa envolvente
PrWIN GR_LI, pxs, uy1, pxs, uy2, 2                          'linha de separacao vertical

gy0 = 28.0                                                  'Y para titulo do grupo
gy1 = 32.0                                                  'Y para opcao 1
gy2 = 36.0                                                  'Y para opcao 2
gy3 = 40.0                                                  'Y para opcao 3

'grupo 1
gx0 = 85                                                    'X do titulo de grupo
gx1 = gx0 +  5.0                                            'X das opcoes
gx2 = gx0 + 57.0                                            'X da caixa de opcao
PrWin FON, "BOLD+"                                          'activar bold
PrWIN TX_N, gx0, gy0,"NATUREZA DOS ACTIVOS"                 'identificacao de grupo
PrWin FON, "BOLD-"                                          'desactivar bold
PrWIN TX_N, gx1, gy1,"ACTIVOS FIXOS TANGIVEIS"              'identificacao da opcao
PrWIN TX_N, gx1, gy2,"ACTIVOS INTANGIVEIS"                  'identificacao da opcao
PrWIN TX_N, gx1, gy3,"PROPRIEDADES DE INVESTIMENTO"         'identificacao da opcao

PrWIN FON,  5, 1                                            'activar fonte
PrWIN TX_CO, gx2, gy1, 1,@vNat_AFI                          'natureza - opcao 1
PrWIN TX_CO, gx2, gy2, 1,@vNat_AIN                          'natureza - opcao 2
PrWIN TX_CO, gx2, gy3, 1,@vNat_PIN                          'natureza - opcao 3
PrWIN FON,  8, 1                                            'activar fonte

'grupo 2
gx0 = 168                                                   'X do titulo de grupo
gx1 = gx0 +  5.0                                            'X das opcoes
gx2 = gx0 + 57.0                                            'X da caixa de opcao
PrWin FON, "BOLD+"                                          'activar bold
PrWIN TX_N, gx0, gy0,"MÉTODO UTILIZADO"                     'identificacao de grupo
PrWin FON, "BOLD-"                                          'desactivar bold
PrWIN TX_N, gx1, gy1,"QUOTAS CONSTANTES"                    'identificacao da opcao
PrWIN TX_N, gx1, gy2,"QUOTAS DECRESCENTES"                  'identificacao da opcao
PrWIN TX_N, gx1, gy3,"OUTRO"                                'identificacao da opcao

PrWIN FON,  5, 1                                            'activar fonte
PrWIN TX_CO, gx2, gy1, 1,@vMet_QUC                          'metodo - opcao 1
PrWIN TX_CO, gx2, gy2, 1,@vMet_QUD                          'metodo - opcao 2
PrWIN TX_CO, gx2, gy3, 1,@vMet_OUT                          'metodo - opcao 3
PrWIN FON,  8, 1                                            'activar fonte

'zona de titulo 3
px1 = 238.0                                                 'posicao X1
px2 = xMax                                                  'posicao X2
PrWIN GR_CX, px1, py1, px2, py2, 2                          'caixa envolvente
PrWIN FON,  8, 1                                            'activar fonte

PrWin FON, "BOLD+"                                          'activar bold
PrWIN FON, 14, 1                                            'activar fonte
PrWIN TX_N, 264.0, 24.0,"IRC"                               'identificacao
PrWin FON, "BOLD-"                                          'desactivar bold
PrWIN FON, 10, 1                                            'activar fonte

PrWin FON, "BOLD+"                                          'activar bold
PrWIN TX_N, 242.0, 37.0,"MODELO"                            'identificacao
PrWin FON, "BOLD-"                                          'desactivar bold

PrWIN FON, 20, 1                                            'activar fonte
PrWin FON, "BOLD+"                                          'activar bold
PrWIN TX_N, 264.0, 35.0,"32"                                'tipo do mapa
PrWin FON, "BOLD-"                                          'desactivar bold

PrWIN FON, 10, 1                                            'activar fonte
end sub


Sub Mapa_TipMap 'tipo do mapa
PrWIN FON, 16, 1                                            'activar fonte
PrWIN TX_N, 270.0, 17.0,@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
PrWIN GR_CX,  xMin, plc01, xMax, plc08, 2                   'caixa envolvente
PrWIN GR_CX,  xMin, plc05, xMax, plc06, 2                   'caixa envolvente - zona de numero de coluna

'marcar linhas
for i = 1 to linNum
py = plc06 + i * linSep                                     'posicao Y da linha
PrWIN GR_LI,  xMin, py, xMax, py, 2                         'linha

'debug
'pyNli = py - linSep                                        'posicao da linha
'PrWIN TX_N, 20,pyNli ,i                                    'listar numero da linha
next
end sub


SUB Mapa_LinPco 'posicao de listagem das colunas nas linhas
sep = 0.5                                                   'separacao

lpc01 = sep01 + sep                                         'coluna 01
lpc02 = sep02 + sep                                         'coluna 02
lpc03 = sep03 + sep                                         'coluna 03
lpc04 = sep04 + sep                                         'coluna 04
lpc05 = sep05 + sep                                         'coluna 05
lpc06 = sep06 + sep                                         'coluna 06
lpc07 = sep07 + sep                                         'coluna 07
lpc08 = sep08 + sep                                         'coluna 08
lpc09 = sep09 + sep                                         'coluna 09
lpc10 = sep10 + sep                                         'coluna 10
lpc11 = sep11 + sep                                         'coluna 11
lpc12 = sep12 + sep                                         'coluna 12
lpc13 = sep13 + sep                                         'coluna 13
lpc14 = sep14 + sep                                         'coluna 14
lpc15 = sep15 + sep                                         'coluna 15
lpc16 = sep16 + sep                                         'coluna 16
lpc17 = sep17 + sep                                         'coluna 17
lpc18 = sep18 + sep                                         'coluna 18
lpc19 = sep19 + sep                                         'coluna 19
lpc20 = sep20 + sep                                         'coluna 30
end sub


Sub Mapa_LinSep 'linha de separacao
'nada a executar
end sub


Sub Mapa_LinInf 'linha de 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)                'formatar
   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


Sub Mapa_PrpVarSnc 'preparar variaveis SNC
uSncCtbReg = VarCom("Snc_CtbReg")                           '( 5) valor contabilistico registado
uSncAqiFis = VarCom("Snc_AqiFis")                           '( 6) valor de aquisicao para efeitos fiscais
uSncAmoPer = VarCom("Snc_AmoPer")                           '( 8) amortizacoes contabilizadas no periodo
uSncAmoPea = VarCom("Snc_AmoPea")                           '( 9) amortizacoes contabilizadas em periodos anteriores
uSncTaxNor = VarCom("Snc_TaxNor")                           '(10) taxa normal
uSncTaxCor = VarCom("Snc_TaxCor")                           '(11) taxa corrigida
uSncLfiPer = VarCom("Snc_LfiPer")                           '(12) limite fiscal do periodo
uSncPeiPer = VarCom("Snc_PeiPer")                           '(13) perdas por imparidades aceites no periodo
uSncTaxPer = VarCom("Snc_TaxPer")                           '(14) taxas perdidas acumuladas
uSncNacGas = VarCom("Snc_NacGas")                           '(15) amortizacoes e imparidades nao aceites como gasto
uSncPeiRpe = VarCom("Snc_PeiRpe")                           '(16) imparidades recuperadas no periodo
end sub

##

