'Nome       : dmrat.std
'Tipo       : SPI
'Data       : 2016/06/06
'Versao     : 1.3
'Descricao  : declaracao mensal de remuneracoes AT

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.3   2016/06/06 --------------------------------------------------
'Conferencia suporte informatico,apresentar contador de registos e trabalhadores
'Conferencia suporte informatico,reduzir fonte no nome do trabalhador

'- Versao : 1.2   2015/01/28 --------------------------------------------------
'Resumo por codigo AT

'- Versao : 1.2   2014/11/06 --------------------------------------------------
'Aumentar numero linhas no suporte informatico

'- Versao : 1.1a  2014/05/28 --------------------------------------------------
'Ajustar posicao de totais

'- Versao : 1.1   2014/05/19 --------------------------------------------------
'Apresentar nome de funcionario na listagem conferencia

'- Versao : 1.0   2013/02/04 --------------------------------------------------
'Versao base


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


'-----------------------------------------------------------------------------
#ESP - Campos especificos
'-----------------------------------------------------------------------------
Zoom para preview             [PrvZoom]=1.05
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=DMRAT
Nome                       [DocNom]=spi,Suporte informático

'formato
Saida/Impressora           [DocPrt]=NULA
Linhas por pagina          [DocLpg]=1
Colunas por linha          [DocCol]=
Formato do papel           [DocPap]=
Ajustar pagina             [DocApg]=0
Processamento a listar     [DocEsp]=PROC=0
tipo suporte informatico   [DocEsp]=SpiTip=DMRAT
Directorio ficheiros       [DocEsp]=Spidir=Spi\dmrat
Nome de ficheiro           [DocEsp]=SpiFic=[EMPCTRB]_[A4][MES].dmrat
Identificador de listagem  [DocEsp]=LstId=DMRAT
conferencias               [DocEsp]=SpiCnf=Listagem de conferência; Resumo por código AT

'funcoes de listagem
Listar cabecalho            [FxCAB]=SpiCab
Listar linhas               [FxLIN]=Spi_; R1,0; R2,0; R3,0 ;R4,0 ;R5,0 ;R6,0 ;R9,0 ; R99,0 ; R999,0
Listar fim                  [FxFIM]=SpiFim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=DMRAT
Nome                       [DocNom]=spicnf_g,Conferência de Suporte Informatico 

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=26
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Nao Apresentar no menu     [DocEsp]=MnuInv=0
tipo suporte informatico   [DocEsp]=SpiTip=DMRAT
Directorio ficheiros       [DocEsp]=Spidir=Spi\dmrat
Nome de ficheiro           [DocEsp]=SpiFic=[EMPCTRB]_[A4][MES].dmrat
Identificador de listagem  [DocEsp]=LstId=DMRAT

'funcoes de listagem
Listar cabecalho            [FxCAB]=CnfCab
Listar linhas               [FxLIN]=CnfLin   
Listar fim                  [FxFIM]=CnfFim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=DMRAT
Nome                       [DocNom]=spicnf2_g,Resumo por código AT

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=26
Colunas por linha          [DocCol]=132
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=0
Nao Apresentar no menu     [DocEsp]=MnuInv=0
tipo suporte informatico   [DocEsp]=SpiTip=dmrat
Directorio ficheiros       [DocEsp]=Spidir=Spi\dmrat
Nome de ficheiro           [DocEsp]=SpiFic=[EMPCTRB]_[A4][MES].dmrat
Identificador de listagem  [DocEsp]=LstId=DMRAT_R

'funcoes de listagem
Listar cabecalho            [FxCAB]=CnfRCab
Listar linhas               [FxLIN]=CnfRLin,0
Listar fim                  [FxFIM]=CnfRFim
##


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

'listagem gerada internamente
##


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



'==============================================================================
#PGM - Formato do documento (Cabecalho, Linhas e Fim)
'==============================================================================
'------------------------------------------------------------------------------
SUB SpiIni 'funcao de inicializacao
'------------------------------------------------------------------------------
fic$=GpeDmrAtFx$("FIC","LOC")                      'ficheiro a usar
rSize$=GpeDmrAtFx$("FIC","ROWSIZE")                'tamanho de registo
fx=FicPrp(1, rSize$, fic$)                         'preparar ficheiro
fx=FicAbr(1)                                       'abrir ficheiro
end sub


'------------------------------------------------------------------------------
SUB SpiFim 'funcao de finalizacao
'------------------------------------------------------------------------------
fx=FicFec(1)                                       'fechar ficheiro
end sub

'------------------------------------------------------------------------------
Sub Spi_Def  'definicao campos de ficheiro
'------------------------------------------------------------------------------

'fx=msgboxinf("","",)
fx=SpiRegIni("172","")        'preparar registo

fx=SpiRegTpl("001","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(5,"Tipo de ficheiro")
fx=SpiRegCmp(2,"versao de ficheiro")
fx=SpiRegCmp(8,"data do ficheiro")
fx=SpiRegCmp(154,"")

fx=SpiRegTpl("002","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(6,"Tipo declaracao")
fx=SpiRegCmp(9,"Nif empresa")
fx=SpiRegCmp(4,"Ano")
fx=SpiRegCmp(2,"Mes")
fx=SpiRegCmp(3,"Moeda")
fx=SpiRegCmp(145,"")

fx=SpiRegTpl("003","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(4,"NISS Entidade empregadora ")
fx=SpiRegCmp(1,"Codigo servico financas")
fx=SpiRegCmp(1,"declaracao primeira/substituicao ")
fx=SpiRegCmp(8,"data motivo alteracao")
fx=SpiRegCmp(9,"NIFTOC")
fx=SpiRegCmp(9,"NIFRLE")
fx=SpiRegCmp(137,"")

fx=SpiRegTpl("004","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(15,"RS-valor rendimentos","21","8.2")
fx=SpiRegCmp(14,"RS-retencao irs","21","8.2")
fx=SpiRegCmp(14,"RS-contribuicoes obrigatorias","21","8.2")
fx=SpiRegCmp(14,"RS-quotizacoes sindicais","21","8.2")
fx=SpiRegCmp(14,"RS-retencao sobretaxa","21","8.2")
fx=SpiRegCmp(15,"RI-valor rendimentos","21","8.2")
fx=SpiRegCmp(14,"RI-retencao irs","21","8.2")
fx=SpiRegCmp(14,"RI-contribuicoes obrigatorias","21","8.2")
fx=SpiRegCmp(14,"RI-quotizacoes sindicais","21","8.2")
fx=SpiRegCmp(14,"RI-retencao sobretaxa","21","8.2")
fx=SpiRegCmp(27,"")

fx=SpiRegTpl("005","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(15,"RNS-valor rendimentos","21","8.2")
fx=SpiRegCmp(14,"RNS-retencao irs","21","8.2")
fx=SpiRegCmp(14,"RNS-contribuicoes obrigatorias","21","8.2")
fx=SpiRegCmp(14,"RNS-quotizacoes sindicais","21","8.2")
fx=SpiRegCmp(14,"RNS-retencao sobretaxa","21","8.2")
fx=SpiRegCmp(16,"TOT-valor rendimentos","21","8.2")
fx=SpiRegCmp(15,"TOT-retencao irs","21","8.2")
fx=SpiRegCmp(15,"TOT-contribuicoes obrigatorias","21","8.2")
fx=SpiRegCmp(15,"TOT-quotizacoes sindicais","21","8.2")
fx=SpiRegCmp(15,"TOT-retencao sobretaxa","21","8.2")
fx=SpiRegCmp(22,"")

fx=SpiRegTpl("006","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(7,"numero linha")
fx=SpiRegCmp(9,"NIF sujeito passivo")
fx=SpiRegCmp(14,"rendimento de anos anteriores-valores",21,"8.2")
fx=SpiRegCmp(4,"rendimentos de anos anteriores-ano")
fx=SpiRegCmp(14,"rendimentos do ano",21,"8.2")
fx=SpiRegCmp(3,"tipo rendimentos")
fx=SpiRegCmp(2,"local obtencao rendimentos")
fx=SpiRegCmp(13,"retencao de irs",21,"8.2")
fx=SpiRegCmp(13,"contribuicoes obrigatorias-valores",21,"8.2")
fx=SpiRegCmp(9,"contribuicoes obrigatorias-entidade1")
fx=SpiRegCmp(9,"contribuicoes obrigatorias-entidade2")
fx=SpiRegCmp(9,"contribuicoes obrigatorias-entidade3")
fx=SpiRegCmp(13,"quotizacoes sindicais",21,"8.2")
fx=SpiRegCmp(13,"retencao sobretaxa",21,"8.2")
fx=SpiRegCmp(37,"")

fx=SpiRegTpl("009","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(15,"TOT-rendimentos anos anteriores",21,"8.2")
fx=SpiRegCmp(16,"TOT-rendimento do ano",21,"8.2")
fx=SpiRegCmp(15,"TOT-importancias retidas",21,"8.2")
fx=SpiRegCmp(15,"TOT-contribuicao obrigatoria",21,"8.2")
fx=SpiRegCmp(15,"TOT-quotizacoes sindicais",21,"8.2")
fx=SpiRegCmp(15,"TOT-sobretaxa",21,"8.2")
fx=SpiRegCmp(7,"numero de registos",21,"-7")
fx=SpiRegCmp(71,"")

fx=SpiRegTpl("099","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(9,"numero de registos")
fx=SpiRegCmp(160,"")

fx=SpiRegTpl("999","Tipo de Registo")
fx=SpiRegCmp(3,"Tipo Registo")
fx=SpiRegCmp(9,"numero registos")
fx=SpiRegCmp(160,"")
end sub


'------------------------------------------------------------------------------
SUB Spi_R1 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","001")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R2 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","002")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R3 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","003")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R4 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","004")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R5 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","005")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R6 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","006")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R9 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","009")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R99 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","099")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub

'------------------------------------------------------------------------------
SUB Spi_R999 'linha de registo
'------------------------------------------------------------------------------
txr$=GpeDmrAtFx$("LIN","999")                               'dados a gravar
x=FicLinGrv(1, txr$)                                        'registar
end sub


'==============================================================================
'Listagem conferencia
'==============================================================================
SUB FxIni 'funcao de inicializacao
Call SigLstIni
End sub

sub CnfCabIni
fx=PrtOri("L")
LinPer=195
end sub

'------------------------------------------------------------------------------
Sub CnfCab 'cabecalho
'------------------------------------------------------------------------------
Col1=0                      'niss
Col2=22                     'profissao
Col3=30                     'nome
Col4=60
Col5=90
Col6=120
Col7=150
Col8=180
Col9=210

CoMax=267

colTotRem=col5-4

SigCabNorOpcTit=0
titulo$="Declaração mensal de remunerações (AT)"

Call SigLstCab

InicioEscrita=27
InicioEscritaR2=InicioEscrita+3
InicioEscritaR3=InicioEscrita+3
InicioEscritaR4=InicioEscrita+3
InicioEscritaR6=InicioEscrita+45
InicioEscritaR9=LinPer-8


InicioTitulos=InicioEscrita+14
InicioLinhas=InicioTitulos+5  'InicioTitulos
end sub


Sub LinPos
py=Doc_CntLin*4
PrWIN AJT_B,  Margem, InicioEscrita+doc_cntlin*4
end sub


'------------------------------------------------------------------------------
sub CnfLin
'------------------------------------------------------------------------------
contaLinha=0
if MemTxt$(1)="001" then   
  call Cnf_R1
end if

if MemTxt$(1)="002" then   
 'azerar variaveis globais
  memtrb$=""
  cnttrb=0
  cntReg=0

  call Cnf_R2
end if

if MemTxt$(1)="003" then   
  call Cnf_R3
end if

if MemTxt$(1)="004" then   
  call Cnf_R4
end if

if MemTxt$(1)="005" then   
  call Cnf_R5
end if

if MemTxt$(1)="006" then   
  call Cnf_R6
  ContaLinha=1

  'contar trabalhadores incluidos
  trb$=memtxt$(3)
  cntReg=CntReg+1
  if memtrb$<>trb$ then
     cntTrb=cntTrb+1
     memtrb$=trb$
  end if
end if

if MemTxt$(1)="009" then   
  call Cnf_R9
end if

if MemTxt$(1)="099" then   
  call Cnf_R99
end if

if MemTxt$(1)="999" then   
  call Cnf_R999
end if

if contaLinha=0 then
  lin=doc_cntlin-1
  fx=cntLin("FRC",lin)
end if
end sub


'----------------------------------------------------------------------------------------
Sub Cnf_R1
'----------------------------------------------------------------------------------------
PrWIN AJT_B, Margem, InicioEscrita             'posicao base


Lin=1
Lin2=5
Lin3=9

PrWIN COR_T,CorTraco                            'cor 
PrWIN GR_LI,     0,  0, CoMax, 0                 'linha

PrWin FON,9
PrWIN COR_T,CorTit                             'cor 

End Sub


'------------------------------------------------------------------------------
Sub Cnf_R2 'linha para registo tipo R2
'------------------------------------------------------------------------------
PrWIN AJT_B, Margem, InicioEscritaR2             'posicao base

PrWIN COR_T,CorLin
c1=0

lin=10
PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,      c1, lin, "Numero de identificação fiscal"
PrWin FON, "BOLD-"                                 'activar bold
PrWIN TX_NP,  C1+15, lin+5, "N",MemTxt$(3)

lin=20
tx$=MemTxt$(4)+"/"+MemTxt$(5)
PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,      C1,lin, "Período a que respeita"
PrWin FON, "BOLD-"                                 'activar bold
PrWIN TX_NP,  C1+15, lin+5, "N",tx$
End sub



'------------------------------------------------------------------------------
Sub Cnf_R3 'linha para registo tipo R3
'------------------------------------------------------------------------------
PrWIN AJT_B, Margem, InicioEscritaR3             'posicao base
PrWIN COR_T,CorLin

c1=0
PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,      c1, 0, "Código do serviço de finanças"
PrWin FON, "BOLD-"                                 'activar bold
PrWIN TX_NP,  C1+15, 5, "N",MemTxt$(2)

'if memtxt$(3)="2" then
'  tx$="Declaração de substituição"
'  if memtxt$(4)="3" then
'    tx$=tx$+", apresentada nos termos da al) d), n.1, art.119 do CIRS"
'    data$=FrmDt$("",Memtxt$(5))
'    PrWin Tx_N , 120,30, "Data do fato: "+data$
'  end if
'else
'  tx$="Primeira declaração"
'end if
'PrWin Tx_N , C1,30, tx$

PrWin FON, "BOLD+"                                 'activar bold
PrWin Tx_N ,  C1,35, "NIF do técnico oficial de contas"
PrWin Tx_N ,  80,35, "NIF do declarante ou representante legal"
PrWin FON, "BOLD-"                                 'activar bold
PrWin Tx_N ,  C1+50,35, MemTxt$(6)
PrWin Tx_N , 100+45,35, MemTxt$(7)
End sub


'------------------------------------------------------------------------------
Sub Cnf_R4 'linha para registo tipo R4
'------------------------------------------------------------------------------
ResumoC=60
ResumoL=3
PrWIN AJT_B, Margem+ResumoC, InicioEscrita+ResumoL             'posicao base
PrWIN COR_T,CorLin

esp=30
c1=0
c2=c1+50
c3=c2+esp
c4=c3+esp
c5=c4+esp
c6=c5+esp
cmax=c6+24

la=0
lb=4

l1=9
l2=13
l3=l2+5
l4=l3+5
l5=l4+5
lmax=l5+5

PrWin Cor_T, CorTraco
PrWIN GR_LI,     c1,  l1-1, CMax, l1-1                 'linha
'PrWIN GR_LI,     c1,  l2-1, CMax, l2-1                 'linha
'PrWIN GR_LI,     c1,  l3-1, CMax, l3-1                 'linha
'PrWIN GR_LI,     c1,  l4-1, CMax, l4-1                 'linha


PrWin Cor_T, CorTit
'PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,      c1, lb, "TRABALHO DEPENDENTE"
PrWIN TX_N,      c1, l1, "RENDIMENTOS SUJEITOS"
PrWIN TX_N,      c1, l2, "RENDIMENTOS ISENTOS"
PrWIN TX_N,      c1, l3, "RENDIMENTOS NÃO SUJEITOS"
PrWIN TX_N,      c1, l4, "TOTAL"

PrWIN TX_N,      c2, la, "Valor dos"
PrWIN TX_N,      c2, lb, "rendimentos"

PrWIN TX_N,      c3, la, "Retenção"
PrWIN TX_N,      c3, lb, "IRS"

PrWIN TX_N,      c4, la, "Contribuições"
PrWIN TX_N,      c4, lb, "obrigatórias"

PrWIN TX_N,      c5, la, "Quotizações"
PrWIN TX_N,      c5, lb, "sindicais"


PrWIN TX_N,      c6, la, "Retençao"
PrWIN TX_N,      c6, lb, "sobretaxa"

'PrWin FON, "BOLD-"                                 'defenir bold
PrWin COR_T, CorLin


PrWIN TX_NP,      c2, l1, "N",MemTxt$(2)
PrWIN TX_NP,      c3, l1, "N",MemTxt$(3)
PrWIN TX_NP,      c4, l1, "N",MemTxt$(4)
PrWIN TX_NP,      c5, l1, "N",MemTxt$(5)
PrWIN TX_NP,      c6, l1, "N",MemTxt$(6)

PrWIN TX_NP,      c2, l2, "N",MemTxt$(7)
PrWIN TX_NP,      c3, l2, "N",MemTxt$(8)
PrWIN TX_NP,      c4, l2, "N",MemTxt$(9)
PrWIN TX_NP,      c5, l2, "N",MemTxt$(10)
PrWIN TX_NP,      c6, l2, "N",MemTxt$(11)
End sub


'------------------------------------------------------------------------------
Sub Cnf_R5 'linha para registo tipo R5
'------------------------------------------------------------------------------
PrWIN TX_NP,      c2, l3, "N",MemTxt$(2)
PrWIN TX_NP,      c3, l3, "N",MemTxt$(3)
PrWIN TX_NP,      c4, l3, "N",MemTxt$(4)
PrWIN TX_NP,      c5, l3, "N",MemTxt$(5)
PrWIN TX_NP,      c6, l3, "N",MemTxt$(6)

PrWIN TX_NP,      c2, l4, "N",MemTxt$(7)
PrWIN TX_NP,      c3, l4, "N",MemTxt$(8)
PrWIN TX_NP,      c4, l4, "N",MemTxt$(9)
PrWIN TX_NP,      c5, l4, "N",MemTxt$(10)
PrWIN TX_NP,      c6, l4, "N",MemTxt$(11)
End sub



'------------------------------------------------------------------------------
Sub Cnf_R6TiTulos 'titulos para registo tipo R6
'------------------------------------------------------------------------------
PrWIN AJT_B, Margem, InicioEscritaR6           'posicao base

'PrWIN GR_LI,     0,  0, CoMax, 0                 'linha
PrWIN COR_T,CorLin

esp=20
espnif=18
espsbt=17
c1=0                       'nif
c1a=17                      'nome
c2=61                       'vant
c3=c2+23                    'ano
c4=c3+10                  'rendimentos ano
c5=c4+22                 'tipo rendimento
c6=c5+10          'local obtencao
c7=c6+8               'retencao irs
c8=c7+esp              'valores

c9=c8+espnif+4             'nipc entidade
c10=c9+espnif              'nipc 2
c11=c10+espnif            'nipc3

c12=c11+espsbt            'sibdicato
c13=c12+espsbt            'sobretaxa
cmax=c13+esp

la=0
lb=4
lc=8

Lin=lc+5

'PrWin FON, "BOLD+"                                 'defenir bold
PrWIN COR_T,CorTit


PrWIN TX_N,      c1+10, lb, "Titular dos rendimentos"
PrWIN TX_N,      c1+5, lc, "NIF"
PrWIN TX_N,      c1a+25, lc, "Nome"



PrWIN TX_N,      c2+5, la, "Rendimentos de"
PrWIN TX_N,      c2+5, lb, "Anos anteriores"
PrWIN TX_N,      c2+4, lc, "Valores"
PrWIN TX_N,      c3, lc, "Ano"

PrWIN TX_N,      c4, lb, "Rendimentos"
PrWIN TX_N,      c4+3, lc, "do Ano"

PrWIN TX_N,      c5, lb, "Tipo"
PrWIN TX_N,      c5, lc, "Rend."

PrWIN TX_N,      c6, la, "Local"
PrWIN TX_N,      c6, lb, "obt."
PrWIN TX_N,      c6, lc, "rend."

PrWIN TX_N,      c7+6, lb, "Retenção"
PrWIN TX_N,      c7+10, lc, "IRS"

PrWIN TX_N,      c8+5, lc, "Valores"

PrWIN TX_N,   c9+10, la, "Contribuições obrigatórias"

PrWIN TX_N,    c9+3, lb, "NIPC"
PrWIN TX_N,      c9, lc, "entidade(1)"
PrWIN TX_N,   c10+3, lb, "NIPC"
PrWIN TX_N,     c10, lc, "entidade(2)"
PrWIN TX_N,   c11+3, lb, "NIPC"
PrWIN TX_N,     c11, lc, "entidade(3)"

PrWIN TX_N,     c12+2, lb, "Quotizações"
PrWIN TX_N,     c12+4, lc, "Sindicais"

PrWIN TX_N,     c13+6, lb, "Retenção"
PrWIN TX_N,     c13+6, lc, "sobretaxa"
PrWin FON, "BOLD-"                                 'defenir bold


PrWIN COR_T,CorTraco

PrWIN GR_LI,     0,  0, Comax, 0                   'linha superior
PrWIN GR_LI,     0,  lin, Comax, lin                   'linha inferior

PrWIN GR_LI,     c8+3,  0, c8+3, lin                   'linha vertical contrib obrigatorias



end sub


'------------------------------------------------------------------------------
Sub Cnf_R6 'linha para registo tipo R6
'------------------------------------------------------------------------------

if tituloR6=0 then
   call Cnf_R6TiTulos
   tituloR6=1
end if

linha=InicioEscritaR6+lin
lin=lin+4

PrWIN AJT_B, Margem, linha           'posicao base
PrWIN COR_T,CorLin


PrWIN TX_NP,      c1, 0, "N",MemTxt$(3)

PrWin FON,7
PrWIN TX_DMX,     c1a,0,c2-c1a,GpeTrbNome$("NIF",MemTxt$(3))

PrWin FON,9
PrWIN TX_NP,      c2, 0, "N",MemTxt$(4)
PrWIN TX_NP,      c3, 0, "N",MemTxt$(5)
PrWIN TX_NP,      c4, 0, "N",MemTxt$(6)
PrWIN TX_NP,      c5, 0, "N",MemTxt$(7)
PrWIN TX_NP,      c6, 0, "N",MemTxt$(8)
PrWIN TX_NP,      c7, 0, "N",MemTxt$(9)
PrWIN TX_NP,      c8, 0, "N",MemTxt$(10)
if MemTxt$(11)<>"000000000" then
PrWIN TX_NP,      c9, 0, "N",MemTxt$(11)
end if

if MemTxt$(12)<>"000000000" then
PrWIN TX_NP,     c10, 0, "N",MemTxt$(12)
end if

if MemTxt$(13)<>"000000000" then
PrWIN TX_NP,     c11, 0, "N",MemTxt$(13)
end if

PrWIN TX_NP,     c12, 0, "N",MemTxt$(14)
PrWIN TX_NP,     c13, 0, "N",MemTxt$(15)
End sub


'------------------------------------------------------------------------------
Sub Cnf_R9 'linha para registo tipo R9
'------------------------------------------------------------------------------

PrWIN AJT_B, Margem, InicioEscritaR9           'posicao base

PrWIN COR_T,CorTraco                            'cor 
PrWIN GR_LI,     0,  0, CoMax, 0                 'linha
PrWIN GR_LI,     0,  5, CoMax, 5                 'linha


PrWIN COR_T,CorTot
 
PrWIN TX_NP,      c2, 0, "N",MemTxt$(2)
PrWIN TX_NP,      c4, 0, "N",MemTxt$(3)
PrWIN TX_NP,      c7, 0, "N",MemTxt$(4)
PrWIN TX_NP,      c8, 0, "N",MemTxt$(5)
PrWIN TX_NP,     c12, 0, "N",MemTxt$(6)
PrWIN TX_NP,     c13, 0, "N",MemTxt$(7)



'PrWin FON, "BOLD+"                                 'activar bold
PrWIN TX_N,     c1, 0, "Registos"
PrWIN TX_N,     c1+25, 0, "Trabalhadores"
'PrWin FON, "BOLD-"                                 'activar bold
PrWIN TX_N,     c1+15, 0, CntReg
PrWIN TX_N,     c1+48, 0, CntTrb


End sub



'------------------------------------------------------------------------------
Sub CnfFimAjt 'fim intermedio
'------------------------------------------------------------------------------
TituloR6=0
Call LinPos
PrWIN AJT_B,  Margem, LinPer-8 'posicao base
PrWIN COR_T,CorTraco                              'cor 
PrWIN GR_LI,     0,  3, Comax, 3                   'linha

PrWIN COR_T,CorTotais                             'cor 
PrWIN TX_N, Col4, 3, "Continua ... "
Prwin FP
end sub


'------------------------------------------------------------------------------
Sub CnfFim 'fim de listagem
'------------------------------------------------------------------------------
call SigLstFim
titulor6=0
end sub



'==============================================================================
'Listagem conferencia por acumuladores
'==============================================================================
sub CnfrCabIni
'fx=PrtOri("L")
end sub

'------------------------------------------------------------------------------
Sub CnfrCab 'cabecalho
'------------------------------------------------------------------------------
call SigLstIni
CoMax=MargemD

SigCabNorOpcTit=0
titulo$="Declaração mensal de remunerações (AT)"

Call SigLstCab

InicioEscrita=30


PrWIN AJT_B, Margem, InicioEscrita             'posicao base

PrWIN COR_T,CorTraco                            'cor 
PrWIN GR_LI,     0,  0, CoMax, 0                'linha
end sub


'------------------------------------------------------------------------------
sub CnfrLin
'------------------------------------------------------------------------------


'--------------------------------------------------------------
if MemTxt$(1)="002" then   
'--------------------------------------------------------------
  fx=GpeAcvFx("OVL","DMRAT")'registar origem de valores
  fx=GpeAcvFx("INI")        'inicializar acumuladores


  'azerar variaveis globais
  memtrb$=""
  cnttrb=0

  
  dmrNif$=memtxt$(3)
  dmrPer$=MemTxt$(4)+"/"+MemTxt$(5)
end if


'-------------------------------------------------------------
if MemTxt$(1)="006" then   'trabalhador
'-------------------------------------------------------------

'fx=msgboxinf(tc$,vc$)

  tc$=trim$(memtxt$(7))
  vc$=memnum(6)
  
  'totais por acumulador
  fx=gpeacvfx("INC",      tc$,memtxt$(6))
  fx=gpeacvfx("INC",tc$+"IRS",memtxt$(9))
  fx=gpeacvfx("INC",tc$+"TSU",memtxt$(10))
  fx=gpeacvfx("INC",tc$+"SND",memtxt$(14))
  fx=gpeacvfx("INC",tc$+"SBT",memtxt$(15))

  'totais por coluna
  fx=gpeacvfx("INC","TRND",memtxt$(6))
  fx=gpeacvfx("INC","TIRS",memtxt$(9))
  fx=gpeacvfx("INC","TTSU",memtxt$(10))
  fx=gpeacvfx("INC","TSND",memtxt$(14))
  fx=gpeacvfx("INC","TSBT",memtxt$(15))

  'contar trabalhadores incluidos
  trb$=memtxt$(3)
  if memtrb$<>trb$ then
     cntTrb=cntTrb+1
     memtrb$=trb$
  end if

end if

'-----------------------------------------------------------------
if MemTxt$(1)="999" then      'total geral, fim de listagem
'-----------------------------------------------------------------

PrWIN AJT_B, Margem, InicioEscrita+20

PrWIN COR_T,CorTit                             'cor 
PrWin FON,8

lin=0

esplin=7

lin=lin+esplin

esp=20

ctit=0
cacm=ctit+90
cirs=cacm+esp
ctsu=cirs+esp
csnd=ctsu+esp
csbt=csnd+esp


PrWIN TX_N,     cacm,    lin, "Rendimento"

PrWIN TX_N,     cirs,    lin, "Retenção"
PrWIN TX_N,     cirs+4,lin+4, "IRS"

PrWIN TX_N,     ctsu,    lin, "Contribuição"
PrWIN TX_N,     ctsu+1,lin+4, "Obrigatória"

PrWIN TX_N,     csnd,    lin, "Quotizações"
PrWIN TX_N,     csnd+2,lin+4, "Sindicais"

PrWIN TX_N,     csbt+1,  lin, "Retenção"
PrWIN TX_N,     csbt,  lin+4, "Sobretaxa"

lin=lin+2+esplin

PrWIN COR_T,CorTraco                            'cor 
PrWIN GR_LI,     0,  lin, CoMax, lin                'linha

lin=lin+2



'----- consultar valor de acumuladores ------------------------------

mxi=GpeAcmLstTit$("ACM_CNT","DMRAT")
for cnt=1 to mxi
  tit$=GpeAcmLstTit$("ACM","DMRAT",cnt)
  ac$=GpeAcmLstTit$("ACM_COD","DMRAT",cnt)

  vacm=GpeAcvFx("TOT",ac$)
  virs=GpeAcvFx("TOT",ac$+"IRS")
  vtsu=GpeAcvFx("TOT",ac$+"TSU")
  vsnd=GpeAcvFx("TOT",ac$+"SND")
  vsbt=GpeAcvFx("TOT",ac$+"SBT")

  PrWIN COR_T,CorTit

  fx=TxtSepLin(tit$,65," ")
  PrWin TX_N,   0,lin,contx$(1)
  PrWin TX_N,   0+4,lin+3,Contx$(2)

  PrWIN COR_T,CorLin

  PrWin TX_NP, cacm,lin,"N",GpeFrmMoe$("",10,vacm)
  PrWin TX_NP, cirs,lin,"N",GpeFrmMoe$("",10,virs)
  PrWin TX_NP, ctsu,lin,"N",GpeFrmMoe$("",10,vtsu)
  PrWin TX_NP, csnd,lin,"N",GpeFrmMoe$("",10,vsnd)
  PrWin TX_NP, csbt,lin,"N",GpeFrmMoe$("",10,vsbt)
  
  lin=lin+esplin
next

PrWIN COR_T,CorTraco                            'cor 
PrWIN GR_LI,     0,  lin, CoMax, lin                'linha



  '----- totais por coluna ----------
  PrWIN COR_T,CorLin

  vacm=GpeAcvFx("TOT","TRND")
  virs=GpeAcvFx("TOT","TIRS")
  vtsu=GpeAcvFx("TOT","TTSU")
  vsnd=GpeAcvFx("TOT","TSND")
  vsbt=GpeAcvFx("TOT","TSBT")

  PrWin TX_NP, cacm,lin,"N",GpeFrmMoe$("",10,vacm)
  PrWin TX_NP, cirs,lin,"N",GpeFrmMoe$("",10,virs)
  PrWin TX_NP, ctsu,lin,"N",GpeFrmMoe$("",10,vtsu)
  PrWin TX_NP, csnd,lin,"N",GpeFrmMoe$("",10,vsnd)
  PrWin TX_NP, csbt,lin,"N",GpeFrmMoe$("",10,vsbt)


  '==========================================
  PrWIN AJT_B, Margem, 5+InicioEscrita           'posicao base

  PrWIN COR_T,CorLin
  c1=0
  lin=0
  PrWin FON, "BOLD+"                                 'activar bold
  PrWIN TX_N,      0, lin, "Numero de identificação fiscal"
  PrWin FON, "BOLD-"                                 'activar bold
  PrWIN TX_NP,  C1+15, lin+5, "N",dmrNif$

  lin=10
  tx$=MemTxt$(4)+"/"+MemTxt$(5)
  PrWin FON, "BOLD+"                                 'activar bold
  PrWIN TX_N,      C1,lin, "Período a que respeita"
  PrWin FON, "BOLD-"                                 'activar bold
  PrWIN TX_NP,  C1+15, lin+5, "N",dmrPer$
  
  lin=lin+10
  PrWin FON, "BOLD+"                                 'activar bold
  PrWin TX_N, 0   ,lin,"Trabalhadores processados"
  PrWin FON, "BOLD-"                                 'activar bold
  PrWin TX_N, c1+15,lin+5,cntTrb
end if

end sub

'------------------------------------------------------------------------------
Sub CnfRFim 'fim de listagem
'------------------------------------------------------------------------------
call SigLstFim
end sub
##

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