'Nome       : IRSIND.STD
'Tipo       : LST
'Data       : 2011/11/24
'Versao     : 2.0
'Descricao  : I.R.S. (Declaracao Individual)


'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.0  1999/12/07 ---------------------------------------------------
'Versao base

'- Versao : 1.0a 2000/06/28 ---------------------------------------------------
'Formatar valores consoante moeda da empresa

'- Versao : 1.0b 2000/06/28 ---------------------------------------------------
'forcar istagem a 10 cpi

'- Versao : 1.0c 2000/06/28 ---------------------------------------------------
Impressao em modo grafico

'- Versao : 1.0d 2000/12/04 ---------------------------------------------------
'Formatar valores consoante decimais indicados pelo programa

'- Versao : 1.0e 2001/01/05 ---------------------------------------------------
'Alterado aspecta da listagem grafica

'- Versao : 1.0f 2001/01/18 ---------------------------------------------------
'Nao mostrava contribuinte da empresa
'Listava o ano por cima de texto

'- Versao : 1.0g 2001/02/15 ---------------------------------------------------
'Colocar intruccao para fim de pagina
'Alteracao nos ficheiros a usar nas inclusoes

'- Versao : 1.1  2002/02/05 ---------------------------------------------------
'Eliminada mencao ao artigo na declaracao grafica 

'- Versao : 1.1a 2005/10/21 ---------------------------------------------------
'correcção ortográfica

'- Versao : 1.1b 2006/01/06 ---------------------------------------------------
'correcção nas variaveis das datas (compatibilizar com SIG4)

'- Versao : 1.2  2010/01/25 ---------------------------------------------------
'forcar cor fundo para anular sobreposicao na previsualizacao
'compatibilizar com listagem pdf

'- Versao : 1.3  2011/10/12 ---------------------------------------------------
'compatibilizar com acumuladores criados
'eliminar impressao modo texto

'- Versao : 1.3a 2011/11/24 ---------------------------------------------------
'apresentar remuneracao iliquida

'- Versao : 2.0  2015/??/?? ---------------------------------------------------
'Listagem resumo de valores

'- Versao : 2.0  2016/01/12 ---------------------------------------------------
'Alteração ao texto da declaração individual



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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=IRS
Nome                       [DocNom]=IRS_Ind_G,Declaração Individual 

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=1
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0

'funcoes de listagem
Listar cabecalho            [FxCAB]=Lst_CabG
Listar linhas               [FxLIN]=Lst_LinG
Listar fim                  [FxFIM]=Lst_FimG
##



'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=IRS
Nome                       [DocNom]=IRS_Ind2_G,Resumo de valores

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=37
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=48L
Ajustar pagina             [DocApg]=0
Listar continuo            [DocEsp]=LstCnt=1
Tipo de rendimento         [DocEsp]=TipRnd=


'funcoes de listagem
Listar cabecalho            [FxCAB]=LstCab
Listar linhas               [FxLIN]=LstLin
Listar fim                  [FxFIM]=LstFim
##


'==============================================================================
#VAR - Variaveis
'==============================================================================
EmpNome     =Emp_Inf_Nome$
EmpMorad    =Emp_Inf_Morada$
EmpLocal    =Emp_Inf_Local$
EmpCpost    =Emp_Inf_Cpost$
EmpContrib  =Emp_inf_Contrib$
EmpTelef    =Emp_Inf_Telef$
Ano         =FrmDt$("A4",Sig_DtHoje)

DataExt     =FrmVal$(Sig_DtHoje,45,0)
DataExtGrf  =Emp_Inf_Local$+", "+FrmVal$(Sig_DtHoje,45,0)

Nome        =Gpe_Mst_Nome$
Morada      =Gpe_Mst_Morada$
Local       =Gpe_Mst_Local$
Cpost       =Gpe_Mst_Cpost$
Contrib     =Gpe_Mst_Ctrb$
TipRnd      =Gpe_Mst_TipRnd$
Moeda       =EmpTabCon$("MOEDA",Emp_Inf_Moeda$,"NOME")


'resumo de valores ---------------------

'Nif         = GpeNifFrm$(Gpe_Mst_Ctrb$)
Nif         = Gpe_Mst_Ctrb$
Nome        = Gpe_Mst_Nome$
TipRnd      = Gpe_Mst_TipRnd$
Rend        = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","VI"))
Ise         = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","ISE"))
Ret         = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","RT"))
Tsu         = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","TSU"))
Cga         = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","CGA"))
Adse        = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","ADSE"))
Snd         = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","SND"))
Sbt         = GpeFrmMoe$("",12,GpeAcmLst("V","IRS","SBTNATAL")+GpeAcmLst("V","IRS","SBT"))

TotRend     = GpeFrmMoe$("",12,Total(Rend))
TotIse      = GpeFrmMoe$("",12,Total(Ise))
TotRet      = GpeFrmMoe$("",12,Total(Ret))
Tottsu      = GpeFrmMoe$("",12,Total(tsu))
TotCga      = GpeFrmMoe$("",12,Total(cga))
TotAdse     = GpeFrmMoe$("",12,Total(adse))
TotSnd      = GpeFrmMoe$("",12,Total(snd))
TotSbt      = GpeFrmMoe$("",12,Total(Sbt))

##

'==============================================================================
#INC - Variaveis comuns
'==============================================================================
Variaveis  comuns                 =[SIG_Dir.Div],LsComVar.std
##


'==============================================================================
#PGM - Formato do documento
'==============================================================================
SUB FxIni 'funcao de inicializacao
Call SigLstIni
End sub


Sub Lst_CABG
PrWIN COR_F, 15                                  'cor de fundo
End sub


Sub Lst_LinG
call SigEmpMorada

PrWIN TX_N,     0,   25,"Contribuinte :"
PrWIN TX_N,     25,  25,@Empcontrib

PrWIN AJT_B,  MargemJanelaCarta, LinhaJanelaCarta      'posicao base
PrWIN COR_T,  CorJanelaCarta                           'cor para morada

PrWIN FON  ,  FntJanelaCarta                           'activar fonte
PrWIN TX_N,     0,    5,@Nome                     
PrWIN TX_N,     0,   10,@Morada
PrWIN TX_N,     0,   15,@Local
PrWIN TX_N,     0,   20,@Cpost                  

PrWIN AJT_B,  0, 80                 'posicao base
PrWin FON, 20,1
PrWIN TX_CTR,  0,0,MargemD,0,"D e c l a r a ç ã o "
PrWIN GR_LI, 70, 10, 130, 10               	'linha

PrWIN AJT_B,  Margem, 110                 'posicao base
PrWin FON,   11
cl=15
PrWin TX_N,   Cl,7   ,"Declaramos para efeitos de I.R.S., o total de remunerações pagas por esta"

tx$="empresa durante o ano de "+  FrmDt$("A4",Sig_DtHoje)
PrWin TX_N,   Cl,14  ,tx$

PrWin FON, "BOLD+"
PrWin TX_N,      cl,30,@Nome
PrWin FON, "BOLD-"
PrWin TX_N,      Cl,40,"Contribuinte n."
PrWin TX_N,   Cl+35,40,@Contrib

PrWin TX_N,      100,40,"Tipo de Rendimentos:
PrWin TX_N,   100+45,40,@TipRnd 

PrWIN AJT_B,Cl+30, 165                                 'posicao bas

lin=0

col=Cl+80

mxi=GpeAcmLstTit$("ACM_CNT","IRS")
for cnt=1 to mxi
  tit$=GpeAcmLstTit$("ACM","IRS",cnt)
  ac$=GpeAcmLstTit$("ACM_COD","IRS",cnt)
  vl=GpeAcmLst("V","IRS",ac$)

  if vl>0 then
    vusa$=GpeFrmMoe$("",9,vl)
    PrWin TX_N,   0,lin,tit$
    PrWin TX_NP, Col,lin,"N",vusa$
    lin=lin+7
  end if
next

PrWIN AJT_B,  Margem+cl, 220                 'posicao base
PrWin TX_N ,  0,0,"Valores apresentados na moeda : "
PrWin TX_N , 65,0,@Moeda

PrWIN AJT_B,  Margem+cl, 250                 'posicao base
PrWin TX_N,50,0,@DataExtGrf
end sub


Sub Lst_FimG
PrWin FP
end sub



Sub LstCabIni
fx=PrtOri("L")
FimDoc=170
LinPer=FimDoc+18
end sub


'-------------------------------------------------------------------------------
Sub LstCab   'listar cabecalho
'-------------------------------------------------------------------------------
SigCabNorOpcTit=2 		            'alterar origem do titulo
Titulo$="I.R.S. Individual - resumo de valores"
Call SigLstCab

esp=21                                      'espaco para valor
Lin1=1


'posicao das colunas
Col1=0                            		'numero
Col2=18                              'nome
Col3=Col2+85                                'valor1
Col4=Col3+esp                               'valor 2
Col5=col4+esp                               'valor 3
Col6=col5+esp                               'valor 4
Col7=col6+esp                               'valor 4
Col8=col7+esp                               'valor 4
Col9=col8+esp                               'valor 4
Col10=col9+esp                               'valor 4
ColMax=col10+esp                             'valor 4

call SigLstCab

PrWIN COR_T,  CorTitLst                     'cor de titulo
PrWIN FON  ,   9 ,  1                       'activar fonte
PrWIN AJT_B,  Margem, 26                    'posicao base

'listar titulos
PrWIN TX_CTR,  Col1,Lin1,Col2,Lin1,"NIF"
PrWIN TX_CTR,  Col2,Lin1,Col3,Lin1,"Nome"
PrWIN TX_N,    Col3-10,Lin1,"Cat"
PrWIN TX_CTR,  Col3+3,Lin1,Col4,Lin1,"Rend.Sujeito"
PrWIN TX_CTR,  Col4+3,Lin1,Col5,Lin1,"Rend.Isento"
PrWIN TX_CTR,  Col5+3,Lin1,Col6,Lin1,"IRS"
PrWIN TX_CTR,  Col6+3,Lin1,Col7,Lin1,"TSU"
PrWIN TX_CTR,  Col7+3,Lin1,Col8,Lin1,"CGA"
PrWIN TX_CTR,  Col8+3,Lin1,Col9,Lin1,"ADSE"
PrWIN TX_CTR,  Col9+3,Lin1,Col10,Lin1,"Sindicato"
PrWIN TX_CTR,  Col10+3,Lin1,ColMax,Lin1,"Sobretaxa"

PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI, 0, 0, colmax, 0               	'linha
PrWIN GR_LI, 0, 5, colmax, 5               	'linha

PrWIN COR_T,CorLin                              'cor de linhas
InicioEscrita=28
End Sub


'-------------------------------------------------------------------------------
Sub LstLin
'-------------------------------------------------------------------------------
PrWIN AJT_B,  Margem, InicioEscrita+Doc_CntLin*4          	'posicao base
PrWIN TX_NP,   Col1   ,0,"N",@Nif
PrWIN TX_DMX,  Col2   ,0,Col3-Col2-13    ,@Nome
PrWIN TX_NP,   Col3-10,0,"T",@TipRnd
PrWIN TX_NP,   Col3   ,0,"N",@Rend
PrWIN TX_NP,   Col4   ,0,"N",@Ise
PrWIN TX_NP,   Col5   ,0,"N",@Ret
PrWIN TX_NP,   Col6   ,0,"N",@Tsu
PrWIN TX_NP,   Col7   ,0,"N",@Cga
PrWIN TX_NP,   Col8   ,0,"N",@Adse
PrWIN TX_NP,   Col9   ,0,"N",@Snd
PrWIN TX_NP,   Col10   ,0,"N",@Sbt
End Sub


'-------------------------------------------------------------------------------
Sub LstFimAjt
'-------------------------------------------------------------------------------
PrWIN COR_T,  CorTotGer                            'cor de titulo
PrWIN AJT_B,  Margem, LinPer-8          	'posicao base
PrWIN GR_LI, 0, 0, ColMax, 0               	'linha
PrWIN TX_N,    Col2,0,"Continua ..."
Call SigLstRod
PrWin FP
End Sub


'-------------------------------------------------------------------------------
Sub LstFim
'-------------------------------------------------------------------------------
ajt=3
PrWIN COR_T,  CorTotGer                            'cor de titulo
PrWIN AJT_B,  Margem, LinPer-8           'posicao base
PrWIN GR_LI, 0, 0, ColMax, 0               	'linha
PrWIN TX_NP,   Col3   ,0,"N",@TotRend
PrWIN TX_NP,   Col4   ,0,"N",@TotIse
PrWIN TX_NP,   Col5   ,0,"N",@TotRet
PrWIN TX_NP,   Col6   ,0,"N",@TotTsu
PrWIN TX_NP,   Col7   ,0,"N",@TotCga
PrWIN TX_NP,   Col8   ,0,"N",@TotAdse
PrWIN TX_NP,   Col9   ,0,"N",@TotSnd
PrWIN TX_NP,   Col10  ,0,"N",@TotSbt


call SigLstRod
PrWin FP
X=totLpz(0)
End Sub


##


'==============================================================================
#INC - Funcoes comuns
'==============================================================================
Funcoes comuns                    =[SIG_Dir.Div],LsComPgm.std
##

