'Nome       : SncAmo_32.std
'Tipo       : LST WIN
'Data       : 2011/05/13
'Versao     : 1.0b
'Descricao  : Mapa de Amortizacoes 32 - SNC

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0b  ____/__/__ --------------------------------------------------
'Coorreccao de identificacao de grupo

'- Versao : 1.0a  2011/05/03 --------------------------------------------------
'Permitir listar decimal na coluna 10 (Taxa normal)

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


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


'==============================================================================
#ESP - Campos especificos
'==============================================================================
'Zoom para preview             [PrvZoom]=1.5
Zoom para preview             [PrvZoom]=1.0
Opcoes para impressora WIN   [PrWinOpc]=[ORI=L]

'so para debug
Modo de impressao               [EspMoImp]=PAG_W
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=Map_Amo_32
Nome                       [DocNom]=Map_Amo_32,Mapa de Depreciações a Amortizações

'formato
Saida/Impressora           [DocPrt]=PAG_W
'Saida/Impressora           [DocPrt]=PAG_W,PRV
Linhas por pagina          [DocLpg]=24
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Especifico do documento    [DocEsp]=XXX=Xyz

'funcoes de listagem
Listar cabecalho            [FxCAB]=Mapa_Cab
Listar linhas               [FxLIN]=Mapa_Lin; Sep; Inf; Sbt,0; Sbe, 0
Listar fim                  [FxFIM]=Mapa_Fim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
##


'==============================================================================
#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 diversas ----------------------------------------------------------
'-----------------------------------------------------------------------------
Sub Mapa_Cab 'cabecalho
call Mapa_PrpVar                             'preparar variaveis
call Mapa_CabCom                             'cabecalho comum
call Mapa_DefLin                             'definicao de linhas
call Mapa_TipMap                             'tipo de mapa

'separadores de colunas
'sep01 =xMin
'sep02 =  30
'sep03 =  61
'sep04 =  68
'sep05 =  76
'sep06 =  98
'sep07 = 121
'sep08 = 129
'sep09 = 151
'sep10 = 171
'sep11 = 178
'sep12 = 184
'sep13 = 207
'sep14 = 229
'sep15 = 236
'sep16 = 257
'sep17 = xMax

dxCv  = 22.0                                 'largura de coluna de valor
dxCp  =  6.5                                 'largura de coluna de %

call Mapa_LinPco                             'posicao de listagem das colunas nas linhas
sep01 =xMin                                  '( 1) enquadramento legal
sep02 =  30                                  '( 2) descricao
sep03 =  61                                  '( 3) mes inicio uso
sep04 =  68                                  '( 4) ano inicio uso
sep05 =  76                                  '( 5) valor contabilistico registado
sep06 = sep05 + dxCv                         '( 6) valor de aquisicao para efeitos fiscais
sep07 = sep06 + dxCv                         '( 7) anos de uso
sep08 = sep07 +  8.0                         '( 8) amortizacoes contabilizadas no periodo
sep09 = sep08 + dxCv                         '( 9) amortizacoes contabilizadas em periodos anteriores
sep10 = sep09 + dxCv                         '(10) taxa normal
sep11 = sep10 + dxCp                         '(11) taxa corrigida
sep12 = sep11 + dxCp                         '(12) limite fiscal do periodo
sep13 = sep12 + dxCv                         '(13) perdas por imparidades aceites no periodo
sep14 = sep13 + dxCv                         '(14) taxas perdidas acumuladas
sep15 = sep14 +  7.0                         '(15) amortizacoes e imparidades nao aceites como gasto
sep16 = sep15 + dxCv                         '(16) imparidades recuperadas no periodo
sep17 = xMax                                 'posicao final

call Mapa_LinPco                             'posicao de listagem das colunas nas linhas

pyVto = plc07 + 0.5                          'posicao Y para valores totais

'listar aspecto
PrWin FON, "BOLD-"                                            'desactivar bold
PrWIN FON,  7, 1                                              'activar fonte

'coluna 1
ide$ = "Código de acordo com|a tabela anexa ao|DR nº 25/2009" 'identificacao
PrWIN TX_OHV,"5.90",sep01, plc01, sep02, plc05,ide$           'listar identificacao
PrWIN TX_CTR,sep01, plc05, sep02, plc06,"(1)"                 'numero da coluna

'coluna 2
ide$ = "Descrição dos elementos|do activo"                    'identificacao
PrWIN GR_LI, sep02, plc01, sep02, plc07, 2                    'separador de coluna
PrWIN TX_MC, sep02, plc01, sep03, plc05,ide$                  'listar identificacao
PrWIN TX_CTR,sep02, plc05, sep03, plc06,"(2)"                 'numero da coluna

'data
PrWIN TX_CTR,sep03, plc01, sep05, plc02,"Data"                'listar identificacao
PrWIN GR_CX, sep03, plc02, sep05, plc04, 2                    'caixa data

tgr$ = "Inicio de|utilização"                                 'titulo de grupo
'PrWIN FON,  6, 1                                              'activar fonte
PrWIN TX_MC ,sep03, plc02, sep05, plc04,tgr$                  'listar identificacao de grupo
'PrWIN FON,  7, 1                                              'activar fonte

'coluna 3
PrWIN GR_LI, sep03, plc01, sep03, plc07, 2                    'separador de coluna
PrWIN TX_CTR,sep03, plc04, sep04, plc05,"Mês"                 'listar identificacao
PrWIN TX_CTR,sep03, plc05, sep04, plc06,"(3)"                 'numero da coluna

'coluna 4
PrWIN GR_LI, sep04, plc04, sep04, plc07, 2                    'separdor de coluna
PrWIN TX_CTR,sep04, plc04, sep05, plc05,"Ano"                 'listar identificacao
PrWIN TX_CTR,sep04, plc05, sep05, plc06,"(4)"                 'numero da coluna

'activos
PrWIN TX_CTR,sep05, plc01, sep08, plc02,"Activos"             'listar identificacao
PrWIN GR_LI, sep05, plc02, sep08, plc02, 2                    'separador horizontal

'coluna 5
ide$ = "Valor contabilistico|registado"                       'identificacao
PrWIN GR_LI, sep05, plc01, sep05, plc08, 2                    'separador de coluna
PrWIN TX_MC ,sep05, plc02, sep06, plc05,ide$                  'listar identificacao
PrWIN TX_CTR,sep05, plc05, sep06, plc06,"(5)"                 'numero da coluna

'coluna 6
ide$ = "Valor de aquisição|ou produção|para efeitos|fiscais"  'identificacao
PrWIN GR_LI, sep06, plc02, sep06, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep06, plc02, sep07, plc05,ide$                  'listar identificacao
PrWIN TX_CTR,sep06, plc05, sep07, plc06,"(6)"                 'numero da coluna

'coluna 7
ide$ = "Num.|de|anos|de util.|esper."                         'identificacao
PrWIN GR_LI, sep07, plc02, sep07, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep07, plc02, sep08, plc05,ide$                  'listar identificacao
PrWIN TX_CTR,sep07, plc05, sep08, plc06,"(7)"                 'numero da coluna

'coluna 8
'PrWIN FON,  7, 1                                              'activar fonte
ide$ = "Depreciações|amortizações e|perdas por|imparidade|contabilizadas|no periodo"
PrWIN GR_LI, sep08, plc01, sep08, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep08, plc01, sep09, plc05,ide$                  'listar identificacao
'PrWIN FON,  8, 1                                              'activar fonte
PrWIN TX_CTR,sep08, plc05, sep09, plc06,"(8)"                 'numero da coluna

'gastos fiscais
PrWIN TX_CTR,sep09, plc01, sep14, plc02,"Gastos fiscais"      'listar identificacao
PrWIN GR_LI, sep09, plc02, sep14, plc02, 2                    'separador horizontal

ide$ = "Depreciacoes e amortizações"                          'identificacao
PrWIN TX_CTR,sep10, plc02, sep13, plc03,ide$                  'listar identificacao
PrWIN GR_LI, sep10, plc03, sep13, plc03, 2                    'separador horizontal

'coluna 9
ide$ = "Depreciações|e amortizações|aceites em|periodos|anteriores"
PrWIN GR_LI, sep09, plc01, sep09, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep09, plc02, sep10, plc05,ide$                  'listar identificacao
PrWIN TX_CTR,sep09, plc05, sep10, plc06,"(9)"                 'numero da coluna

'coluna 10
ide$ = "Taxa %"                                               'identificacao
PrWIN GR_LI, sep10, plc02, sep10, plc08, 2                    'separador de coluna
PrWIN TX_OHV,"5.90",sep10, plc03, sep11, plc05,ide$           'listar identificacao
PrWIN TX_CTR,sep10, plc05, sep11, plc06,"(10)"                'numero da coluna

'coluna 11
ide$ = "Taxa|corrigida %"                                     'identificacao
PrWIN GR_LI, sep11, plc03, sep11, plc08, 2                    'separador de coluna
PrWIN TX_OHV,"5.90",sep11, plc03, sep12, plc05,ide$           'listar identificacao
PrWIN TX_CTR,sep11, plc05, sep12, plc06,"(11)"                'numero da coluna

'coluna 12
ide$ = "Limite fiscal|do periodo"                             'identificacao
inc$ = "(12)=[(10)x(6)] ou|[(6)-(9)x(11)"                     'identificacao para numero de coluna
PrWIN GR_LI, sep12, plc03, sep12, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep12, plc03, sep13, plc05,ide$                  'listar identificacao
PrWIN TX_MC, sep12, plc05, sep13, plc06,inc$                  'numero da coluna

'coluna 13
ide$ = "Perdas por|imparidades|aceites|no periodo||(art. 38º CIRC)"
PrWIN GR_LI, sep13, plc02, sep13, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep13, plc02, sep14, plc05,ide$                  'listar identificacao
PrWIN TX_CTR,sep13, plc05, sep14, plc06,"(13)"                'numero da coluna

'coluna 14
ide$ = "Taxas perdidas|acumuladas"                            'identificacao
PrWIN GR_LI, sep14, plc01, sep14, plc08, 2                    'separador de coluna
PrWIN TX_OHV,"5.90",sep14, plc01, sep15, plc05,ide$           'listar identificacao
PrWIN TX_CTR,sep14, plc05, sep15, plc06,"(14)"                'numero da coluna

'coluna 15
ide$ = "Depreciações|amortizações e|perdas por|imparidade não|aceites como|gastos"
inc$ = "(15)=(8)-[(12)+|(13)"                                 'identificacao para numero de coluna
PrWIN GR_LI, sep15, plc01, sep15, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep15, plc01, sep16, plc05,ide$                  'listar identificacao
PrWIN TX_MC, sep15, plc05, sep16, plc06,inc$                  'numero da coluna

'coluna 16
ide$ = "Depreciações|amortizações e|perdas por|imparidade|recuperadas|no periodo"
PrWIN GR_LI, sep16, plc01, sep16, plc08, 2                    'separador de coluna
PrWIN TX_MC, sep16, plc01, sep17, plc05,ide$                  'listar identificacao
PrWIN TX_CTR,sep16, plc05, sep17, plc06,"(16)"                'numero da coluna

'totais
PrWIN FON, 8, 1                                               'activar fonte
PrWin FON, "BOLD+"                                            'activar bold
PrWIN TX_N,25.0, pyVto, "Total geral ou a transportar ....."  'identificador
PrWin FON, "BOLD-"                                            'desactivar bold
PrWIN FON, 10, 1                                              'activar fonte

'terminar
PrWIN FON, 10, 1                                              'activar fonte
end sub


Sub Mapa_PosLin 'posicionar linha
pyb   = yLin - linSep                        'Y base
pyLin = pyb + Doc_CntLin * linSep            'Y da linha

PrWIN AJT_B,  0, pyLin                       'posicao base
end sub


Sub Mapa_PosLinAjt 'posicionar linha - com ajuste
pyb   = yLin - linSep                        'Y base
pyLin = pyb + Doc_CntLin * linSep            'Y da linha
pyLin = pyLin + 0.5                          'Y da linha - ajustado

PrWIN AJT_B,  0, pyLin                       'posicao base
end sub


Sub Mapa_Lin 'linha 
'call Mapa_PosLin                             'posicionar linha
call Mapa_PosLinAjt                          'posicionar linha + ajuste

PrWIN FON, 8, 1                              'activar fonte

call Mapa_PrpVarSnc                          'preparar variaveis SNC
vNom$ = MemTxt$(22)                          'nome

PrWIN TX_N,  lpc01+2,  0,MemTxt$(30)         '( 1) enquadramento legal
PrWIN TX_DMX,lpc02+0,  0, 30,vNom$           '( 2) nome
PrWIN TX_N,  lpc03+2,  0,@UsoMes             '( 3) mes inicio uso
PrWIN TX_CTR,lpc04, 0,lpc05, 0,@UsoAno       '( 4) ano inicio uso
PrWIN TX_NP, lpc05+1,  0,"N",@vSncCtbReg     '( 5) valor contabilistico registado
PrWIN TX_NP, lpc06+1,  0,"N",@vSncAqiFis     '( 6) valor de aquisicao para efeitos fiscais
PrWIN TX_NP, lpc07+2,  0,"N",@aUso           '( 7) anos de uso
PrWIN TX_NP, lpc08+1,  0,"N",@vSncAmoPer     '( 8) amortizacoes contabilizadas no periodo
PrWIN TX_NP, lpc09+1,  0,"N",@vSncAmoPea     '( 9) amortizacoes contabilizadas em periodos anteriores

PrWIN FON, 7, 1                              'activar fonte
'PrWIN TX_NP, lpc10+0,  0,"N",@vSncTaxNor     '(10) taxa normal
'PrWIN TX_CTR,lpc10, 0,lpc11, 0,@vSncTaxNor   '(10) taxa normal

dy = linSep - 1                              'altura da zona
vtx$ = trim$(@vSncTaxNor)                    'ajustar texto
PrWIN TX_AHV,5,lpc10-1, 0,lpc11,dy,vtx$      '(10) taxa normal
PrWIN FON, 8, 1                              'activar fonte

'PrWIN TX_NP, lpc11+0,  0,"N",@vSncTaxCor     '(11) taxa corrigida

PrWIN TX_NP, lpc12+1,  0,"N",@vSncLfiPer     '(12) limite fiscal do periodo
PrWIN TX_NP, lpc13+1,  0,"N",@vSncPeiPer     '(13) perdas por imparidades aceites no periodo
PrWIN TX_NP, lpc14+0,  0,"N",@vSncTaxPer     '(14) taxas perdidas acumuladas
PrWIN TX_NP, lpc15+1,  0,"N",@vSncNacGas     '(15) amortizacoes e imparidades nao aceites como gasto
PrWIN TX_NP, lpc16-1,  0,"N",@vSncPeiRpe     '(16) imparidades recuperadas no periodo

PrWIN FON, 10, 1                             'activar fonte

call Mapa_vRexAcm                            'acumular valor REX
end sub


Sub Mapa_LinSbt 'linha de subtotais
rgp = MemNum(10)                             'registos no grupo
if rgp > 1 then                              'separar ?
   tmp = CntLin("INC",1)                     'contar linha
   call Mapa_GrpSbt                          'subtotais
end if
tmp = CntLin("INC",1)                        'contar linha (separacao)
x = TotLpz(2)                                'limpar totais
end sub


Sub Mapa_LinSbe 'linha de separacao de bens
sbeTip$ = VarCom$("Sbe_Tip")                 'tipo de separacao
sbeIde$ = VarCom$("Sbe_Ide")                 'identificacao da separacao

tmp = CntLin("MIN",3)                        'minimo de linhas
tmp = CntLin("INC",2)                        'contar linhas
call Mapa_PosLin                             'posicionar linha

PrWIN TX_N,  lpc02+1,  0,sbeIde$             'listar identificacao
end sub


Sub Mapa_GrpSbt 'subtotais
call Mapa_PosLin                             'posicionar linha
dy = linSep                                  'altura da linha

PrWIN FON, 8, 1                              'activar fonte

ideSep$ = MemTxt$(22)                        'identificacao

PrWIN TX_AHV,5,lpc02,0,lpc03,dy,ideSep$      '( 2) listar identificacao

PrWIN TX_NP, lpc05+1,  0,"N",@gSncCtbReg     '( 5) valor contabilistico registado
PrWIN TX_NP, lpc06+1,  0,"N",@gSncAqiFis     '( 6) valor de aquisicao para efeitos fiscais

PrWIN TX_NP, lpc08+1,  0,"N",@gSncAmoPer     '( 8) amortizacoes contabilizadas no periodo
PrWIN TX_NP, lpc09+1,  0,"N",@gSncAmoPea     '( 9) amortizacoes contabilizadas em periodos anteriores

PrWIN TX_NP, lpc12+2,  0,"N",@gSncLfiPer     '(12) limite fiscal do periodo
PrWIN TX_NP, lpc13+1,  0,"N",@gSncPeiPer     '(13) perdas por imparidades aceites no periodo

PrWIN TX_NP, lpc15+1,  0,"N",@gSncNacGas     '(15) amortizacoes e imparidades nao aceites como gasto
PrWIN TX_NP, lpc16-1,  0,"N",@gSncPeiRpe     '(16) imparidades recuperadas no periodo

PrWIN FON, 10, 1                             'activar fonte
end sub


Sub Mapa_Fim 'fim de pagina
PrWIN FON, 8, 1                              'activar fonte
PrWin FON, "BOLD+"                           'activar bold

py = pyVto - 0.0                             'posicao a usar
PrWIN AJT_B,  0, py                          'posicao base

PrWIN TX_NP, lpc05+1,  0,"N",@tSncCtbReg     '( 5) valor contabilistico registado
PrWIN TX_NP, lpc06+1,  0,"N",@tSncAqiFis     '( 6) valor de aquisicao para efeitos fiscais

PrWIN TX_NP, lpc08+1,  0,"N",@tSncAmoPer     '( 8) amortizacoes contabilizadas no periodo
PrWIN TX_NP, lpc09+1,  0,"N",@tSncAmoPea     '( 9) amortizacoes contabilizadas em periodos anteriores

PrWIN TX_NP, lpc12+2,  0,"N",@tSncLfiPer     '(12) limite fiscal do periodo
PrWIN TX_NP, lpc13+1,  0,"N",@tSncPeiPer     '(13) perdas por imparidades aceites no periodo

PrWIN TX_NP, lpc15+1,  0,"N",@tSncNacGas     '(15) amortizacoes e imparidades nao aceites como gasto
PrWIN TX_NP, lpc16-1,  0,"N",@tSncPeiRpe     '(16) imparidades recuperadas no periodo

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

PrWIN FP                                     'fim de pagina
end sub

##


'==============================================================================
#INC - Inclusao de ficheiros
'==============================================================================
Funcoes comuns                 =[IMO_LST],SncAmo_Com.std
##

