'Nome       : ADSE.STD
'Tipo       : LST
'Data       : 2011/07/28
'Versao     : 1.2e
'Descricao  : Relacao ADSE

'==============================================================================
'#VER - Historia de modificacoes
'==============================================================================
'- Versao : 1.2e  2011/07/28 ---------------------------------------------------
'usar acumuladores de listagem

'- Versao : 1.2d  2011/05/12 ---------------------------------------------------
'Ordenar listagem em modo texto

'- Versao : 1.2c  2011/05/10 ---------------------------------------------------
'Prever contribuicao da empresa (suporte informatico e relacao)

'- Versao : 1.2  2011/04/19 ---------------------------------------------------
'Suporte informatico ( apenas categoria A ) 

'- Versao : 1.1  2000/01/26 ---------------------------------------------------
'Conferencia grafica

'- Versao : 1.0  2000/01/26 ---------------------------------------------------
'Versao base


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


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


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=RELIRS_G,Categoria A

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=49
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=1
Listar continuo            [DocEsp]=LstCnt=1
Listar valores a 0         [DocEsp]=LstZer=0
Ordenacao                  [DocEsp]=ORD=ADSE
Tipo de movimento          [DocEsp]=TipMVA=ADSE   
Tipo de rendimento         [DocEsp]=TipRnd=A

'funcoes de listagem
Listar cabecalho            [FxCAB]=PW_Cab
Listar linhas               [FxLIN]=PW_Lin ; Ajt
Listar fim                  [FxFIM]=PW_Fim
##


'==============================================================================
#DOC - Configuracao do documento
'==============================================================================
Tipo                       [DocTip]=ORDGER
Nome                       [DocNom]=RELIRST_G,Todas as Categorias

'formato
Saida/Impressora           [DocPrt]=PAG_W
Linhas por pagina          [DocLpg]=49
Colunas por linha          [DocCol]=80
Formato do papel           [DocPap]=72L
Ajustar pagina             [DocApg]=1
Listar continuo            [DocEsp]=LstCnt=1
Listar valores a 0         [DocEsp]=LstZer=0
Tipo de rendimento         [DocEsp]=TipRnd=
Ordenacao                  [DocEsp]=ORD=TIPRND
Tipo de movimento          [DocEsp]=TipMVA=ADSE   
Totais por codigo          [DocEsp]=LstStot=1

'funcoes de listagem
Listar cabecalho            [FxCAB]=PW_Cab
Listar linhas               [FxLIN]=PW_Lin; Stot,3 ; Ajt
Listar fim                  [FxFIM]=PW_Fim
##


'-----------------------------------------------------------------------------
' Configuracao do documento
'-----------------------------------------------------------------------------
#DOC
Tipo                       [DocTip]=ADSE
Nome                       [DocNom]=SPI_2011,Suporte informatico (Cat.A)

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

Ordenacao                  [DocEsp]=ORD=ADSE
Listar continuo            [DocEsp]=LstCnt=1
Tipo de rendimento         [DocEsp]=TipRnd=A
Tipo de movimento          [DocEsp]=TipMVA=ADSE   

Directorio ficheiros       [DocEsp]=Spidir=Spi\ADSE
Listar valores a 0         [DocEsp]=LstZer=0
tipo suporte informatico   [DocEsp]=SpiTip=ADSE
Validar sup.informatico    [DocEsp]=SpiVal=0
nome para ficheiro         [DocEsp]=SpiFic=FD_[AM]_[ADSECOD]_[ADSESEQ].xml


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





'==============================================================================
#VAR - Variaveis
'==============================================================================
Data        = FrmVal$(Sig_DtHoje,45,0)
Pag         = Doc_CntPag

EmpNome     = Emp_Inf_Nome$
EmpMorad    = Emp_Inf_Morada$
EmpLocal    = Emp_Inf_Local$
EmpCpost    = Emp_Inf_Cpost$
EmpContrib  = Emp_Inf_Contrib$
EmpAdse     = TxIde$(Emp_Inf_Opc$,"ADSE.COD")

Nome        = Gpe_Mst_Nome$
TrbAdse     = TxIde$(gpe_Mst_opc$,"ADSE.COD")

Rend        = GpeFrmMoe$("",11,GpeAcmLst("V","ACM","ADSE"))
Ret         = GpeFrmMoe$("",11,GpeAcmLst("V","ADSE","RET"))
Empresa     = GpeFrmMoe$("",11,GpeAcmLst("V","ADSE","EMP"))

TotRend     = GpeFrmMoe$("",12,Total(Rend,2))
TotRet      = GpeFrmMoe$("",12,Total(Ret,2))
TotContrib  = GpeFrmMoe$("",12,Total(Empresa,2))
STotRend    = GpeFrmMoe$("",12,Total(Rend,1))
STotRet     = GpeFrmMoe$("",12,Total(Ret,1))
STotContrib = GpeFrmMoe$("",12,Total(Empresa,1))

Tip         = Gpe_Mst_TipRnd$
##

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




'==============================================================================
#PGM - Formato do documento
'==============================================================================

'------------------------------------------------------------------------------
Sub SpiIni'prepara suporte informatico
'------------------------------------------------------------------------------
fic$=MemTxt$(11)                                   'ficheiro a usar
x=FicPrp(1, "O:0", fic$)                           'preparar ficheiro
x=FicAbr(1)                                        'abrir ficheiro
end sub


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


'-----------------------------------------------------------------------------------
Sub SpiCmpDef  'definicao de campos 
'-----------------------------------------------------------------------------------
'fx=SpiRegIni("80")        'preparar registo

'registo de contacto
'fx=SpiRegTpl("00","Registo de contacto")
end sub


'-(Modo Grafico)---------------------------------------------------------------
SUB FxIni 'funcao de inicializacao
Call SigLstIni
End sub

Sub PW_Cab
PrWIN COR_F, 10                              'cor de fundo 
PrWIN AJT_B,  Margem,10                      'posicao base
PrWIN COR_T,  CorTitLst                      'cor de titulo
PrWIN FON  ,   10,   1                       'activar fonte

PrWin Tx_N,  0,0,"Empresa"
PrWin Tx_N,  0,5,"Morada"
PrWin Tx_N,  0,10,"Localidade"
PrWin Tx_N,  0,15,"Código Postal"
PrWin Tx_N,  0,25,"Contribuinte"
PrWin Tx_N,  0,30,"Código ADSE"

PrWIN COR_T,  CorLin                        'cor de titulo
PrWIN FON  ,   10,   1                      'activar fonte

Cl=30

PrWin COR_T ,  CorLin
PrWin Tx_N,  Cl,0,@EmpNome
PrWin Tx_N,  Cl,5,@EmpMorada
PrWin Tx_N,  Cl,10,@EmpLocal
PrWin Tx_N,  Cl,15,@EmpCpost
PrWin Tx_N,  cl,25,@EmpContrib
PrWin Tx_N,  cl,30,@EmpAdse

PrWIN AJT_B,  Margem,45                     'posicao base
Call DataPag_A4                             'data e pagina

Col1=1
Col2=95    'adse
Col3=115      'categoria
Col4=125   'incidencia
Col5=145
Col6=165
ColMax=margemD

PrWIN AJT_B,  Margem, 40                   	'posicao base
PrWin FON, "BOLD+"
PrWin FON, 12,1
PrWIN TX_CTR,  Col1,0,MargemD,0,"RELAÇÃO  ADSE"
PrWin FON, "BOLD-"

Lin=1
PrWIN FON  ,   9,   1                        	'activar fonte
PrWIN COR_T,  CorTitLst                         'cor de titulo
PrWIN AJT_B,  Margem, 63                    	'posicao base
PrWIN TX_CTR,  Col1,Lin,Col2,Lin,"Nome"
PrWIN TX_N,  Col2+5,Lin,  "Adse"
PrWIN TX_N,  Col3-5,Lin,  "Categoria"
PrWIN TX_N,  Col4+5,Lin,  "Incidencia"
PrWIN TX_N,  Col5+5,Lin,  "Retenção"
PrWIN TX_N,  Col6+5,Lin,  "Empresa"

PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI, 0, 0, MargemD, 0               	'linha
PrWIN GR_LI, 0, 7, MargemD,7               	'linha

PrWin COR_T ,  CorLin
AjtTot=1
PrWIN FON  ,   8,   1                        	'activar fonte
End Sub


'------------------------------------------------------------------------------
Sub Pw_Lin
'------------------------------------------------------------------------------
PrWIN AJT_B,  Margem, 68+Doc_CntLin*4          	'posicao base
PrWIN TX_DMX,   Col1,0,Col2-Col1,@Nome
PrWIN TX_N,     Col2+3,0,@trbAdse
PrWIN TX_N,     Col3,0,@Tip
PrWIN TX_NP,    Col4,0,"N",@Rend
PrWIN TX_NP,    Col5,0,"N",@Ret
PrWIN TX_NP,    Col6,0,"N",@Empresa
rgCnt=rgCnt+1
End Sub


'------------------------------------------------------------------------------
Sub Pw_LinAjt
'------------------------------------------------------------------------------

End Sub


'------------------------------------------------------------------------------
Sub Pw_LinStot
'------------------------------------------------------------------------------
PrWIN AJT_B,  Margem, 65+Doc_CntLin*4          	'posicao base
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN GR_LI,     0,  0, MargemD, 0            	'linha
PrWIN GR_LI,     0,  4, MargemD, 4            	'linha
PrWIN COR_T,     CorTotGer                      'cor para totais
PrWIN FON,      9,  1                           'activar fonte
PrWIN TX_CTR, Col1,  0,Col2,0,"Sub-Total :"
PrWIN TX_NP,  Col4-AjtTot,  0,"N",@STotRend
PrWIN TX_NP,  Col5-Ajttot,  0,"N",@STotRet
PrWIN TX_NP,  Col6-Ajttot,  0,"N",@STotContrib
fx=TotLpz(1)                                    'azerar totalizador
PrWin COR_T ,  CorLin
end Sub


'------------------------------------------------------------------------------
Sub Pw_FimAjt 'fim intermedio
'------------------------------------------------------------------------------
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,LinPer-5                 		'posicao base
PrWIN GR_LI,     0,  0, MargemD, 0            	'linha
PrWIN COR_T,     CorTotGer                      'cor para totais
'PrWIN FON,      9,  1                          'activar fonte
PrWIN TX_N, Col1,  0,"Continua ..."
PrWIN AJT_B,Margem,255                 		'posicao base
call SigLstRod
PrWin FP
end Sub


'------------------------------------------------------------------------------
Sub Pw_Fim 'fim de listagem
'------------------------------------------------------------------------------
PrWIN COR_T,CorTraco                            'cor de linhas
PrWIN AJT_B,Margem,LinPer-5                 		'posicao base
PrWIN GR_LI,     0,  0, MargemD, 0            	'linha
PrWIN COR_T,     CorTotGer                      'cor para totais
'PrWIN FON,      9,  1                          'activar fonte
PrWIN TX_CTR, Col1,  0,Col2,0,"Totais ..."
PrWIN TX_NP,  Col4-Ajttot,  0,"N",@TotRend
PrWIN TX_NP,  Col5-AjtTot,  0,"N",@TotRet
PrWIN TX_NP,  Col6-AjtTot,  0,"N",@TotContrib

PrWIN TX_NP,  Col2,  0,"N",rgCnt
PrWIN TX_N,  Col2+6,  0,"registos"

fx=TotLpz(0)                                    'azerar totalizador
PrWIN AJT_B,Margem,255                 		'posicao base
call SigLstRod
PrWin FP
rgCnt=0
end Sub


'-----------------------------------------------------------------------------------
Sub LstLin
'-----------------------------------------------------------------------------------

   AdseCod$=GpeAdseFx$("REL","ADSECOD")

 RelMovCnt$=GpeAdseFx$("LIN","CNT")
  RelDesco$=NumXml(GpeAdseFx("REL","TOT_DESCO"),2)
RelContrib$=NumXml(GpeAdseFx("REL","TOT_CONTRIB"),2)

    RelDuc$=GpeAdseFx$("REL","DUC")

   RelData$=FrmDt$("AM",Sig_DtHoje)
     RelOE$=FrmDt$("AM",Sig_DtHoje)

  EmpNif$ = Emp_Inf_Contrib$
 EmpNome$ = TxtXml$(Emp_Inf_Nome$)

'fx=FicLinGrv(1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" standalone="+chr$(34)+"yes"+chr$(34)+ "encoding="+chr$(34)+"ISO-8859-1"+chr$(34)+" ?>") 
'fx=FicLinGrv(1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" standalone="+chr$(34)+"yes"+chr$(34)+" ?>") 
fx=FicLinGrv(1,"<?xml version="+chr$(34)+"1.0"+chr$(34)+" encoding="+chr$(34)+"ISO-8859-1"+chr$(34)+" ?>") 

fx=FicLinGrv(1,"<DataSet1 xmlns="+chr$(34)+"http://tempuri.org/DataSet1.xsd"+chr$(34)+">")

fx=FicLinGrv(1,"   <Cabecalho>")
fx=FicLinGrv(1,"      <Codigo_Servico>"    +AdseCod$+   "</Codigo_Servico>")
fx=FicLinGrv(1,"      <Data_Receita>"      +RelData$+   "</Data_Receita>")
fx=FicLinGrv(1,"      <NIPC_Entidade>"     +EmpNif$+    "</NIPC_Entidade>")
fx=FicLinGrv(1,"      <Nome_Entidade>"     +EmpNome$+   "</Nome_Entidade>")
fx=FicLinGrv(1,"      <Total_Registos>"    +RelMovCnt$+ "</Total_Registos>")
fx=FicLinGrv(1,"      <Total_Descontos>"   +RelDesco$+  "</Total_Descontos>")
fx=FicLinGrv(1,"      <Total_Contribuicao>"+RelContrib$+"</Total_Contribuicao>")
fx=FicLinGrv(1,"      <Ref_DUC>"           +RelDuc$+    "</Ref_DUC>")
'fx=FicLinGrv(1,"      <Retencao_OE>"       +RelOE$+     "</Retencao_OE>")
fx=FicLinGrv(1,"   </Cabecalho>")


LinMax=GpeADSEFx$("LIN","CNT")
fx=GpeADSEFx$("LIN","INI") 'posicionar no inicio
for cnt=1 to LinMax

    TrbNub$=GpeAdseFx$("LIN","TRBNUB")
    TrbNif$=TxtXml$(GPE_MST_CTRB$)
    TrbCGA$=GpeAdseFx$("LIN","TRBCGA")
   TrbNome$=TxtXml$(Gpe_Mst_Nome$)
   MovTipo$=GpeAdseFx$("LIN","MOVTIPO")
   MovData$=FrmDt$("AM",Sig_DtHoje)
  MovRemun$=NumXml(GpeAdseFx("LIN","REMUN"),2)
  MovDesco$=NUmXml(GpeAdseFx("LIN","DESCO"),2)
MovContrib$=NumXml(GpeAdseFx("LIN","CONTRIB"),2)


  fx=FicLinGrv(1,"   <Dados>")
  fx=FicLinGrv(1,"      <Codigo_Servico>"    +AdseCod$+   "</Codigo_Servico>")
  fx=FicLinGrv(1,"      <Data_Receita>"      +RelData$+   "</Data_Receita>")
  fx=FicLinGrv(1,"      <NUB>"               +TrbNub$+    "</NUB>")
  fx=FicLinGrv(1,"      <NIF>"               +TrbNif$+    "</NIF>")
  fx=FicLinGrv(1,"      <Numero_CGA>"        +TrbCGA$+    "</Numero_CGA>")
  fx=FicLinGrv(1,"      <Nome>"              +TrbNome$+   "</Nome>")
  fx=FicLinGrv(1,"      <Tipo_Movimento>"    +MovTipo$+   "</Tipo_Movimento>")
  fx=FicLinGrv(1,"      <Data_Reporte>"      +MovData$+   "</Data_Reporte>")
  fx=FicLinGrv(1,"      <Valor_Remun_Pensao>"+MovRemun$+  "</Valor_Remun_Pensao>")
  fx=FicLinGrv(1,"      <Valor_Desconto>"    +MovDesco$+  "</Valor_Desconto>")
  fx=FicLinGrv(1,"      <Valor_Contribuicao>"+MovContrib$+"</Valor_Contribuicao>")
  fx=FicLinGrv(1,"   </Dados>")

  fx=GpeADSEFx$("LIN","SEG") 'registo seguinte
next

fx=FicLinGrv(1,"</DataSet1>")
end sub

##


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

